session-relay: land the 4 binaries — atomic flip to bin/relay, delete the Node payload (rust-port steps 7-8)#5
Merged
Conversation
…letion re-review at 9e7a732) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UyDDEDsq6yGeJKzNAwW3ZQ
…binaries + launcher + manifests (rust-port plan, step 7/8)
Binaries from build-binaries.yml run 28552485456 (transit checksums
verified); SHA256SUMS regenerated in bin/; launcher shellcheck-linted
(SC1007: CDPATH='') and dispatching via uname -sm; .gitattributes marks
relay-* binary (plain blobs, never LFS); all five bin/ entries except
SHA256SUMS committed 100755. Manifest flips per the plan's Interfaces
table: Claude plugin.json MCP + hooks.json exec form on
${CLAUDE_PLUGIN_ROOT}/bin/relay, Codex bus.mcp.json on NATIVE
${PLUGIN_ROOT}, codex-hooks.json shell form. gateRust hardened: never
overwrites the committed binary; rebuild byte-identity FAILS in CI
(same image as producer) and warns locally — cross-machine identity is
unachievable (embedded paths + distro linker), recorded in the plan.
shellHooks() now lints a rust capability's sh launcher.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UyDDEDsq6yGeJKzNAwW3ZQ
…me plugin (rust-port plan, step 8/8) git rm mcp/bus.mjs lib/store.mjs lib/discover.mjs hooks/session-start.mjs skills/.../scripts/relay.mjs. Every store toucher is now the flock-locked bin/relay binary; full gate green (shellcheck lints the launcher, checksums verify, 39-check selftest against the committed binaries). Plan -> in_review. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UyDDEDsq6yGeJKzNAwW3ZQ
…criteria all pass; 2 live-verify legs open) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UyDDEDsq6yGeJKzNAwW3ZQ
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What's in here
Completes the session-relay Rust port (steps 7–8 of the plan) plus the ship of the knowledge-format plan:
build-binaries.ymlrun 28552485456 (both darwin from the arm64 runner, both linux-musl from ubuntu; per-runner transit checksums verified before commit) + regeneratedbin/SHA256SUMS+ the POSIX-sh arch-dispatch launcherbin/relay— all five entries mode100755,.gitattributesmarksrelay-*asbinary(plain blobs, never LFS).plugin.jsonMCP +hooks.json(exec form) on${CLAUDE_PLUGIN_ROOT}/bin/relay; Codexbus.mcp.jsonon native${PLUGIN_ROOT};codex-hooks.jsonshell form.mcp/bus.mjs,lib/store.mjs,lib/discover.mjs,hooks/session-start.mjs,skills/.../scripts/relay.mjs— every store toucher is now the flock-locked binary (all-or-nothing by construction).gateRustnever overwrites the committed binary; host-rebuild byte-identity FAILS in CI (same image as the producer workflow) and warns locally (embedded paths + distro linker make cross-machine identity unachievable — recorded in the plan).shellHooks()now shellcheck-lints the launcher (SC1007 fixed:CDPATH='').ship_commit9e7a732); rust-port planin_reviewwith a partial completion review — all headless acceptance criteria pass; the two live-session legs (real Claude⇄Codex round-trip, Codex${PLUGIN_ROOT}substitution on a real install) remain open before ship.Verification
node scripts/ci.mjsgreen (2 plugins + repo-wide): fmt/clippy clean, committed checksums verify, shellcheck-linted launcher, 39-check selftest against the committed binaries.cargo test10/10 incl. the cross-process flock race +.lockdir→file migration.bin/relay, zero"command": "node", native-var-only Codex manifest, exec-bit index check (git ls-files -s→ only SHA256SUMS non-755), five.mjs→No such file.🤖 Generated with Claude Code
https://claude.ai/code/session_01UyDDEDsq6yGeJKzNAwW3ZQ