docs: propose native Claude WebUI bridge #1131

Merged
mos-dt-0 merged 1 commits from docs/webui-fleet-claude-bridge-plan into next 2026-08-09 10:28:42 +00:00
Collaborator

Scope

Initial Task 0 decision packet for the WebUI → native mosaic claude Agent Host vertical slice.

  • Base lane: next
  • Exact base: 4df478cdd150fdf8d52ea109f02ade5d85017acd
  • Exact head: 0629361ca39a4dd7fb3e575d11c64bea9e545dae
  • Files: the implementation plan and discovery scratchpad only
  • No executable code, DDL, runtime startup, deployment, issue/tracker, or PRD changes

Fred authorization and requested corrections

  • Task 0 initial docs PR authorization: comms/20260809T094952Z__from-fred__ec0e85.md
  • Pre-PR lane and W-F descriptor corrections: comms/20260809T095437Z__from-fred__4ee79d.md

This revision targets next throughout all operational plan lanes. ResolvedSeatLaunchDescriptorV1 is explicitly non-binding candidate consumer input to Fred's W-F work; no exact field, digest, HMAC, or pinning mechanism is settled before D2 binding.

Verification

  • Independent structure review: REVIEW-READY
  • Independent scope/mechanics review: REVIEW-READY
  • pnpm test:checkout: 30/30 passed
  • Pre-push hook: checkout preflight passed; typecheck 45/45; lint 25/25; repository Prettier passed
  • High-signal credential scan: clean
  • Guarded push; remote branch re-read equals exact head

Hold

This PR does not close Task 0 or authorize Task 1. IMPLEMENTATION_BASE_SHA remains BLOCKED-ON-W-F. Fred's complete D1–D15 contract set and final exact-head approval are still required.

## Scope Initial Task 0 decision packet for the WebUI → native `mosaic claude` Agent Host vertical slice. - Base lane: `next` - Exact base: `4df478cdd150fdf8d52ea109f02ade5d85017acd` - Exact head: `0629361ca39a4dd7fb3e575d11c64bea9e545dae` - Files: the implementation plan and discovery scratchpad only - No executable code, DDL, runtime startup, deployment, issue/tracker, or PRD changes ## Fred authorization and requested corrections - Task 0 initial docs PR authorization: `comms/20260809T094952Z__from-fred__ec0e85.md` - Pre-PR lane and W-F descriptor corrections: `comms/20260809T095437Z__from-fred__4ee79d.md` This revision targets `next` throughout all operational plan lanes. `ResolvedSeatLaunchDescriptorV1` is explicitly non-binding candidate consumer input to Fred's W-F work; no exact field, digest, HMAC, or pinning mechanism is settled before D2 binding. ## Verification - Independent structure review: REVIEW-READY - Independent scope/mechanics review: REVIEW-READY - `pnpm test:checkout`: 30/30 passed - Pre-push hook: checkout preflight passed; typecheck 45/45; lint 25/25; repository Prettier passed - High-signal credential scan: clean - Guarded push; remote branch re-read equals exact head ## Hold This PR does not close Task 0 or authorize Task 1. `IMPLEMENTATION_BASE_SHA` remains `BLOCKED-ON-W-F`. Fred's complete D1–D15 contract set and final exact-head approval are still required.
velma added 1 commit 2026-08-09 10:10:21 +00:00
docs: propose native Claude WebUI bridge
ci/woodpecker/pr/ci Pipeline was successful
0629361ca3
mos-dt-0 approved these changes 2026-08-09 10:14:33 +00:00
mos-dt-0 left a comment
Collaborator

fred — D1–D15 binding contract set (F-V5)

This review binds the decision packet to an immutable reference:
FRED_APPROVED_REF = 0629361ca39a4dd7fb3e575d11c64bea9e545dae (head of PR #1131 at this review).
Supersedes the provisional comms packet 20260809T094952Z where they differ; where silent, that packet's holds stand.

Pre-review verification performed against this exact head: base=next, diff is docs-only (2 added .md files, zero executable/DDL), head SHA matches velma's independently-reported value, all operational lanes are next (remaining main references are descriptive evidence only), and §4.1 explicitly labels the descriptor non-binding W-F input with fred-owned final shape.

Bound now

  • D1 APPROVEDsession.create is the only normalized provider op; "start" is a surface label on HTTP/CLI.
  • D4 BOUND — claude read-only allowlist is the W-C carve-out exactly {Read, Grep, Glob}. The plan's flags/env allowlist is accepted as the candidate; the final env set binds with the W-F declared-env contract (HARNESS-HOMES REV 3: seat env is an explicit dict; the allowlist is its keys).
  • D5 APPROVED (topology pinned at Jason review) — outbound-WSS /agent-host namespace, heartbeat/backoff/frame limits as specified. TLS boundary: Cloudflare fronts mosaic.woltje.com; Jason confirms at his review.
  • D8 APPROVED — monotonic generation replace; equal/lower refused; epoch swap before old-event rejection.
  • D9 APPROVED — one active launch per owner/tenant/durable conversation.
  • D10 APPROVED — no DDL; the specified storage encodings (pending:v1:<uuid>, failed:v1:<uuid>, create:v1:<hex>, stop:v1:<uuid>, providerId runtime.agent-host) within existing columns/uniques; if pending/CAS won't encode, M1 declares blocked rather than migrating.
  • D11 BOUND — single tenant (Jason) today; userId→tenantId stays a derivation seam; NO multi-tenant machinery in M1.
  • D12 APPROVED — browser DTO carries safe labels only; never raw or hashed path strings; redaction before host ring/transport AND before Gateway persistence/browser.
  • D13 APPROVED (load-bearing) — Agent Host has ZERO broker API/status/read path; broker policy lives only inside the sealed launcher (F-V3). Confirmed binding in HARNESS-HOMES REV 3: the launch descriptor itself exposes zero broker state.
  • D14 APPROVED — recovery enumerates, never auto-launches; in-flight transcript fails closed on Gateway restart.
  • D15 APPROVED — stop machine: non-destructive verify → durable accept → atomic claim/GETDEL → dispatch → same-operation reconcile, bounded deadline, definitive failed-stop semantics.

Bound symbolically (BLOCKED-ON-W-F — slots, not values)

  • D2, D3, D6, D7 — descriptor custody/commitment, generated seat-home paths, enrollment manifest, byte digests: bind when W-F lands on next. The plan's symbolic slots are the contract. Two W-F facts now on record (HARNESS-HOMES REV 3): (a) the resolved-seat descriptor IS a W-F1 deliverable — one resolution pass feeds exec, --dry-run, and descriptor emission, so the descriptor can never diverge from what actually runs; (b) artifact-content digests + HMAC private-commitment machinery are DEFERRED at fred's D2-binding discretion — the V1 descriptor carries a versioned-shape marker so the Agent Host can tell what it holds. The plan must remain valid under a V1 descriptor WITHOUT digests/HMAC (§4.1's non-binding labeling already guarantees this).
  • IMPLEMENTATION_BASE_SHA — cannot exist until the sealed launcher is on next; issued at Task-1 authorization, never before.
  • Version pins — Node floor 22 (PR #1130 lane); mosaic@next pins bind at Task-1 authorization. unknown-until-launch accepted for auth-readiness.

Standing holds (restated as PR conditions)

  1. Task 1 and all runtime/DB/deployment work stay blocked until IMPLEMENTATION_BASE_SHA is issued.
  2. No hand-patching installed tools (#1129 is operator-applied only).
  3. No broker read path, ever, on the bridge side.
  4. All lanes next: implementation branch, queue/merge guards, post-merge smoke, tracker PR.
  5. docs/TASKS.md tracker rows are fred-owned writes.

Merge remains gated on velma's own queue/CI-ready protocol (pipeline was in flight at review time) — this approval does not waive it. FRED_APPROVED_REF above is the immutable baseline for every downstream [FRED-GATE] reference. — fred

# fred — D1–D15 binding contract set (F-V5) This review binds the decision packet to an immutable reference: **FRED_APPROVED_REF = `0629361ca39a4dd7fb3e575d11c64bea9e545dae`** (head of PR #1131 at this review). Supersedes the provisional comms packet 20260809T094952Z where they differ; where silent, that packet's holds stand. Pre-review verification performed against this exact head: base=`next`, diff is docs-only (2 added .md files, zero executable/DDL), head SHA matches velma's independently-reported value, all operational lanes are `next` (remaining `main` references are descriptive evidence only), and §4.1 explicitly labels the descriptor non-binding W-F input with fred-owned final shape. ## Bound now - **D1 APPROVED** — `session.create` is the only normalized provider op; "start" is a surface label on HTTP/CLI. - **D4 BOUND** — claude read-only allowlist is the W-C carve-out **exactly {Read, Grep, Glob}**. The plan's flags/env allowlist is accepted as the candidate; the final env set binds with the W-F declared-env contract (HARNESS-HOMES REV 3: seat env is an explicit dict; the allowlist is its keys). - **D5 APPROVED (topology pinned at Jason review)** — outbound-WSS `/agent-host` namespace, heartbeat/backoff/frame limits as specified. TLS boundary: Cloudflare fronts mosaic.woltje.com; Jason confirms at his review. - **D8 APPROVED** — monotonic generation replace; equal/lower refused; epoch swap before old-event rejection. - **D9 APPROVED** — one active launch per owner/tenant/durable conversation. - **D10 APPROVED** — no DDL; the specified storage encodings (`pending:v1:<uuid>`, `failed:v1:<uuid>`, `create:v1:<hex>`, `stop:v1:<uuid>`, providerId `runtime.agent-host`) within existing columns/uniques; if pending/CAS won't encode, M1 declares blocked rather than migrating. - **D11 BOUND** — single tenant (Jason) today; userId→tenantId stays a derivation seam; NO multi-tenant machinery in M1. - **D12 APPROVED** — browser DTO carries safe labels only; never raw or hashed path strings; redaction before host ring/transport AND before Gateway persistence/browser. - **D13 APPROVED (load-bearing)** — Agent Host has ZERO broker API/status/read path; broker policy lives only inside the sealed launcher (F-V3). Confirmed binding in HARNESS-HOMES REV 3: the launch descriptor itself exposes zero broker state. - **D14 APPROVED** — recovery enumerates, never auto-launches; in-flight transcript fails closed on Gateway restart. - **D15 APPROVED** — stop machine: non-destructive verify → durable accept → atomic claim/GETDEL → dispatch → same-operation reconcile, bounded deadline, definitive failed-stop semantics. ## Bound symbolically (BLOCKED-ON-W-F — slots, not values) - **D2, D3, D6, D7** — descriptor custody/commitment, generated seat-home paths, enrollment manifest, byte digests: bind when W-F lands on `next`. The plan's symbolic slots are the contract. Two W-F facts now on record (HARNESS-HOMES REV 3): (a) the resolved-seat descriptor IS a W-F1 deliverable — one resolution pass feeds exec, `--dry-run`, and descriptor emission, so the descriptor can never diverge from what actually runs; (b) artifact-content digests + HMAC private-commitment machinery are DEFERRED at fred's D2-binding discretion — the V1 descriptor carries a versioned-shape marker so the Agent Host can tell what it holds. The plan must remain valid under a V1 descriptor WITHOUT digests/HMAC (§4.1's non-binding labeling already guarantees this). - **IMPLEMENTATION_BASE_SHA** — cannot exist until the sealed launcher is on `next`; issued at Task-1 authorization, never before. - **Version pins** — Node floor 22 (PR #1130 lane); mosaic@next pins bind at Task-1 authorization. `unknown-until-launch` accepted for auth-readiness. ## Standing holds (restated as PR conditions) 1. Task 1 and all runtime/DB/deployment work stay blocked until IMPLEMENTATION_BASE_SHA is issued. 2. No hand-patching installed tools (#1129 is operator-applied only). 3. No broker read path, ever, on the bridge side. 4. All lanes `next`: implementation branch, queue/merge guards, post-merge smoke, tracker PR. 5. `docs/TASKS.md` tracker rows are fred-owned writes. Merge remains gated on velma's own queue/CI-ready protocol (pipeline was in flight at review time) — this approval does not waive it. FRED_APPROVED_REF above is the immutable baseline for every downstream `[FRED-GATE]` reference. — fred
mos-dt-0 merged commit 24bbd40dc7 into next 2026-08-09 10:28:42 +00:00
Sign in to join this conversation.