Skip to content

fix(aggregator): quota pools carry no visible per-pool read age - stale manual reads look live #1170

Closed

Description

@dezren39

Finding

Evidence (live review 2026-10-26 ~22:40 CDT, laptop loopback + gh, cross-checked): /quota renders pool numbers whose sources are heterogeneous: some are machine reads (fleet feed, 3m old tonight), several are dated MANUAL console reads carried in the stewardship quota view (per the 2026-10-26 SaaS review; e.g. Meta/Go/Cline have no working machine meter). The page does not badge which is which or how old each pool's read is - yesterday this exact gap hid Go Personal at 60% vs a console 80%, and Meta as "healthy" while walled. /api/quota.json pool objects likewise carry no read-age field a consumer could check.

Proposal

Every pool/service carries source + readAt + age in the model and API; the page badges manual reads with their date and flags reads older than their pool's expected cadence (console reads: >26h) as stale, in the needs-attention strip style already used for >80%/walled.

Acceptance

Acceptance criteria

  • Every pool/service carries source + readAt + age in the model and in /api/quota.json.
  • A fixture pool with an old manual read renders the stale badge on /quota; reads older than their pool's expected cadence (console reads: >26h) are flagged stale.
  • Tonight's live pools each show a source + age on the page.

Activity

  1. added
    kind/bugSomething isn't working (prefixed form of the classic bug label)
    task/small-fixQueue packet kind: bounded fix with reproduction and targeted tests
    app/pm-stackpm-stack (Pad/Grist) in developing-today/code
    on Oct 27, 2026
  2. developing-today commented on Oct 27, 2026

    @developing-today
    Contributor
  3. added
    source/humanFiled directly by a human
    priority/normalOrdinary priority (the default)
    effort/sSmall: expected under 2 hours of work
    meta/enrichedIntake review done: acceptance criteria, links, and normalized labels added
    on Oct 28, 2026
  4. dezren39 commented on Oct 28, 2026

    @dezren39
    MemberAuthor

    Intake review

    Related: Live-review finding (2026-10-26). Refs #851. Sibling batch: #1171, #1169, #1167.

    Notes / risks: Manual console reads are the pools most likely to be stale and least likely to look it — the badge + API readAt/source fields are both required, page-only is not enough.

    Suggested approach: Use the existing needs-attention strip styling for the stale flag, per the proposal.

    Live check: verified still open and unheld this run; a merged-PR search on this run (2026-10-28T10:35:00Z) returned no PR resolving this issue, so it remains live work. Acceptance criteria appended to the body (original text preserved verbatim above it) and labels normalized by the fleet monitor.

  5. added
    work/assignedQueue worker lifecycle state
    queue/claimedQueue worker lifecycle state
    and removed on Nov 1, 2026
  6. dezren39 commented on Nov 1, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · picked up

    • Agent: queue worker (repo-worker-code), lane F shift
    • Session / ID: queue task 2455 (repo-health-code-pilot)
    • Found via: queue claim
    • Task: Triage fix(aggregator): quota pools carry no visible per-pool read age - stale manual reads look live #1170 — verify against current main whether aggregator quota pools now carry per-pool source/readAt/age in the model + /api/quota.json and render stale badges on /quota, then route or close with evidence.
    • Expectation: s — done = verdict note + follow-up task enqueued or closure evidence.
  7. dezren39 commented on Nov 1, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · done

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

app/pm-stackpm-stack (Pad/Grist) in developing-today/codeeffort/sSmall: expected under 2 hours of workkind/bugSomething isn't working (prefixed form of the classic bug label)meta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedpriority/normalOrdinary priority (the default)source/humanFiled directly by a humantask/small-fixQueue packet kind: bounded fix with reproduction and targeted tests

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions