Skip to content

docs(adr): joined workers refuse their own HTTP listener - #809

Merged
V3RON merged 7 commits into
mainfrom
feature/806-adr
Oct 21, 2026
Merged

V3RON merged 7 commits into
mainfrom
feature/806-adr

Conversation

@V3RON

@V3RON V3RON commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

Problem

Joined workers can expose a second API and console beside the fleet gateway.

Change

Accept ADR 0039: refuse joined-worker HTTP at config load, retain standalone HTTP, and document manual migration. Narrows ADR 0005 requirement 3. Part of #806, from #705.

Verification

Status

Spec: approved Review: round 1 passed (0 findings) Hardware: n/a Gate: waiting for the stack
Next: stays at the bottom of the #806 stack under task #811.

Review

Spec review: 0 blocking, 0 fixed, 0 notes. Code review: skipped. Claims review: skipped.
Rounds: 1. Tokens: 1.0M.
Runs: 2. Cost USD: 1.7509. Agent seconds: 625.
Assessment: complete

Written by an agent.

@V3RON

V3RON commented Oct 21, 2026

Copy link
Copy Markdown
Contributor Author

Review ledger

Round 1: 49077bc

Runs: 2. Cost USD: 1.7509. Agent seconds: 625.
Tokens input 86, output 18974, cache read 3177065, cache write 178007.
- review 1 reviewer: claude-sonnet-5-5 343 s $0.1543
- review 1 reviewer spec: claude-opus-5-5 282 s $1.5966
Finding outcomes: {}. Classes: {}.
{"findings": []}

Written by an agent.

@V3RON
V3RON marked this pull request as ready for review October 21, 2026 17:20
@V3RON
V3RON added this pull request to stack #847 October 21, 2026 17:30
@V3RON
V3RON merged commit 86962e5 into main Oct 21, 2026
26 checks passed
@V3RON
V3RON deleted the feature/806-adr branch October 21, 2026 18:58
V3RON added a commit that referenced this pull request Oct 21, 2026
Closes #811

### Status

Implement: done (4/4 green) Review: passed (round 2 + fix-check), 1
finding fixed Hardware: pass (lane run 3 of 3) Gate: running on the
stack (#809 → #842)
Next: merge

## Done when

- [x] Core config cases prove B1: `src/core/config.test.ts` "refuses a
joined worker's own HTTP listener..." (audit broke the rule; review r1
tightened the URL-error cases to assert their own messages)
- [x] Real CLI cases prove B2/B3/B4: `src/cli/index.test.ts` "a joined
worker's own HTTP listener (#811)" (audit: refusal cases fail with the
rule off; start case fails on its launches assertion)
- [x] Agent-device topologies: `src/agent-device/gateway-front.test.ts`
direct allocation uses a standalone worker; the forbidden-topology test
is removed (audit probe on `requiresOf`)
- [x] Console: `e2e/console/fixtures.ts` (HTTP off for joined workers,
socket readiness), `activity.spec.ts` (gateway-only join-token test),
`inbox.spec.ts` (`worker list` CLI views); chromium console lane run on
the three specs
- [x] Slow gateway suite (`e2e/slow-agent-device-gateway.test.ts`): HTTP
off, timing test and helpers removed; full lane passed at f382f43 (iOS
and Android)
- [x] Docs: `website/src/content/docs/docs/gateway/joining-workers.mdx`,
`reference/configuration.mdx`, `worker/configuration.mdx`,
`worker/console.mdx`, `using-devices/*.mdx`

Feature #806 completion: C1 by the config test, C2 and C3 by the CLI
cases, C4 by the docs, C5 by gateway-front and the slow lane, C6 by the
console specs.

Hardware loop fix: a heartbeat whose renewal meets a gateway lease list
that has not caught up yet now relays agent-device's reply, and does not
return `COMMAND_FAILED`.

## Assumptions

- Assumption: where the spec says `docs/CONFIGURATION.md` — that file
does not exist; end-user configuration docs live on the website, so the
migration text is there.

## Review

Spec review: 0 blocking, 0 fixed, 0 notes. Code review: 1 blocking, 1
fixed, 0 notes. Claims review: 0 blocking, 0 fixed, 0 notes.
Rounds: 2. Tokens: 4.1M.
Runs: 17. Cost USD: 5.5307. Agent seconds: 6432.
Assessment: complete

Rejected:

- code: an `unlisted` heartbeat carrying a new ttlMs skips setTtl and
rearm — [nonblocking] the old `failed` path skipped them too; the next
heartbeat or tick renews

*Written by an agent.*
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.

1 participant