LearnNewsExamplesServices
Frontmatter
id15272
titleFleet roster DTO: throttle-state read producer — none | overage | rate-limited | unknown (S2 axis 2, D#15249)
stateClosed
labels
enhancementai
assigneesneo-opus-grace
createdAtJul 16, 2026, 5:07 PM
updatedAtJul 16, 2026, 11:17 PM
githubUrlhttps://github.com/neomjs/neo/issues/15272
authorneo-fable
commentsCount1
parentIssue13015
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]
closedAtJul 16, 2026, 11:17 PM

Fleet roster DTO: throttle-state read producer — none | overage | rate-limited | unknown (S2 axis 2, D#15249)

Closed Backlog/active-chunk-6 enhancementai
neo-fable
neo-fable commented on Jul 16, 2026, 5:07 PM

Context

The second named W2 wiring leaf from the graduated FM design-first record (D#15249 → #15254): the throttle axis of the S2 telltale taxonomy. The STEP_BACK verified rate-limit/overage truth has NO service surface at all — this axis is unknown-by-construction until this leaf lands.

The Problem

TODAY's lived incident: a session rate limit hit the swarm blind — the operator learned of it from failing calls, not from the cockpit. The same morning both axes were non-nominal at once (wake hand-off + rate limit), which is exactly why the record ruled the taxonomy two-axis instead of one enum.

The Architectural Reality

  • The graduated taxonomy (binding): throttle: none | overage | rate-limited | unknown. Honest-degradation rule holds: unknown renders as unknown, never as none.
  • Harder than the wake sibling: throttle truth must come from an observable source (provider/session accounting, harness signals, or error-class telemetry) — the leaf's FIRST design task is naming the source honestly; if no trustworthy source exists for a sub-state, that sub-state stays unknown and the ticket documents why (fail-honest beats fabricated precision).
  • Feeds the same roster/detail DTO assembly as the wake sibling; the two land independently (orthogonal axes, no ordering edge).
  • Placement per the D#15209 ledger default: wiring → #13015.

Acceptance Criteria

  • The roster/detail DTO gains a throttle-state observation field with exactly the four taxonomy values; absence of truth = unknown.
  • The truth source is NAMED and documented (what is observed, its staleness bounds); sub-states without a trustworthy source ship as honest unknown with rationale.
  • Unit coverage: all four states + unknown-on-unreachable.
  • The projection contract documented where the DTO assembly lives (Anchor & Echo).

Out of Scope

The wake axis (#15271) · the telltale UI (separate leaf under #14560) · any throttling ENFORCEMENT (this is observation only).

Related

Epic #13015 (parent) · #15271 (orthogonal sibling) · D#15249 (graduated record, OQ-S2.3 amended resolution) · #15254 (registry taxonomy table).

Sweeps: latest-open checked 2026-07-16T15:05Z (latest #15267) — no equivalent. A2A herd-window clean.

Origin Session ID: b42c5667-db78-4a0c-83a0-ce66c95ee0d9 Retrieval Hint: "fleet throttle rate-limit read producer roster DTO telltale axis"

tobiu referenced in commit 38a7285 - "fix(build): the sync-data guard is merge-blind — every dev-merge on a feature branch is refused (#15299) (#15300) on Jul 16, 2026, 10:03 PM
tobiu referenced in commit 0c25cdc - "fix(build): check-whitespace is merge-blind too — #15300 only half-unblocked the dev-merge (#15303) (#15304) on Jul 16, 2026, 10:48 PM
tobiu referenced in commit 97e0f33 - "feat(fleet): throttle-state read producer — the honest axis (#15272) (#15281) on Jul 16, 2026, 11:17 PM
tobiu closed this issue on Jul 16, 2026, 11:17 PM