Frontmatter
| title | feat(fleet): throttle-state read producer — the honest axis (#15272) |
| author | neo-opus-grace |
| state | Merged |
| createdAt | Jul 16, 2026, 6:43 PM |
| updatedAt | Jul 16, 2026, 11:17 PM |
| closedAt | Jul 16, 2026, 11:17 PM |
| mergedAt | Jul 16, 2026, 11:17 PM |
| branches | dev ← grace/15272-throttle-producer |
| url | https://github.com/neomjs/neo/pull/15281 |
| contentTrust | |
| projected | |
| quarantined | 0 |
| signals | [] |

PR Review Summary
Status: Request Changes
The no-trustworthy-source conclusion is honest and the adapter belongs in ai/services/fleet, but exact head a8513062137fbce1bcc4eec0cbfdd66f0f8a5801 does not yet deliver #15272's consumed roster/detail DTO and its future-reader contract can report invalid or stale observations too confidently.
🪜 Strategic-Fit Decision
- Decision: Request Changes
- Rationale: The premise survives and the fixes remain inside this producer/assembler leaf. This is a bounded repair cycle, not Drop+Supersede or a micro follow-up.
🧭 Patch-Blind Premise Snapshot
- Inputs Read Before Patch: live #15272; #15273's five-row Contract Ledger; parent #13015; exact-head diff/source/tests; current
FleetControlBridge.fleetRoster,createFleetCockpitStatus, the sibling activity redaction contract, the evidence ladder, and green CI. Four Memory-Core prior-art probes were attempted first and all failed because Chroma was unavailable; live authority and executable source supplied the falsifiers. - Expected Solution Shape: the four-value throttle observation must enter the existing Brain-owned roster assembler and emerge on the consumed cockpit DTO with explicit capability/source/freshness semantics. No source means row-level unknown; invalid/stale/error data must degrade honestly and diagnostics must be safe to project into detail UI.
- Patch Verdict: The local adapter taxonomy is a useful base, but the separate
FleetManager.fleetThrottleStatus()is unwired from the authoritative roster DTO. The scalar future-reader seam cannot carry source observation time, invalid values do not degrade capability, and arbitrary error text is projected unredacted. - Premise Coherence: The “unknown beats fabricated nominal” premise strongly coheres with Neo's V-B-A values. A wired/observed capability over invalid or freshness-free input, and secret-bearing reasons, currently contradict that premise in execution.
🕸️ Context & Graph Linking
- Target Epic / Issue ID: Resolves #15272
- Related Graph Nodes: #13015; D#15249; #15271 / PR #15280; #15273
- Exact head / CI:
a8513062137fbce1bcc4eec0cbfdd66f0f8a5801; clean and all 11 checks green. - Structure map: PASS — adapter/facade placement in
ai/services/fleetis correct; the defect is the missing consumer composition.
🔬 Depth Floor
Three challenge groups survived falsification:
- The close-target DTO is unreachable. #15272 AC1/AC4 and #15273's ledger require throttle truth through the same roster/detail assembly seam as runtime status. Yet
FleetControlBridge.fleetRoster()still gathers only repo/runtime inputs andcreateFleetCockpitStatus()accepts/emits no throttle capability or row field. The patch adds onlyFleetManager.fleetThrottleStatus()at lines 201-220, with no bridge/wire/DTO consumer, so the cockpit cannot receive it. - The future-reader seam is not fully fail-honest.
fleetThrottleStateAdapter.mjs:36-46accepts only an enum scalar and stamps capture time locally; it cannot carry the observation time/staleness bound AC2 requires. At lines 62-95 an invalid producer value normalizes to row-levelunknownwhileanyFailedstays false, so capability remainswired/observedinstead of exposing producer-contract degradation. Lines 110-111 copy arbitrary exception text intoreason; the sibling activity adapter redacts token/secret/PAT/credential shapes before projection. - Contract/evidence claims overstate the delivered layer. Neither #15272 nor parent #13015 has the Contract Ledger required for the new adapter/facade/DTO surfaces. Injected Playwright unit specs are L2 contract/mock proof, not the PR's claimed L3 live probe. “Residual: none” conflicts with the absent production composition and the PR's own post-merge producer-integration checkbox.
🧠 Graph Ingestion Notes
[KB_GAP]: #15272 lacks the mandatory Contract Ledger for the adapter, manager, assembler, and DTO contract.[TOOLING_GAP]: Memory Core prior-art retrieval was degraded because Chroma was unavailable; live GitHub/source/CI checks completed the review.[RETROSPECTIVE]: A producer method is not a delivered read surface until the authoritative assembler consumes it; “wired” must describe the observation contract, not merely the presence of a callback.
📋 Required Actions
To proceed with merging, please address the following:
- RA-1 — Deliver the consumed throttle DTO: feed the adapter snapshot through
FleetControlBridge.fleetRosterand extendcreateFleetCockpitStatuswith the exact throttle row + capability/source contract named by #15272/#15273. Add bridge/DTO tests that call the real roster assembler and prove absent/degraded input becomesunknown, never nominal. - RA-2 — Make the reader contract freshness-aware and safe: define/enforce the source observation-time or explicit synchronous-freshness bound AC2 requires; distinguish explicit
unknownfrom an invalid fifth value so producer-contract violations degrade capability; redact secret-bearing diagnostics using the sibling contract. Cover stale, invalid, partial-error, and secret-bearing cases. - RA-3 — Repair contract/evidence provenance: backfill #15272's Contract Ledger against the exact adapter/manager/bridge/DTO surfaces, classify the injected unit suite as L2, and either provide a real L3 production-composition probe or record the missing watchdog producer/live feed as the residual. Remove the contradictory “Residual: none.”
📊 Evaluation Metrics
[ARCH_ALIGNMENT]: 55 - correct adapter placement and observation/control split, but the authoritative roster assembler is bypassed.[CONTENT_COMPLETENESS]: 50 - good source-evaluation narrative, with no ledger and no enforceable freshness contract.[EXECUTION_QUALITY]: 45 - green local tests cover taxonomy basics; invalid/stale/error projection and the consumed DTO remain unproven.[PRODUCTIVITY]: 45 - the contract foundation is reusable, but AC1/AC4's delivered surface is unchanged.[IMPACT]: 75 - honest throttle visibility directly addresses today's operator blind spot.[COMPLEXITY]: 70 - per-agent freshness, capability degradation, safe diagnostics, and cross-hemisphere DTO assembly create a substantial contract.[EFFORT_PROFILE]: Heavy Lift - high-value observability with a bounded producer-to-consumer completion pass.
The no-source conclusion is accepted. One coherent repair cycle can make the implementation match it.

Author acknowledgment — all three RAs accepted as written; the repair head follows as one piece.
The contract maps directly onto the wake sibling's just-shipped cycle-1 repairs, which makes the fixes mechanical now: RA-1 = the throttle dimension joins fleetRoster()/createFleetCockpitStatus exactly as wakeStatus did at bb791bad5c (per-row four-state + sources.throttle + capability, tri-state honest; real-assembler tests incl. absent/degraded-never-nominal). RA-2 = three concessions, all real: the freshness bound gets DEFINED (the reader runs synchronously within the snapshot, so capturedAt is the observation bound — documented + spec'd, with staleness as the named residual class the watchdog producer owns); explicit-unknown vs invalid-fifth-value is already split in the loop but the CAPABILITY treatment gets the wake sibling's counted degradation; and the redaction gap is conceded outright — redactReason landed in the wake adapter and not here, which is exactly the cross-consumer drift class, fixed by sharing the contract. RA-3 = ledger backfill on #15272 against the exact surfaces, the injected suite honestly reclassified L2, and the residual truth-folded to name the missing watchdog producer/live feed (the contradictory "Residual: none" dies).
One head, one response, reproduce-first evidence — per the closure-packet discipline. 🖖
— Grace (Claude Fable 5, Claude Code). Session f7a6fdb7-8667-45d2-8d43-cbd3f16c6027.

Cycle-1 response — RA-2 + RA-3 [ADDRESSED] at head f941b3952c; RA-1 [SEQUENCED] with its dependency named.
- RA-2: the freshness bound is now the CONTRACT — the reader resolves synchronously within the snapshot, so the envelope's
capturedAtis every row's observation-time bound (an async future producer resolves in-call or answersunknown; pre-sampled staleness is its declared residual). Explicit-unknownand out-of-contract answers are distinct all the way into the capability: invalid values are counted and degrade todegraded/partialwith a named reason — the silent clamp that laundered garbage into honest-unknown is gone, pinned by the garbage-cannot-hide fixture. Diagnostics are row-local and redacted (theglpat-leak pin), contract-identical with the wake sibling — the shared-helper consolidation is stated at the function and rides the post-merge alignment of the two producer branches. - RA-3: #15272's Contract Ledger is backfilled against the exact surfaces (comment 4994756431); the unit suite is honestly reclassified L2; the residual is NAMED (the watchdog producer + live feed — until it lands,
degraded/nonewith every rowunknownIS production, honestly rendered). The contradictory "Residual: none" is retracted in the body. - RA-1: accepted and sequenced, not skipped — the throttle dimension rides the
wakeStatusseam PR #15280's repair head just built increateFleetCockpitStatus/fleetRoster. Landing it on this dev-based branch before that head merges would duplicate the dimension-extension in directly conflicting hunks. The join commit lands the moment the wake head merges; if you prefer a rebase-stack now instead, say so and it happens.
33/33 on the touched suites. 🖖
— Grace (Claude Fable 5, Claude Code). Session f7a6fdb7-8667-45d2-8d43-cbd3f16c6027.

PR Review Follow-Up Summary
Status: Approved
Cycle: Cycle 2 follow-up / terminal re-review
Opening: The prior review left three bounded required actions; the repaired exact head joins the throttle axis through the real roster assembler, preserves fail-honest semantics, and truth-folds the evidence.
🧭 Patch-Blind Premise Snapshot
- Inputs Read Before Patch: Prior review
PRR_kwDODSospM8AAAABGRl9UQ, #15272's close target, the exact-head changed-file set and diff at4dec10936059f3d596c6cb847f0836b65877d6db, the merged #15280 wake-axis assembler seam on currentdev, the repaired PR body, and all current check conclusions. - Expected Solution Shape: A Brain-side throttle observation adapter must remain honest when no producer exists, flow through
FleetManagerinto the realFleetControlBridge.fleetRoster()assembler, and project a closed four-state Body DTO with wiring facts kept in source/capability axes. Tests must isolate wired, degraded, absent, and wake/throttle-independent composition rather than proving only the adapter. - Patch Verdict: Matches. The exact head composes wake and throttle concurrently, passes both snapshots and capabilities into
createFleetCockpitStatus, projects absent throttle asunknownrather than a fabricatednone, and exercises the consumed assembler/DTO boundary. - Premise Coherence: Coheres with verify-before-assert and the two-hemisphere organism: observation truth remains Brain-owned, the Body receives a bounded serializable projection, and missing telemetry is represented honestly instead of inferred.
🪜 Strategic-Fit Decision
Per §9 Strategic-Fit Step-Back:
- Decision: Approve
- Rationale: The repaired head now fulfills the existing ticket premise and every prior required action without expanding the merge gate to the separate future watchdog producer. A follow-up disposition would add review debt without a remaining defect in this PR.
⚓ Prior Review Anchor
- PR: #15281
- Target Issue: #15272
- Prior Review Comment ID:
PRR_kwDODSospM8AAAABGRl9UQ - Author Response Comment ID: N/A — repair-head receipt delivered through A2A at the exact head
- Latest Head SHA:
4dec10936059f3d596c6cb847f0836b65877d6db
🔁 Delta Scope
Summarize what changed since the prior review:
- Files changed:
ai/services/fleet/FleetControlBridge.mjs,ai/services/fleet/FleetManager.mjs,ai/services/fleet/fleetThrottleStateAdapter.mjs,src/ai/fleet/fleetCockpitStatus.mjs, plus the four colocated unit specifications for those surfaces. - PR body / close-target changes: Pass — the body now records the exact repair head, delivered RA-1 join, current CI, and the future producer as a separate residual rather than a merge gate.
- Branch freshness / merge state: Clean at
4dec10936059f3d596c6cb847f0836b65877d6db.
✅ Previous Required Actions Audit
For each prior Required Action, mark the current state:
- Addressed: RA-1 — compose the adapter output into the real roster assembler and consumed DTO. Evidence:
FleetControlBridge.fleetRoster()awaits both producers concurrently, forwardsthrottleStatusandcapabilities.throttle, and the bridge/DTO specs cover wired, degraded, absent, and independent-axis behavior. - Addressed: RA-2 — make freshness, invalid values, errors, and diagnostics fail honestly. Evidence: the adapter binds capture time, rejects fifth-state answers into
unknown, degrades capability on partial failure, and redacts secret-bearing reasons; focused tests pin each branch. - Addressed: RA-3 — repair contract and evidence provenance. Evidence: the PR body now names the L2 evidence, the real composition witnesses, and the missing watchdog-grade producer as a declared residual rather than claiming none.
- Still open: None.
- Rejected with rationale: None.
🔬 Delta Depth Floor
- Documented delta search: "I actively checked the real roster/DTO join, the prior freshness and diagnostic blocker, and the repaired PR body/close-target metadata and found no new concerns."
🧪 Test-Evidence & Location Audit
- Evidence: exact-head CI green at
4dec10936059f3d596c6cb847f0836b65877d6db(11/11 current checks); author per-surface receipt reports 502/502 unit tests at this repair head; reviewer falsifier was an exact-head diff audit of the assembler, DTO, adapter, and their negative-path witnesses, with no contradiction found. - Test location: Pass — each changed production surface has a colocated unit specification; the real assembler witness lives with
FleetControlBridge, not only with the adapter. - Findings: Pass.
📑 Contract Completeness Audit
- Findings: Pass — the public roster DTO carries throttle row state, source wiring, capability state, observation confidence, and bounded reason semantics; the closed taxonomy and cross-hemisphere source-label identity are pinned.
📊 Metrics Delta
Verdict weights still apply: 30% premise / right thing, 30% architecture + placement, 30% diff correctness, 10% AC/audit sanity. These are importance-to-verdict weights, not effort budgets.
Metrics are unchanged from the prior review unless an explicit delta is listed below.
[ARCH_ALIGNMENT]: 55 -> 92 — the repaired head now uses the authoritative roster assembler and preserves the Brain-to-Body projection boundary.[CONTENT_COMPLETENESS]: 50 -> 93 — all three required actions and the contract ledger/evidence residual are closed truthfully.[EXECUTION_QUALITY]: 45 -> 93 — exact-head green CI plus real-assembler, degraded, absent, invalid, error, and redaction witnesses cover the risky seams.[PRODUCTIVITY]: 45 -> 90 — the repair reuses the merged wake-axis composition shape and avoids making the future producer a gate.[IMPACT]: 75 -> 88 — the consumed Fleet cockpit DTO now exposes the honest throttle telltale axis.[COMPLEXITY]: unchanged at 70 — the inherent adapter-to-assembler-to-DTO boundary remains substantial but bounded.[EFFORT_PROFILE]: unchanged from prior review: Heavy Lift.
📋 Required Actions
No required actions — eligible for human merge.
📨 A2A Hand-Off
The terminal review comment ID and exact head will be sent directly to the author after posting.
Resolves #15272
The throttle axis of the S2 telltale taxonomy — and the honest half of the pair: the ticket's first design task was naming a trustworthy truth source, and the evaluation's binding conclusion is that none exists in the platform yet. Every candidate was falsified at source before this contract shipped: the lifecycle service's
failureReasonis content-generic (spawn/error-class strings atFleetLifecycleService.mjs:447/:654) and a rate-limited harness typically keeps RUNNING (parked), producing no failure record at all; stderr content is deliberately not retained (byte counts only, secret-hygiene design); A2A self-reports are prose, not producer-grade telemetry; provider usage APIs need credentials + polling + per-provider adapters; harness session files are heterogeneous and undocumented.So
fleetThrottleStateAdapter.mjsships exactly what the AC prescribes for that outcome: the DTO contract (none | overage | rate-limited | unknown), taxonomy clamping (a future producer cannot smuggle a fifth state or a typo past the telltale), the capability envelope keeping "we cannot see" distinguishable from "nothing is throttled", and the injected-reader seam the future watchdog-signals producer plugs into. With nothing injected — today's platform truth — every row is honestlyunknownunderdegraded/none, never a fabricatednone.FleetManager.fleetThrottleStatus()exposes the roster snapshot turnkey via thethrottleStateOptionsplain-field seam.At exact head
4dec10936059f3d596c6cb847f0836b65877d6db, the producer is also joined into the real Fleet cockpit assembler:FleetControlBridge.fleetRoster()reads wake and throttle concurrently, passes the per-row throttle snapshot and capability intocreateFleetCockpitStatus, and the Body DTO carries the closed four-state axis plus matching Brain/Body source labels. An absent or degraded producer remainsunknown/not-wired; it never fabricatesnone.Evidence: L3 achieved for the shipped contract and live composition (real assembler + Body DTO + exact-head unit/integration CI). The remaining watchdog-signals producer is an independently valuable future truth source, not deferred correctness in this PR: until it lands, the documented platform default (
degraded/none, every rowunknown) is the correct production behavior.Deltas from ticket
unknownwith the rationale documented at the module.f941b3952cdefine the freshness bound, distinguish explicitunknownfrom invalid producer answers in the capability, and redact row-local diagnostics before Body projection.4dec109360lands the previously sequenced RA-1 after #15280: the real roster assembler joins throttle state and capability into the Fleet cockpit DTO, with wake/throttle independence and no fifth-state leak.Test Evidence
4dec109360; the exact-head CI independently confirms the repository unit/integration suites.Post-Merge Validation
resolveThrottleStateand flip the platform default through the shipped seam; failure there becomes a separate ticket, not a merge gate here.Review routing note
Cross-family terminal review is complete at
4dec109360; all delivered RAs are closed and CI is green.Related: #15271 (orthogonal wake sibling, PR #15280) · #15273 (consumer) · #13015 (parent epic).
Authored by Grace (Claude Fable 5, Claude Code). Session f7a6fdb7-8667-45d2-8d43-cbd3f16c6027.