Context
Slice 4 of neomjs/neo-agent-brain#50 (S7, epic neomjs/neo-agent-brain#83) — the F3 refinement from the author falsification pass: client-held watermarks keep the plane cursor-stateless, but route-health rendering for poll-only routes then has NO plane-side observation — the cockpit cannot distinguish "healthy, polls elsewhere" from "nobody ever polls." The agreed resolution preserves statelessness: last-poll-at as observational telemetry — a GraphLog append on each authenticated poll-digest call. A timestamp, never a cursor; no delivery state owned.
Kept separate from slices 2/3 deliberately: the code is small, but the MCP-server change class drags the parity gates (openapi.yaml + tool handbook + config-leaf parity lint) — that gate set should not contaminate the fleet-server or cockpit slices.
The Fix
WakeSubscriptionService.pollDigest (ai/services/memory-core/WakeSubscriptionService.mjs:1584): append the observational last-poll-at event (GraphLog, per-subscription) on each authenticated call.
- Expose last-poll-at in the subscription state read surface (the
list/state projection consumed by fleetWakeRoutesSource), openapi + handbook + parity lint in the same commit.
- Health derivation contract: poll-route health = subscription state + last-poll recency; absence of polls renders absence-of-signal, never a verdict (tier-degradation vocabulary).
Acceptance Criteria
Out of Scope
The SSE push path (slice 2), cockpit rendering (slice 3), any change to pollDigest's digest semantics or watermark contract.
Related
Parent neomjs/neo-agent-brain#50 · slice 1 neomjs/neo#16800 (merged, PR neomjs/neo#16796 — the surface this decorates) · slices 2/3 siblings · epic neomjs/neo-agent-brain#83.
Live latest-open sweep: latest 20 open checked at 2026-08-14T08:1xZ, no equivalent; A2A herd window clean.
Origin Session ID: c4996813-01b9-4234-8bdd-ed3bf22c0970
Retrieval Hint: query_raw_memories("last-poll-at observational telemetry poll-digest pull route health")
Context
Slice 4 of neomjs/neo-agent-brain#50 (S7, epic neomjs/neo-agent-brain#83) — the F3 refinement from the author falsification pass: client-held watermarks keep the plane cursor-stateless, but route-health rendering for poll-only routes then has NO plane-side observation — the cockpit cannot distinguish "healthy, polls elsewhere" from "nobody ever polls." The agreed resolution preserves statelessness: last-poll-at as observational telemetry — a GraphLog append on each authenticated
poll-digestcall. A timestamp, never a cursor; no delivery state owned.Kept separate from slices 2/3 deliberately: the code is small, but the MCP-server change class drags the parity gates (openapi.yaml + tool handbook + config-leaf parity lint) — that gate set should not contaminate the fleet-server or cockpit slices.
The Fix
WakeSubscriptionService.pollDigest(ai/services/memory-core/WakeSubscriptionService.mjs:1584): append the observational last-poll-at event (GraphLog, per-subscription) on each authenticated call.list/state projection consumed byfleetWakeRoutesSource), openapi + handbook + parity lint in the same commit.Acceptance Criteria
Out of Scope
The SSE push path (slice 2), cockpit rendering (slice 3), any change to
pollDigest's digest semantics or watermark contract.Related
Parent neomjs/neo-agent-brain#50 · slice 1 neomjs/neo#16800 (merged, PR neomjs/neo#16796 — the surface this decorates) · slices 2/3 siblings · epic neomjs/neo-agent-brain#83.
Live latest-open sweep: latest 20 open checked at 2026-08-14T08:1xZ, no equivalent; A2A herd window clean.
Origin Session ID: c4996813-01b9-4234-8bdd-ed3bf22c0970
Retrieval Hint:
query_raw_memories("last-poll-at observational telemetry poll-digest pull route health")