0.9.0: session-start attestation — the hook proves what's running#7
Open
davidcrowe wants to merge 1 commit into
Open
0.9.0: session-start attestation — the hook proves what's running#7davidcrowe wants to merge 1 commit into
davidcrowe wants to merge 1 commit into
Conversation
Refs gatewaystack-connect#403 (paired-arrival), #375 (the lesson) The #375 incident was capability arriving without authority: grants active, hook silently detached. Attestation makes the pairing observable. On SessionStart the hook POSTs /govern/attest with the sha256 of its own file as loaded from disk, the plugin version, and whether ~/.acp/harness-grants.json is present (and its hash). The gateway compares against the first-seen hash for this version — a changed file with an unchanged version string is the edited-hook signature and pages the founder; sessions render an integrity badge in the console either way, with absence shown as "unattested". Fail-open in every branch: attestation is observability and never delays or blocks a session — an absent attestation IS the signal. Black-box verified: SessionStart against a dead endpoint exits 0 silently; PreToolUse keeps the #385 posture (interactive fails OPEN loudly). 16 tests pass (4 new pin the wire contract). Also unifies the version drift: plugin.json/marketplace.json said 0.8.2 while govern.mjs reported 0.6.5 on the wire — all now 0.9.0.
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.
Refs gatewaystack-connect#403 (layer 5: paired-arrival attestation) and #375 (capability-without-authority lesson).
Server side (gateway /govern/attest endpoint, TOFU hash registry, founder alert on mismatch, console integrity badge) ships in gatewaystack-connect PR #410 — merge that chain first so the endpoint exists; until then this attestation call 404s harmlessly (fire-and-forget, fail-open).
Publish is the marketplace update (yours) — existing installs pick it up on next update; older hooks simply render as "unattested" in the console, which is the honest default.