Skip to content

Release from a draft with setup-rust-toolchain, and a gateway API key for Wanda - #56

Merged
shanebarakat merged 5 commits into
mainfrom
ci/release-draft-first
Oct 26, 2026
Merged

shanebarakat merged 5 commits into
mainfrom
ci/release-draft-first

Conversation

@shanebarakat

@shanebarakat shanebarakat commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

Release (.github/workflows/release.yml): wandercom releases are immutable once published, so uploading after creating the release failed (HTTP 422) and burned v0.1.0; v0.1.0-1 was published by hand from that run's CI build. The job now attaches the binaries to a draft, then publishes; a re-run resumes a draft, and on an already-published release only confirms every asset is attached. Rust comes from actions-rust-lang/setup-rust-toolchain (SHA-pinned v2.0.0, warnings allowed, no cache for releases). Version 0.1.1 for the next clean tag.

Gateway API key (config.rs, company/client.rs): Wanda has no browser for kinbase auth login. Optional [company] gateway_api_key_file sends Authorization: ApiKey <key> (api#123 checks and strips it) beside X-Kinbase-Token, and admits the https gateway URL like OIDC. The key file is validated like the facts token (printable, no whitespace, bounded), so it can't inject headers. SessionStart's background refresh and repo issue accept the https gateway with a key, as with OIDC. It can't be combined with OIDC and refuses routable http. Without it, nothing changes. CHANGELOG gets a 0.1.1 section.

Tests: config + client tests for the key (the client one fails if a bearer is sent instead) and a key file with a line break is refused; 228 lib tests pass.

…able; bump to 0.1.1

v0.1.0's publish created the release first, which made it immutable, so
the asset upload was refused (HTTP 422) and the tag can't be reused.
Attach the assets to a draft, then publish.

@adaptcom adaptcom Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Confidence Score: 4/5

Summary

Publishes releases draft-first (create draft, upload assets, publish) to dodge immutable-release 422s, and bumps the workspace to 0.1.1 for the next tag. gh's view/upload/edit resolve drafts by tag, so the flow is sound; low risk.

Important Files Changed

File Overview
.github/workflows/release.yml Draft-first create, upload assets, then gh release edit --draft=false
Cargo.toml Workspace version 0.1.0 to 0.1.1 so v0.1.1 passes tag check
Cargo.lock Lockfile kinbase version entry follows the bump

Reviewed 79843a7...6e73820 · ↻ Re-run review · View in Adapt

Comment thread .github/workflows/release.yml Resolved
Comment thread Cargo.toml Resolved
@shanebarakat shanebarakat reopened this Oct 26, 2026
@shanebarakat shanebarakat changed the title ci(release): publish from a draft so assets attach; bump to 0.1.1 ci(release): publish from a draft, switch to setup-rust-toolchain, bump to 0.1.1 Oct 26, 2026
@shanebarakat shanebarakat changed the title ci(release): publish from a draft, switch to setup-rust-toolchain, bump to 0.1.1 Release from a draft with setup-rust-toolchain, and a gateway API key for Wanda Oct 26, 2026
[company] gateway_api_key_file sends Authorization: ApiKey <key> beside
X-Kinbase-Token and admits the https gateway URL, as OIDC does. For Wanda
(Adapt's sandbox has no browser); api#123 checks and strips the key.
…ate the key like a token, safe release re-runs, 0.1.1 changelog

@alexu8007 alexu8007 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One P2, on the changelog. I found no P0 or P1 bugs.

Comment thread CHANGELOG.md Resolved
The 0.1.1 heading went straight under Unreleased on a changelog that had
no version sections, so everything that shipped in v0.1.0 read as 0.1.1.
Those entries now sit under a 0.1.0 heading dated from the v0.1.0-1
release, and 0.1.1 lists only the gateway API key and the draft-first
release. Prebuilt binaries were already attached to v0.1.0-1, so that
entry becomes the change in how a release is published.
@alexu8007
alexu8007 self-requested a review October 26, 2026 19:57
@shanebarakat
shanebarakat merged commit 2a1592c into main Oct 26, 2026
3 checks passed
@shanebarakat
shanebarakat deleted the ci/release-draft-first branch October 26, 2026 20:00
MrJoy added a commit to MrJoy/kinbase that referenced this pull request Nov 3, 2026
Brings in wandercom#36, wandercom#37, wandercom#46-wandercom#48, wandercom#50-wandercom#53, wandercom#55, wandercom#56 and wandercom#58. The only
conflict was the std::os imports in paths.rs: main's lock_file needs
AsRawFd and this branch needs DirBuilderExt, so both are kept.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01USKFuHYy89wotDxF6TANSC
MrJoy added a commit to MrJoy/kinbase that referenced this pull request Nov 3, 2026
Brings in wandercom#36, wandercom#37, wandercom#46-wandercom#48, wandercom#50-wandercom#53, wandercom#55, wandercom#56 and wandercom#58. Main added
OIDC, a gateway API key and a configurable snapshot timeout to the
inline [company] reader; this branch had moved that reader into
company_section, shared with [companies.<name>]. The new keys and
checks now live in company_section, so a named Company accepts them
too and its messages name its own section.

The OIDC session was one oidc.json beside the user config, which two
named Companies signed in through different issuers would overwrite
in turn. CompanyConfig now carries oidc_session_file in the Company's
key directory: companies/<name>/oidc.json under the named form, and
the config's own directory, so the same path as before, under
[company]. The SessionStart login notice checks the selected
Company's session file.

`company usage` reads only its own --config, so it returns before the
launcher loads with `init` and `serve`. `auth login` runs after
selection and signs in to the Company the invocation selected.
issue_certificate validates the --company URL with main's gateway
rule only under the single form; a named Company's URL was validated
when the config was read. Codex hook detection takes main's
grouped-only reading.

Also: named_company_tests was missing #[cfg(test)], so its helper
compiled into the binary as dead code, and the branch had no
changelog entry.

hook_host_protocol::a_stranded_prompt_is_classified_by_the_next_stop
fails here as it does on main; every other suite passes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01USKFuHYy89wotDxF6TANSC
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants