9 Implementation
lead edited this page 2026-09-22 12:48:50 +07:00
Clone

Wiki Page Revisions

8 Commits

Author SHA1 Message Date
lead 7bd4616ffb Implementation: Fleetd.main's boot composition now lives in FleetdAssembly (fleetd #612)
Figure 2's intro and caption said main assembles the graph; that has not been
true since #620. Adds the seam's contract: FleetdAssembly/FleetdRuntime/
ResourcePorts, why there is deliberately no inert default, and the two traps a
boot test hits — the late attachApp, and the one-FakeHerdr fixture that cannot
tell leadAgents() from memberAgents() when memberHerdrSocket is unset.
2026-09-22 12:48:50 +07:00
Dai Ha 06cceeee7c #168: rebuild chapters 1, 2, 7, 8 and 9 against the source
The audit marked all five REBUILD. Every factual claim on them is now checked in
the code and carries a file:line reference.

What was wrong and is now fixed:

- Ch.1 named a `fleet_read` tool and an SSE `GET /events` route. Neither exists.
  It also named Redis Streams and NATS JetStream as the queue; the shipped inbox
  is AMQP. The subscription boundary is back as its own section, sourced from
  SubscriptionGuard, and the REST list now matches FleetApp.build().
- Ch.2 described tool parameters that were never shipped. The tool table now
  comes from each tool's own schema method.
- Ch.7 was built on `ccs` profiles and on send parameters that do not exist.
  Every flow now uses the real tools. The portable CLAUDE.md block is unchanged,
  byte for byte, and the sync check still passes.
- Ch.8 presented old plans as the current stack. It is now a delivery record in
  four states, and "built, not switched on" means no host enables it today —
  AMQP and the coordinator mailbox are both on here, so both moved to live.
- Ch.9 had drifted from the source in its package, class and endpoint map.

Also: chapters 1, 2 and 8 had "I checked this in the code" written on the page
itself. That belongs in a worker's report, not in a reference page. The pages now
state the fact and cite the line.

Every Mermaid diagram was rendered with mmdc before this commit.
2026-08-31 10:29:05 +07:00
Dai Ha 3357960dd1 CB-634: rename bridged -> fleetd across the wiki
Match the code cutover: daemon name, config (fleetd.yaml), scripts, launchd/
systemd units, module dir, and MCP tool prefix bridge_* -> fleet_*. Kept:
the BRIDGED_MEMBER security marker, mcp__bridge__ (historical mount name), and
the .bridged-worktrees on-disk path. The portable CLAUDE.md block stays
byte-identical with the repo's CLAUDE.md.
2026-08-25 04:08:38 +02:00
Dai Ha 7ceaad9b3c 9-Implementation: document the auth package (the role axis)
The role axis shipped in CB-548/CB-560/CB-561 but landed nowhere on this
page: Role, Principal, CallerResolver, Authz, AuditLog, MemberLifecycle
and MemberRegistry were all undocumented, and so was the decision table
that says an architect may send and a worker may not.

Also fix three stale facts found while writing it: the launcher package
is member, not worker; the daemon speaks herdr protocol 19 (0.8.0), not
14 (0.7.0); and there are fourteen packages, not ten. The package list
now says plainly which ones this page still does not cover.
2026-08-15 04:43:44 +02:00
Dai Ha 4d1548a3d8 wiki: CB-307 complete — Stage 2 durable inbox + Stage 3 active push loop (as-built)
Fold the now-shipped CB-307 into the as-built docs (was stale at Stage 1 only):
- Roadmap: Stage 2 (AmqpReplyInbox/LavinMQ, 2bc5f3a) and Stage 3 (ReplyPushLoop
  active push-to-primary, d4c9704, gitea #5 closed) marked shipped; diagram gains
  a Stage 3 node; all stages green.
- Implementation: msg core 4->6 classes (AmqpReplyInbox consume-and-hold, ReplyPushLoop
  status-gated loop); mcp 6->7 (PrimaryRegistry); bridge_ack tool; stranded-reply
  narrative extended with durable landing + active nudge + pull degradation.
- Architecture: late-replies note now covers durable + active push; split-host hook
  note clarifies a same-host primary IS injected into (Stage-3 nudge).

Push channel resolved: the same-host primary is a herdr pane, so the loop injects a
bounded, status-gated drain nudge into its own pane; off-host degrades to pull.
Mermaid roadmap diagram re-validated (renders clean).
2026-07-19 18:07:18 +02:00
Dai Ha bcf15a85c9 wiki: CB-307 reply-inbox (as-built) + CB-308 multi-host federation
- 9-Implementation: msg package 2->4 classes (ReplyInbox port + InMemoryReplyInbox),
  reply now HELD not dropped when no send is open; drain via bridge_poll(target) +
  GET /sessions/{id}/replies; forward-rendezvous stranded-reply note.
- 8-Roadmap: new 'Delivery reliability & multi-host' section (CB-306 shipped,
  CB-307 Stage 1 shipped / Stage 2 deferred, CB-308 designed) + staging diagram.
- 1-Architecture: multi-host federation topology (CB-308) + diagram; late-reply
  durability note (CB-307) in Mode 1.
2026-07-19 07:08:02 +02:00
Dai Ha 0a0f7d53d6 wiki: CB-401 Stage A — PeerLauncher SPI + ClaudeCodeLauncher rename
- 9-Implementation: new peer package section (PeerLauncher/PeerHandle/
  SpawnRequest/Capability); WorkerService->ClaudeCodeLauncher in component
  map, edge table, bootstrap wiring; nine->ten packages; refs main 3aa69a9.
  Capability noted as declare-only (verb-layer enforcement deferred).
- 1-Architecture: worker row notes swappable PeerLauncher adapter; core
  bus is peer-neutral.
- 8-Roadmap: Stage 4 relabeled 'Pluggable peers'; CB-401 Stage A complete
  (183 tests, main 3aa69a9); CB-402 Stage B + Stage C shown as future.

Reflects main @ 3aa69a9. Verified against source by primary.
2026-07-18 15:00:06 +02:00
Dai Ha 8e5fd01ac9 wiki: add page 9 — as-built implementation architecture
Fan-out code audit (one worker per layer, off-subscription) synthesized into
a verified as-built map: component layers, per-package class reference, REST
route table, bootstrap wiring, forward + reverse rendezvous sequence flows,
and two state machines (AgentStatus; Injector per-target turn lifecycle with
the real grace constants 8/120/240). Enums, routes, and the guard allowlist
verified against source at aa0cf81. All 6 mermaid diagrams mmdc-validated and
theme-safe.
2026-07-16 16:45:12 +02:00