Completes the request path for FLUID-WP-0003 T01-T03 and T05-T07. The gateway resolves a revision, routes to the adapter process, and records what happened, without ever depending on the control plane to serve. Three behaviours carry tests because the architecture rests on them: Emit never blocks against a stalled sink (Blueprint 34.2), the gateway keeps serving after control-plane loss (invariant 2), and backend internals do not leak into error responses (5.7). The connector retries only idempotent methods, so a slow adapter cannot cause a hall-of-helix entry to be published twice, and breakers are per-revision so a broken candidate does not take the stable revision down with it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014KmVxhJ35tCo7rE7UnLwWu Assistant: claude-code Assistant-Model: opus Assistant-Process: 1116572@bnt-lap001 Assistant-Session: 8ba9bb93-a72a-4883-b189-2499cce5c400
3.5 KiB
| id | type | title | domain | repo | status | owner | topic_slug | created | updated | planning_priority | planning_order | depends_on | state_hub_workstream_id | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| FLUID-WP-0003 | workplan | Deterministic data plane (Blueprint Phase A) | infotech | fluid-core | active | worsch | fluid-core | 2026-09-04 | 2026-09-04 | high | 2 |
|
d9ce8eae-cd6f-5c43-a20b-eee8cc89b172 |
FLUID-WP-0003 - Deterministic data plane
The production request path. No AI, no analysis, no dependency on the control plane. Blueprint §5 and §34: the gateway must keep serving when everything above it is dead.
T01 - Edge gateway
id: FLUID-WP-0003-T01
status: done
priority: high
state_hub_task_id: "0dac6ab6-f3e4-5234-bb3c-2393558d8590"
Transport termination, correlation IDs, coarse rate limiting, request size and shape limits. Blueprint §5.1 — the gateway must not invent interface semantics.
T02 - Revision resolver
id: FLUID-WP-0003-T02
status: done
priority: high
state_hub_task_id: "6d8333ac-1bad-59a4-943d-b83819c8127a"
The §5.2 precedence chain: explicit revision, bound client contract, experiment assignment, stable default. Every resolution records its reason; resolution without an auditable reason is a defect.
T03 - Revision router
id: FLUID-WP-0003-T03
status: done
priority: high
state_hub_task_id: "1f042c4f-9e3f-50fa-985c-e4f2ebb3b38a"
Map a resolved revision to an adapter upstream. Reject unpublished, failed, ineligible and retired revisions (§5.3). Allocation rules are deterministic and read from routing policy the router does not author.
T04 - Contract validator
id: FLUID-WP-0003-T04
status: todo
priority: high
state_hub_task_id: "70bae578-d3e3-5a00-b5cd-4c363bc5b473"
OpenAPI 3.1 request and response validation (§5.4). The contract digest is part of the revision artifact and is content-addressed.
T05 - Backend connector layer
id: FLUID-WP-0003-T05
status: done
priority: high
state_hub_task_id: "0d62a681-3154-50af-894a-98b35db7b040"
Timeout, retry, circuit breaker, error mapping, tenant propagation (§5.6). The adapter is an upstream process reached over HTTP — this is where the language-agnostic promise is kept.
T06 - Response policy
id: FLUID-WP-0003-T06
status: done
priority: medium
state_hub_task_id: "cc3c2a03-b24c-51de-b695-8aa9bfae85ab"
Structured errors carrying a FLUID correlation reference, leaking no backend detail (§5.7).
T07 - Telemetry emitter
id: FLUID-WP-0003-T07
status: done
priority: high
state_hub_task_id: "e10a5011-cb7e-5f1c-9a0d-0cfd2d535d13"
Fire-and-forget emission. Blueprint §34.2 is a hard invariant: telemetry backpressure must never block or slow a request. Test it under a stalled sink.
T08 - Evidence store
id: FLUID-WP-0003-T08
status: todo
priority: high
state_hub_task_id: "1773c7bf-9400-576e-9e74-aa210f08e0c4"
Append-only event storage, SQLite for development and Postgres-ready. Mutable summaries exist only as derived views (§26).
T09 - Intent store
id: FLUID-WP-0003-T09
status: todo
priority: high
state_hub_task_id: "23d70a60-14bf-525e-a712-1d3a14111f62"
Bind every revision to an InterfaceEvolutionIntent version (§27), so audit can
later answer whether a change was valid under the intent that existed when it
was made.
T10 - Operator CLI, first commands
id: FLUID-WP-0003-T10
status: todo
priority: medium
state_hub_task_id: "ad7d83d7-a088-5ea4-94e7-fa5be49897b9"
fluid revision create|publish|list, fluid intent show, fluid events tail.