Skip to content

fix: recover stale runtime adapter claims#448

Merged
steipete merged 1 commit into
mainfrom
harden/runtime-adapter-claim-recovery
Jun 17, 2026
Merged

fix: recover stale runtime adapter claims#448
steipete merged 1 commit into
mainfrom
harden/runtime-adapter-claim-recovery

Conversation

@steipete

Copy link
Copy Markdown
Contributor

Summary

  • make only newly created runtime-adapter ID claims provisional for ten minutes
  • confirm claims durably when an agent connects or a registered lease binding succeeds
  • allow another normally authenticated owner to recover only expired inactive provisional claims
  • block recovery while any agent, relay request, ticket, live lease, or pending deletion still uses the ID
  • preserve every legacy and confirmed adapter identity and keep existing owner/org relay checks unchanged

This is product and availability hardening, not a new adversarial multi-tenant security guarantee. Normal adapter connect behavior is unchanged: it obtains a ticket and connects immediately, which confirms the claim.

Closes #370

Verification

  • npm test --prefix worker (632 passed)
  • npm test --prefix worker -- --run test/fleet.test.ts test/coordinator-runtime.test.ts (278 passed)
  • npm run format:check --prefix worker
  • npm run lint --prefix worker
  • npm run check --prefix worker
  • npm run build --prefix worker
  • node scripts/build-docs-site.mjs
  • live Blacksmith testbox under the required Node 22 runtime: focused fleet/coordinator suite, 278 passed

Review

The required autoreview helper was attempted with Codex gpt-5.5. Its subprocess remained blocked on stdin for seven minutes with no CPU use, network socket, child process, or review output, so the failed subprocess was terminated. Equivalent manual review checked legacy-record compatibility, owner/org authorization, ticket and agent races, registration confirmation, active relay and deletion fences, and Node coordinator lifecycle serialization; no actionable findings remained.

@steipete
steipete merged commit 943798f into main Jun 17, 2026
11 checks passed
@steipete
steipete deleted the harden/runtime-adapter-claim-recovery branch June 17, 2026 13:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Runtime adapter IDs are globally first-claim and need an ownership/recovery contract

1 participant