Repository navigation
Fleet Studio completion: control-gated peer routing and owner safety #1482
Description
Important
Problem — Existing owner-routing is default-off, attached-pointer dependent, and can inject the hub credential toward a peer. On partial peer failure the owner map can forget a known remote owner and dispatch locally. App file surfaces do not bind an owner key.
Approach — Complete the existing multiplexer as a Control-gated, peer-authenticated routing plane. It dynamically resolves peer credentials/transports, preserves known remote ownership through transient failure, routes every supported session path to its owner, and requires bound owner context for remote file operations.
Scope — in: peer-specific proxy auth, dynamic routing inputs, owner retention/refresh, route coverage, target-enforced Control gate, app owner binding, and named read-only/unavailable behavior. · out: global SSE fan-in, arbitrary shell, and replacing legacy attachment compatibility.
Assumptions — trusted Observe data, scoped Control grants, and managed peer transport exist.
Acceptance Criteria
- A peer request carries only that peer’s credential; a hub credential is never forwarded to a peer.
- Owner routing activates only for a target-enforced active Control grant and never depends on a legacy attachment pointer.
- All supported session request forms, permissions, and upgrade paths resolve to the owner; unresolved known remote ownership yields named unavailable/read-only behavior, never local execution.
- Owner state survives a transient source failure long enough to preserve remote identity and allow an explicit refresh/recovery outcome.
- Remote file reads/writes require an active bound owner context; absent binding cannot turn a remote Work Column operation into a local operation.
- Control revoke, identity mismatch, or transport loss suspends mutation immediately and leaves the remote session visible/read-only.
Testing Decisions
Extend multiplexer dispatch and owner-routing suites with peer-specific authorization, dynamic rotation, all session path forms, owner-map loss/refresh, forged owner headers, bound file context, and no-local-fallback assertions.
Key Decisions
Known remote owner is a fail-closed routing state, not a hint that may fall through to local.
Constraints & Invariants
Existing legacy attachment behavior remains a compatibility path. This slice does not implement global SSE.
Prior Art
#1448, #1449, existing multiplexer foundations, and ADRs 0031–0032.
Source
Part of #1475. Blocked by #S3, #S4, and #S5 (native edges wired after creation). ADR 0034.
Binding Amendment
Peer proxy credentials and endpoints are resolved dynamically per request. A known remote owner may refresh or return named unavailable, but never resolve locally. Every owner-bound file operation must carry verified bound-owner context; a forged owner header cannot bypass Control.
Activity
Fleet Studio #1482: control-gated peer routing + owner safety (#1505)