CURATION LABS · GATEWAY-CENTRIC WORKERS

The loop never changed. What goes into it did.

Input
→
Model
→
Output
a tool runs; its result joins the input

Four designs for AI workers over the last eighteen months, from one session to one gateway, and the contract we still have to write.

Remy · Curation Labs · ~40 min, then discussion

OPEN

Every agent we have built runs the same loop: input, model, output, and back.

Context

Everything the model sees on this one call — not everything it’s ever seen.

Everything today is this picture, zoomed. The model knows only what is in the input, this call.

Remy’s brief; report §11.1

OPEN

Two questions decide what a worker can do: what goes in, and who allows it.

illustrative · every Monday, brief Alice on the Acme account and draft the update

  • —

    use Slack, Linear and Gmail

  • —

    run every Monday on its own

  • —

    remember last Monday’s brief

  • —

    stay inside Acme, act as Alice, and hold the email for approval

We’ll run this one task through four designs.

report §10.4, §10.5

ACT ONE · TWO IDEAS

Good agents build their input before every call instead of piling up history.

Piled up

… overflowing

user said… model said… tool call tool result

Built

instructions state memory results
ƒ(shelves) → this call’s input
instructions memory: Acme, last Monday

One of the biggest challenges in building Pinecone was making sure it had access to the right context, which is the lifeblood of any great agent.

Sierra · Building Sierra’s MCP gateway (Pinecone is Sierra’s own internal agent, not the vector database)

Phase 3 is when we started building it on purpose.

report §12.2 slide 4; Sierra capture, intro paragraph; 034_2 §1

ACT ONE · TWO IDEAS

Every piece of context needs two checks: is it allowed, and is it useful now?

candidate
→

allowed?

policy · the gateway

→

useful now?

strategy · the runtime

→
input

one refund policy, four ways into the input

whole document

one-line skill

callable tool

two paragraphs

Keep the gates apart and you can change the second without touching the first.

report §12.2 slide 5; 034_2 §6, §28

ACT ONE · TWO IDEAS

Sierra connects 89% of its employees’ agents to 45 services through one gateway.

89%of employees use it weekly

Agent Linter Agent Releases Ashby ClickHouse GitHub Gmail Google Calendar Google Drive Grafana Incident.io Linear PagerDuty Pinecone Slack Salesforce AWS OpenSearch

45services connected

SOURCE

Pinecone = Sierra’s internal agent, not the vector database

MCP

Model Context Protocol: the open, standard way an agent finds and calls a tool.

gateway

One service that sits between every agent and the outside world, deciding what it may reach and what comes back.

Instead, we built one gateway for everyone.

Every team could have built its own permission model. They built one.

Sierra · Building Sierra’s MCP Gateway: An engineering iceberg, Mihai Parparita, 22 Jul 2026 · report §8

ACT ONE · TWO IDEAS

Most of Sierra’s gateway is hidden work, and much of it controls what agents see.

MCP one “Connect” button tool calls SSO
users vs. service accounts role-gated services OAuth 2.1 server dynamic client reg per-user credential grants optional scope groups serialized token refresh scoped read-only tokens customer tagging multi-tier classification data sensitivity levels cross-customer blocking out-of-band approval audit log + Slack feed pre-authorized workflows summarize, don’t dump question sanitization draft-only sends tool block & replace resume false positives proxied MCP servers REST extensions OpenAPI generic call composite connectors sidecar supervision readiness handshakes multi-region fan-out service owners self-service docs search-stack reuse compatibility shims session persistence heartbeats & keepalives cached tool listings lazy discovery per-connector timeouts tool-name prefixing read-only annotations file refs, opaque optimistic-lock retries MCP Inspector usage analytics rate-limit diplomacy kill switches living arch doc

who may

users vs. service accounts role-gated services OAuth 2.1 server dynamic client reg per-user credential grants optional scope groups serialized token refresh scoped read-only tokens out-of-band approval pre-authorized workflows

which tools

tool block & replace proxied MCP servers REST extensions OpenAPI generic call composite connectors service owners self-service docs search-stack reuse cached tool listings lazy discovery tool-name prefixing read-only annotations

run it

sidecar supervision readiness handshakes multi-region fan-out compatibility shims session persistence heartbeats & keepalives per-connector timeouts optimistic-lock retries rate-limit diplomacy kill switches

shape the result

customer tagging multi-tier classification data sensitivity levels cross-customer blocking summarize, don’t dump question sanitization draft-only sends resume false positives file refs, opaque

operations

audit log + Slack feed MCP Inspector usage analytics living arch doc

Ours, not Sierra’s: the post never sorts its 45 items this way — full wording in the appendix.

A good part of a gateway decides what the agent gets to see.

Sierra · Building Sierra’s MCP gateway, figure 1 · report §8.2–8.3

ACT ONE · TWO IDEAS

Sierra’s lessons on identity, approval and context match the problems we hit.

1

Interactive work runs as the user.

Sierra · Building Sierra’s MCP gateway, Lesson 7

ONE KEY, EVERY ORG ACTING FOR WHOM?
2

…we want all write or destructive operations to be tied to user intent and approval.

Sierra · Building Sierra’s MCP gateway, Lesson 6

NO APPROVAL PER CALL
3

An agent can't misuse what it never sees

Sierra · Building Sierra’s MCP gateway, Lesson 3

shapes the next call

Keep these three in mind. Each one knocks down a wall later.

Sierra · Building Sierra’s MCP gateway, Lessons 3, 6, 7 · report §8.4

ACT TWO · FOUR DESIGNS

We will draw all four designs on one diagram so you can see what changes.

gold · new teal · have coral · wall violet · auth dashed · designed   struck through · retired

? what goes in?

? who says it may?

Each design moves one thing out of the session.

report §11.1–§11.3

ACT TWO · PHASE 1 · UNTIL JAN 2026

Phase 1: the agent lived in one person’s session and forgot everything afterwards.

CAN

brief Alice, with her own keys

CAN’T

remember last Monday, or run without her

Three walls: it forgets, it’s built by hand, and it runs on Alice’s keys.

report §7.1 (cc-architectures)

LENS 1 · PHASE 1

A session’s knowledge must fit in one input, and it disappears when the session ends.

Context window

The model’s entire input for one call, with a hard size limit measured in tokens — the model’s own units of text.

Alice: brief me on Acme
agent: checking Slack…
tool result: 1,204 messages
↪ older turns folded into a summary — compaction

And it all goes when the session does.

report §11.5; Flue compaction, §7.2

ACT TWO · PHASE 2 · FEB–JUL 2026

Phase 2: we packaged tools into reusable workers, but every run still started blank.

Harness

The program that drives the loop and calls the model. Codex, Claude Code and Mastra are three we run today.

One wall down. Every run still starts blank.

report §7.1 (containerized-cli-harness)

ACT TWO · PHASE 2 · FEB–JUL 2026

Phase 2 workers ran on schedule, but shared one key and nobody limited their access.

CAN

run every Monday on its own

CAN’T

remember, scope the key, or limit what it touches

Every team could have built its own integrations, permission model, and auditing system…

Sierra

Every run starts blank, every worker shares one key, and nobody decides what it may touch.

report §7.1 (@cch/coordination)

ACT TWO · PHASE 3 · FROM JUL 2026

Phase 3: workers gained memory and an org tool catalog, but not their own identity.

Flue

An open-source agent framework that re-runs our agent function before every model call.

Durable Object

A Cloudflare primitive: one conversation's own persistent, single-threaded worker.

It remembers now, and the org has a catalog. But every worker shows the same key, and nobody records whom it acts for.

report §7.2a (worker-rooms-2); we first rejected Flue, then adopted it once a spike ran end to end

LENS 2 · PHASE 3

In Phase 3, a function rebuilds the model’s input from saved state before every call.

initial data persistent state transcript memory
durable rebuilt every call
the agent function → instruction document messages mounted tools
export function useMemoryIndex(
	seed: WorkerSessionSeed | undefined,
	enabled: boolean,
	call: SpacesCall = spacesCall,
): void {
	const delivery = useDelivery();
	useAgentStart(async (ctx) => {
		if (!enabled) return;
		const signal = await memoryIndexIntake(
			seed,
			delivery as { kind?: string; type?: string; attributes?: unknown },
			call,
		);
		if (signal) ctx.append(signal);
	});
}

Render

One execution of the agent function, re-run before every model call.

Persistent state is its input. The model sees only what it returns.

worker-rooms-2/apps/worker-runtime/src/runtime/memory-index.ts:175–190 · worker-rooms-2, report §7.2a; Flue re-renders before every model call, docs/reference/agent-api.md:33

ACT TWO · PHASE 3 · FROM JUL 2026

The Monday brief now remembers, but still can’t prove who is asking or wait for approval.

CAN

recall last Monday, open Acme’s files, use the org catalog

CAN’T

prove who is calling, or hold an email for approval

Phase 3 knows what it knows. It still can’t say who is asking, or for whom.

report §10.5; §7.2a (042)

ACT TWO · RECAP

Each phase moved one thing out of the session: tools, then memory, then authority.

UNTIL JAN 2026

Nothing moves out yet.

FORGETS BUILT BY HAND ALICE’S KEYS
FEB–JUL 2026

The kit moves into a container.

EVERY RUN STARTS BLANK ONE SHARED KEY NO ORG CONTROL
FROM JUL 2026

Memory and state move onto durable storage.

ONE KEY, EVERY ORG ACTING FOR WHOM? NO APPROVAL PER CALL
NOW, IN CONSTRUCTION

Authority moves into the gateway.

CONTRACT?

What’s left inside the worker is its authority.

report §10.3; phase windows per Remy per report §10.8

ACT TWO · PHASE 4 · NOW, IN CONSTRUCTION

Phase 4: the gateway verifies each worker, and credentials never enter the model’s input.

Credential

A key that proves who — or what — is allowed to act. Never called a “token” here.

The credential never enters the input. It rides with the call and stops at the gateway.

report §7.3 (model-tools.ts:66; org-custody-do.ts)

LENS 4 · PHASE 4

A worker may only do what its organization, its person and its grant all allow.

organization ceiling

Gmail

Alice’s permissions

repo Y

Alice’s grant to her worker

Interactive work runs as the user.

Scheduled or shared workflows run as service accounts with only the permissions they need.

Sierra · Building Sierra’s MCP gateway, Lesson 7

This is the gate from August, with the org chart written into it.

built narrowly · canConfer() for one action family

A worker can never grant itself more than the people above it hold.

034 §2; canConfer(), report §7.3; report §10.7

LENS 3 · PHASE 4

The gateway checks every call as it happens and holds risky actions for approval.

runtime gateway

1

check

authorize again, at the call — not because the tool showed up in a list earlier

→

2

run

a brokered credential, held by the gateway, plus an idempotency record — so a retry can’t run it twice

→

3

prepare → approve → execute

built, for one action: send a message. A human approves between prepare and execute.

→

4

shape

the result is reshaped before it goes anywhere — designed generally, built only for this one action

solid border · built
dashed border · designed, not yet built

result → input

control → state

…we want all write or destructive operations to be tied to user intent and approval.

Sierra · Building Sierra’s MCP gateway, Lesson 6

Every call is checked when it happens, and every effect waits for its approval.

034 §3, §6, §10–§12; report §7.3 built/designed/open table; Sierra capture, Lesson 6

ACT TWO · PHASE 4 · NOW, IN CONSTRUCTION

The gateway also shapes what comes back, and that becomes part of the next input.

Artifact

Too big or too sensitive to hand the model directly — kept by the gateway, referenced, re-checked each read.

An agent can't misuse what it never sees

Sierra

What comes back is part of the next input: one channel the model reads, one it never sees.

034_2 §10, §15–§17

ACT TWO · PHASE 4 · NOW, IN CONSTRUCTION

With the gateway, the Monday brief acts for Alice, stays inside Acme, and waits to send.

illustrative

✓acts as Alice, under her grant ✓never touches Globex ✓a summary, not 18,000 messages ✓holds the email for approval

Every wall is down except the one between the gateway and the loop.

report §10.5; 034 §8, §11

ACT TWO · PHASE 4

Both halves exist today, but separately: a gateway for one action and a worker with memory.

Worker

built · flue-worker-iter1

  • home & session conversations
  • durable working state
  • cross-session memory
CONTRACT?

Gateway

built for one action · sending a Buzz message

  • identity & tenant binding
  • grant ∩ ceiling, one action family
  • custody-held key · approval
  • idempotency · audit · gateway_whoami

designed, not built

  • catalog · general credential broker · result shaping

Five parts still open: connection templates & org connections · artifacts with reauthorization · context effects · the useGateway adapter · context manifest / checkpoint / composer.

Neither half calls the other yet.

report §7.3 built/designed/open table · apps/gateway-authority/src/{outcomes,permissions,approvals}.ts

ACT THREE · THE CONTRACT

The gateway decides what a worker may know; the worker decides what to use now.

Gateway owns

  • what exists
  • what’s allowed
  • where it came from
  • how fresh it is

Runtime owns

  • what’s useful now
  • how much fits
  • how it’s presented

The MCP gateway determines what an agent is allowed to know and do. Flue determines how permitted information participates in the agent loop.

Persist truth; construct context. Do not persist “the context” as though it were the truth.

034 line 54 · 034_2 line 7 · report §9.1, §9.2

ACT THREE · THE CONTRACT

The contract must stay fixed while our ways of building context keep changing.

Fixed contract

identity authorization context source identities memory scopes provenance artifact references capability definitions canonical transcript operational checkpoint

↓

Changing construction

retrieval ranking progressive disclosure summarization transcript selection memory selection token budgeting model-specific formatting

↓ context → model

The contract is the line between them.

034_2 §37, §40

ACT THREE · THE CONTRACT

The first version of the contract needs only five parts.

Everything else is an implementation of these.

034_2 §38; report §9.3

ACT THREE · THE CONTRACT · CUTTABLE

One end-to-end test would prove the contract, from creating a worker to re-reading a result.

  1. 1–3

    binding → manifest → mounted tools

  2. 4–7

    call → outcome → projection → checkpoint

  3. 8–10

    re-render → next context → reauthorized re-read

If this loop works, the rest are extensions.

034_2 §39; report §9.3

ACT THREE · THE CONTRACT

Five open questions stand between today’s two halves and a working contract.

  1. 1

    Who composes context: the runtime, the gateway, or a split?

  2. 2

    Where does the model/control split live, on the wire?

  3. 3

    Where does memory live, and who may write it?

  4. 4

    Whose identity does a worker act under?

  5. 5

    A useGateway adapter now, or after a second connector?

Contract? is still standing.

report §9.4, §9.6

ACT THREE · THE CONTRACT

Our gateway must do what Sierra’s does and also carry context back into the loop.

  1. 1

    What may come back?

  2. 2

    Who decides what’s used?

  3. 3

    What survives the conversation?

The gateway has become what we hoped it would: plumbing.

Sierra · “Releasing the lock”

80% of a workflow rounds down to 0%

Let’s design the contract.

Sierra capture, “Lesson 4” and “Releasing the lock” · report §9.6

APPENDIX · GLOSSARY

Every term, defined once.

Context
Everything the model can see on one call — assembled fresh each time, not just whatever piled up.
Context window
The model’s fixed limit on how much context fits into one call.
Tool call
One way a model’s output can go: naming a tool and arguments, instead of returning text.
Harness
The program that runs the LLM loop inside a session or a container (Codex, Claude Code, a custom runtime).
Skill
A packaged block of instructions loaded into an agent’s context, usually triggered by a hook.
Hook
A use*-prefixed function that attaches one capability (model, tool, state) inside a Flue agent function.
Flue
The open-source agent runtime, from the withastro GitHub org, our Phase 3 and 4 workers build on.
Render
One execution of Flue’s agent function; the runtime re-runs it before every model call.
Durable Object
A Cloudflare Workers primitive: one addressable, stateful compute unit with its own private storage.
R2
Cloudflare’s S3-compatible object storage; backs the org-wide Spaces filesystem.
MCP
Model Context Protocol: an open protocol connecting an agent to external tools over a standard wire format.
Gateway
The plane that decides what a worker is allowed to know and do, separate from the runtime that builds context.
Credential
A secret proving the right to act as a vendor account; brokered by the gateway, never placed in the model’s input.
Principal
An identity covering both a human user and a service account, for uniform auditing.
Delegation
An org grants a person, a person grants a worker — never more authority than they themselves hold.
Artifact
An addressable, reauthorizable handle for a result or memory too large or sensitive to inline permanently.
Idempotency
A guarantee that a retried effectful call returns the prior outcome instead of repeating the effect.
Epoch
A version marker for one fact, letting a consumer detect it changed without re-checking everything.

One line each, to check a definition after the fact.

report §3, §12.5 A1; Terms introduced, §§5–9

APPENDIX · ICEBERG

All forty-five iceberg items, in full, sorted into our five columns.

Who may 10

  • Users vs. service-account principals
  • Role-gated services
  • OAuth 2.1 authorization server
  • Dynamic client registration
  • Per-user credential grants
  • Optional scope groups (opt-in DMs, private channels, writes)
  • Serialized token refresh behind distributed locks (rotating refresh-token families)
  • Scoped read-only token minting (the gh CLI compromise)
  • Out-of-band human approval (with rationale)
  • Pre-authorized workflows for automations

Which tools 12

  • Tool blocking and replacement
  • Proxied official MCP servers
  • REST extensions (public and reverse-engineered APIs)
  • OpenAPI spec + generic call tools (“here’s the documentation, figure it out”)
  • Composite connectors
  • Service owners (federated validation)
  • Self-service doc sets
  • Production search-stack reuse
  • Cached tool listings with background refresh
  • Lazy discovery (never during initialize or ping)
  • Tool-name prefixing vs. the 64-character limit
  • Read-only tool annotations (so clients stop over-prompting)

Run it 10

  • Sidecar process supervision (lazy start, crash budgets, restart backoff)
  • Readiness handshakes
  • Multi-region fan-out (injected region parameter)
  • Client compatibility shims
  • Session persistence and reuse
  • Heartbeats and keepalives
  • Per-connector timeouts (one slow upstream ≠ forty services down)
  • Optimistic-lock retries on hot session rows
  • Rate-limit diplomacy
  • Kill switches and dynamic settings

Shape the result 9

  • Customer tagging of every tool response
  • Multi-tier classification (deterministic candidates → fast model → slow model)
  • Data sensitivity levels / per-service sensitivity ceilings
  • Cross-customer access blocking
  • Summarize-don’t-dump tool design
  • Question sanitization via a single-tasking model
  • Draft-only email, internal-only Slack sends
  • Resume false positives (recruiting-data caps)
  • File refs (out-of-band uploads, opaque handles)

Operations 4

  • Audit log + open Slack transparency feed
  • Integrated MCP Inspector
  • Usage analytics and audit warehouse
  • Living architecture doc

Gold-edged items (9 of 45) shape what re-enters the model’s next call — the same nine that turn gold on slide seven. This five-column split is ours; Sierra’s post never sorts its 45 items this way.

Nine items, the same nine gold ones from slide seven, decide what the model sees next.

report §8.3; Sierra capture, figure 1 transcription (lines 127–188)

APPENDIX · SIERRA’S LESSONS

Seven of Sierra’s lessons, and what we’ve done with each.

LessonOne sentenceOur disposition
1 · Grab the lock One team solving auth, audit and integration for everyone beats every team wiring its own stack. Present — validates the gateway over direct connections
2 · Coding agents still need humans Agents cheat at self-verification; smoke-test with weaker agents; keep a living invariants doc. Process — how we build our gateway, not a diagram wall
3 · An agent can’t misuse what it never sees Response-level tagging plus multi-pass classification blocks cross-customer leakage. Present, partly deferred — audit and approval present; summarization adopted; tagging and DLP deferred to multi-customer workflows
4 · 80% of a workflow rounds down to 0% Partial workflow coverage captures none of the adoption value. Adopted in part — curated views and REST synthesis adopted; the 80/20 catalog rule itself proposed, not adopted; sidecars/multi-region deferred
5 · Avoid the strategy tax Deep Pinecone integration without requiring it — any client gets real data day one. Present — the gateway’s per-worker framing serves any harness, not one
6 · Don’t fight the weights GitHub’s full MCP server lost to the gh/aws CLIs agents already know, behind a minted scoped token. Adopted — scoped-credential egress shape; writes tied to intent present
7 · Human identity and agent identity Interactive work runs as the user; scheduled or shared work runs as a service account; pre-authorized workflows add a third safeguard. Present, reframed — principals model present; pre-authorization present in spirit, no named artifact yet; service owners adopted with a stricter review gate

Lesson 7, compared — an open question, not a resolved one. Sierra keys identity to the kind of work: interactive work runs as the user, scheduled or shared work runs as a service account. Our worker design keys identity to the worker itself: the AI worker is the authenticated subject in every case, and a human enters only as delegated authority. Sierra reasons more simply per call; ours keeps one identity and audit trail per worker across interactive and autonomous use. Neither is shown wrong — see slide 28.

Sierra reasons per call; ours keeps one identity and audit trail per worker.

report §8.4, §8.6

APPENDIX · MEMORY CLASSES

Not one memory. Ten classes, each owned somewhere.

Memory / state classLifetimeScopeCanonical owner
Working contextOne LLM callTurnFlue harness
Conversation historyConversationConversationFlue
Operational stateConversation/taskConversation Flue usePersistentState
Episodic memoryAcross conversationsUser/worker/org Gateway context service
Semantic memoryAcross conversationsUser/worker/org Gateway context service / systems of record
Memory / state classLifetimeScopeCanonical owner
Procedural memoryVersionedOrganization/worker Skills / policy–context registry
Artifact memoryPotentially long-livedTask/user/org Artifact/resource store
Workspace memoryTask/sessionAgent/workspace Sandbox provider
Capability stateDynamicPrincipalGateway
Authorization stateDynamicPrincipalGateway

Ten kinds of state this talk used loosely, split by lifetime, scope and owner.

034_2 §3

APPENDIX · RESPONSIBILITY

Who owns what, row by row.

ConcernGatewayFlue
Tenant isolationOwnsEnforces conversation access too
Worker identityOwnsCarries binding
Human delegationOwnsCarries reference
Tool authorizationOwnsNever overrides
Capability catalogOwnsProjects into model
External memory storeOwns / mediatesQueries through contract
Memory authorizationOwns—
Conversation transcript—Owns
Conversation control state—Owns
ConcernGatewayFlue
Context strategySupplies profile/configPrimarily owns
Token budgetingAdvisesOwns
Model-specific formatting—Owns
Raw tool result policyOwns—
Model-visible tool resultDefines safe projectionPersists/projects
Artifact storageGateway/object storeReferences
Prompt compaction—Owns
Context observabilitySharedShared

Identity and policy on one side, presentation and ranking on the other.

034_2 §35

APPENDIX · EPOCHS

Eight names proposed. Four already shipping.

034_2 §29’s eight epochs

  • contract version — the shape of the contract itself
  • profile version — which composition strategy is pinned
  • orgConfig epoch — org-wide policy and configuration
  • authorization epoch — permissions; a revocation invalidates rediscovery
  • catalog epoch — the tool catalog; a new tool need not invalidate memory
  • memory epoch — memory candidates; a new memory need not rediscover tools
  • artifact version — one artifact’s content
  • tool schema version — one tool’s call shape

Already shipping in the built gateway

  • policy_revision
  • catalog_fingerprint
  • binding_fingerprint
  • relay_binding_revision

Accumulated independently, without a name for the pattern, in apps/gateway-authority/src/approvals.ts’s row types — Buzz-specific, not yet reconciled with 034_2’s vocabulary (report §9.4 Q5).

Four fingerprint fields shipping today, unreconciled with the proposed eight.

034_2 §29; report §9.4 Q5

APPENDIX · EVIDENCE

The four phases and the repos behind them.

Phase 1

Until Jan 2026 · one session at a time; no product name
  • cc-architectures 2025-11-01 – 11-30 — Claude Code playground: skills, hooks, 10 subagents

Phase 2

Feb – Jul 2026
  • codex-container-platform 2026-04-24 — Codex CLI in a Cloudflare Sandbox container
  • mindblown 04-09 – 06-12 — the flagship live multi-Mind product
  • darwinian-harness-services 04-28 – 06-17 — session-log analysis harness
  • containerized-cli-harness 05-21 – 06-26 — container substrate + coordination layer
  • darwinian-harness-desktop 06-08 – 06-25 — Card Factory authoring app
  • mindcloud 06-11 – 06-26 — console / deploy management
  • darwinian-org 07-22 – 08-03 — Architect + Foundry, spans into Phase 3

Phase 3

From Jul 2026
  • worker-rooms (v1) 2026-08-28 – 08-31 — Mastra-based, rejected Flue by name
  • worker-rooms-2 08-31 – 09-25 — THE Phase 3 implementation, Flue-based (1,786 commits)
  • memory, i355 merged 09-22 — PR #88, cross-session memory index
  • spaces, i409 closed 09-23 — org-wide R2 filesystem
  • tool control plane, 042 09-03 — internal gateway attempt
  • buzz 08-06 – 09-23 — identity substrate (not a CL product)

Phase 4

Now, in construction
  • flue-playground design docs 09-23 – 09-25 — 007 through 034/034_2, gateway architecture lineage
  • Buzz v1 gateway code last touched 09-25 — one action: send a Buzz message
  • flue-worker-iter1 09-24 – 09-25 — agent-side worker pattern, proven on a real Durable Object (15 commits)

Without a fixed date: the move to Flue followed an initial rejection of Flue (worker-rooms v1) and then a spike that ran end to end (report §7.2a).

Remy’s phase windows, with the repos that evidence activity inside each.

report §7.1, §7.2a, §7.3, as evidenced in the repos

APPENDIX · CLAIMS

What’s confirmed, and what still needs checking.

MCP protocol revision 2026-07-28 is real, and is what SDK v2 targets

Confirmed

@modelcontextprotocol/* pinned 2.0.0; source map cites it

Mcp-Method / Mcp-Name are real HTTP headers in the SDK

Confirmed

server dist .d.mts:1180,1182

MRTR / input_required exists in the SDK

Confirmed, narrower scope

built for elicitation, not human approval

MCP has a formal reverse-DNS extension-ID mechanism

Needs verification

no occurrence in the installed SDK bundle

MCP tool result content is flattened to text for the model

Confirmed, near-verbatim

@flue/runtime docs, agent-api.md:701

Flue’s turn_request is in-process only, never persisted

Confirmed

@flue/runtime docs, events.md:326

useAgentStart loads data before the model executes; can modify capabilities

Confirmed, close paraphrase

agent-hooks-api.md:271–289

Anthropic’s Managed Agents split the session log from context management the same way

Not independently verifiable

no local Anthropic source to check against

MCP maintainers have an August 2026 roadmap for multiple result representations

Not independently verifiable

no roadmap document available locally

034’s citation markers throughout the document

Uncited — treat with care

citations behind roughly a dozen markers did not survive export

What’s traced to a source, and what still needs one.

report §9.5, §14