Skip to content

collect-fleet-feed poolFor still maps openai providers to retired pool id 'openai', losing burn attribution on the openai.main card (PR #5089 Codex finding) #5252

Open

Description

@dezren39

Finding (from PR review)

Codex (chatgpt-codex-connector[bot]) raised this P2 finding on merged PR #5089 and it was never fixed or replied to:

  • PR: feat(aggregator): rename the main ChatGPT pool openai -> openai.main #5089 — "feat(aggregator): rename the main ChatGPT pool openai -> openai.main"
  • Comment: feat(aggregator): rename the main ChatGPT pool openai -> openai.main #5089 (comment) (2026-11-03T19:28:30Z, on pm-stack/aggregator/src/quota-extract.ts:505)
  • Essence: "When the scraped OpenCode server has active sessions using openai, openai-codex, or chatgpt, this rename silently removes them from the main ChatGPT quota card. In pm-stack/aggregator/scripts/collect-fleet-feed.ts, poolFor still returns \"openai\" for these providers (lines 189-192), while the collector attaches activeSessions only when that result exactly matches pool.id (line 639). Update the burn mapper alongside this rename so previously attributed sessions continue to appear under openai.main."

No-response evidence

  • The inline thread contains only the Codex comment; no reply followed it before the PR merged.
  • No follow-up commit on main changes poolFor.

Still live on current main (verified 2026-11-04 by gh api raw read)

pm-stack/aggregator/scripts/collect-fleet-feed.ts:

  • Lines 191-194: case "openai": case "openai-codex": case "chatgpt": return "openai";
  • Line 641: if (poolFor(provider, s.model) === pool.id) sessions.push(s);
    pm-stack/aggregator/src/quota-extract.ts:505 defines the pool as id: "openai.main" — there is no pool with id openai, so sessions on those providers never match and never appear in activeSessions (burn attribution) on the main ChatGPT card.

Acceptance criteria

  • poolFor maps the main-account providers (openai, openai-codex, chatgpt, and openai.main itself if it appears as a provider id) to openai.main, so active sessions are again attached to the main ChatGPT pool card.
  • A test or documented check covers the provider -> pool mapping for the renamed pool.
  • Or: the finding is resolved on this issue by a documented decision with reasoning recorded.

Activity

  1. added
    kind/bugSomething isn't working (prefixed form of the classic bug label)
    task/triageQueue packet kind: verify, reproduce, and route this item
    priority/normalOrdinary priority (the default)
    queue/queuedHas a queued task in the Supabase agent queue
    app/aggregatorPackage/app: aggregator (pm-stack in this repo)
    on Nov 4, 2026
  2. dezren39 commented on Nov 4, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · filed

  3. dezren39 commented on Nov 4, 2026

    @dezren39
    MemberAuthor

    agent-note:v1
    task: 9085
    lane: code-l
    stage: picked_up
    next: re-verify the poolFor/openai.main finding against current main with fresh reads, record the verdict here, and route the fix packet if confirmed.

  4. added
    work/assignedQueue worker lifecycle state
    queue/claimedQueue worker lifecycle state
    and removed
    queue/queuedHas a queued task in the Supabase agent queue
    on Nov 4, 2026
  5. dezren39 commented on Nov 4, 2026

    @dezren39
    MemberAuthor

    agent-note:v1
    task: 9085
    lane: code-l
    stage: done
    outcome: triaged — finding CONFIRMED live on current main; fix routed as task 9091

    Re-verification 2026-11-04T02:52Z (fresh gh api raw reads at ref=main):

    • pm-stack/aggregator/scripts/collect-fleet-feed.ts:191-194 — case "openai": case "openai-codex": case "chatgpt": return "openai";
    • pm-stack/aggregator/scripts/collect-fleet-feed.ts:641 — if (poolFor(provider, s.model) === pool.id) sessions.push(s); (exact match only)
    • pm-stack/aggregator/src/quota-extract.ts:505 — pool defined as id: "openai.main"; a grep confirms NO pool with id exactly "openai" exists in quota-extract.ts.

    Verdict: the Codex P2 from PR #5089 is real and still live — sessions on the main ChatGPT account (providers openai/openai-codex/chatgpt) never match the openai.main pool, so their burn attribution silently vanished from the openai.main card at the rename.

    Routing: fix enqueued as task 9091 (small_fix, dedupe key repo-health:v1:fix:developing-today/code:issue:5252): poolFor returns "openai.main" for the three providers, plus a guard so a future rename cannot silently orphan a mapping. Per pr-comment-review rules, the PR #5089 thread was NOT replied to; all discussion stays here.

  6. added
    queue/queuedHas a queued task in the Supabase agent queue
    and removed
    queue/claimedQueue worker lifecycle state
    work/assignedQueue worker lifecycle state
    on Nov 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    app/aggregatorPackage/app: aggregator (pm-stack in this repo)kind/bugSomething isn't working (prefixed form of the classic bug label)priority/normalOrdinary priority (the default)queue/queuedHas a queued task in the Supabase agent queuesource/pr-comment-reviewFiled by the pr-comment-review jobtask/triageQueue packet kind: verify, reproduce, and route this item

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions