LearnNewsExamplesServices
Frontmatter
id17104
titleFM guide D1: home the wake daemon host-side + layout polish
stateClosed
labels
bugdocumentationai
assigneesneo-fable-clio
createdAtAug 14, 2026, 10:48 AM
updatedAtAug 14, 2026, 2:45 PM
githubUrlhttps://github.com/neomjs/neo/issues/17104
authorneo-fable-clio
commentsCount0
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]
closedAtAug 14, 2026, 2:45 PM

FM guide D1: home the wake daemon host-side + layout polish

Closed Backlog/active-chunk-16 bugdocumentationai
neo-fable-clio
neo-fable-clio commented on Aug 14, 2026, 10:48 AM

Context

Operator caught both defects on the merged guide (learn/agentos/FleetManagerArchitecture.md, PR #16936) the morning it landed: the D1 diagram renders dense (12 labeled edges — cosmetic, explicitly not a priority alone), and — the factual defect this ticket exists for — D1 places the wake daemon inside the Dockerized Agent OS subgraph. That is false. The wake daemon is a HOST-side process: two launchd scripts form a local mini-orchestrator that runs it on client machines, because wake delivery for several harnesses requires osascript to inject A2A messages as prompts — host-level automation that cannot execute from inside a container.

The Architectural Reality (source-anchored, verified 2026-08-14)

Two wake delivery actors, two homes:

  • Plane-side (in the MC container): WebhookDeliveryService — the signed Shape-B dispatcher (HMAC + the four X-Neo-Wake-* headers), invoked by CoalescingEngineService (ai/services/memory-core/CoalescingEngineService.mjs:680/:739), configured by the MC server entrypoint (ai/mcp/server/memory-core/Server.mjs:300). This is the actor that will POST at the composed fleet-server's /wake (PR #17103).
  • Host-side (launchd, client machines): ai/daemons/wake/daemon.mjs — the local mini-orchestrator's wake daemon, owning the Shape-C harness adapters (osascript / tmux / codex / opencode / kimi-pull-bridge; its own naming: getActiveShapeCSubscriptions) plus the legacy unsigned webhookUrl path. defaultAdapter = darwin ? 'osascript' : 'tmux' says the home out loud.

The guide's D1 currently draws one WakeD["Wake daemon"] node inside the Plane subgraph with the class-6 arrow — collapsing both actors into the wrong home.

The Fix

One bounded edit to D1 (+ its caption):

  1. Move the wake-daemon node OUT of the Plane subgraph onto the Host, named for what it is (launchd mini-orchestrator; osascript injection is the reason it must live there).
  2. Re-anchor the class-6 signed-wake arrow to its true producer (the plane's signed dispatcher → signed receivers/seats), keeping the six-class ledger placement intact.
  3. Use the same edit to reduce edge density for legibility (the cosmetic half — e.g. group the seat-side credential arrows), and re-render-verify all six diagrams with repo mermaid (the PR #16936 harness pattern).

Acceptance Criteria

  • D1 shows the wake daemon host-side (launchd mini-orchestrator, osascript rationale in caption or label) and the plane-side signed dispatcher as the class-6 producer; no diagram claims a container home for the daemon.
  • All six diagrams re-render clean under repository mermaid (mechanical render receipt on the PR).
  • The lived-voice and D5 prose stay untouched (correction 2026-08-14: D5's "Wake daemon (delivery attempt)" is an abstract delivery actor homed in NO subgraph — it asserts no false home, which is why it needs no edit; the earlier "already the host-side truth" phrasing was imprecise, since the Shape-B dispatch half is plane-side).

Out of Scope

Other diagrams' content; ADR text; the guide's prose sections; any runtime code.

Related

#16798 (the guide ticket, closed) · PR #16936 (the carrier) · #17100 / PR #17103 (where the two-actor split is source-anchored in shipping code) · #17098 (KB-retrievability sibling — a merged correction here should precede or ride the re-ingestion check).

Live latest-open sweep: latest 20 open checked at 2026-08-14T09:0xZ (top = my own S7 slices); no equivalent. A2A herd window: clean.

Origin Session ID: c4996813-01b9-4234-8bdd-ed3bf22c0970

Retrieval Hint: query_raw_memories("wake daemon host-side launchd mini-orchestrator D1 two delivery actors")

tobiu referenced in commit 2b980ea - "docs(learn): FM guide D1 — the wake daemon lives host-side (#17104) (#17110) on Aug 14, 2026, 2:45 PM
tobiu closed this issue on Aug 14, 2026, 2:45 PM