You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Seat containers need a REST-capable GitHub credential — the maintainer environment action deferred from the channel-matrix card, refreshed with the dual-pool argument #12728
Filed by the Director seat (session session_01MnijPVVDakqK2J335JoJtq) on maintainer instruction, 2026-08-27, verbatim: 「挂回」 — accepting the recommendation to put this on the maintainer-action ledger. This is item 3 of #12123 (closed: its protocol-text half landed via PR #12440; the credential half was explicitly 「an environment/config question for the maintainer, not something any lane can change from inside the repo」), re-carried as its own awaiting item with today's refreshed evidence.
The manual action awaited
Provision a REST-capable GitHub credential to seat/dev containers (environment config — outside GitHub's API surface for agent seats). Options, cheapest first:
Fine-grained PAT (or the existing App installation token) exposed to containers as a real GITHUB_TOKEN — today it is a 14-char placeholder and direct api.github.com calls get the session-gate 403 (measured 2026-08-25, re-measured 2026-08-27 this session).
GitHub App installation token route — org installations scale to higher hourly limits (up to 12,500/hr) and can be scoped read-only to the allowed repos.
(Structural, larger) per-seat bot identities to multiply pools — only if 1/2 prove insufficient.
Why (refreshed 2026-08-27)
Dual-pool relief: GraphQL and REST are separate 5,000 pts/hr pools on the same identity. The whole fleet shares one identity and routes list/search through the MCP server's GraphQL; the REST pool sits idle while GraphQL exhausts — measured again today (04:33Z fleet-wide exhaustion, all seats read-blocked ~30 min; 2026-08-25 R6 wave: 10,416/5,000 used at 08:32Z, mid-flight devs unable to run mandatory dedupe). Label-list reads are exactly the cheap-on-REST shape (1 pt/page).
Zero-quota probes restored: with a live token, GET /rate_limit (zero-cost) works again from containers, so seats can read exact reset/remaining instead of blind-waiting (the platform-readings quota rows assume this instrument).
Mitigations already in place and insufficient alone: public-payload channel reads, local-git derivation, fields/perPage narrowing — they relieve but cannot serve authenticated list/write paths.
Exit
pm:awaiting-maintainer per the ledger discipline: this closes when the credential is provisioned and one container measurement confirms an authenticated REST read succeeds (the verifying seat removes the label + evidence comment in the same stroke). Decision on WHICH option is yours; option 1 needs no further design.
Refs: #12123 (the measurements and the deferral) · PR #12440 (the protocol-text half that already landed)
Closed on maintainer instruction — director seat, session session_01ShyhexkB2d1AeRZ85tgAAe, 2026-09-02.
Provenance (who / verbatim / where): maintainer, live PM chat with the director seat (summon #8, 「处理决裁」), 2026-09-02, verbatim: 「12728 关闭」. No credential is being provisioned; the awaited manual action is withdrawn, so the card leaves the pm:awaiting-maintainer ledger in the same stroke (label off + close, not planned).
What stays in force without this card: the routing remedy the triage seat recorded above (comment 5484503195) — a seat whose search channel is 403 files with "⛔ Not searched — channel 403" and triage runs the dedupe at grading time — is unaffected by this close and remains the working fallback. The six outage specimens on this thread stay as the measured record; reopen is free if the maintainer later decides to provision a token.
Activity
os-warren commentedon Aug 31, 2026
中央分诊 · 不打
domain:*,按设计 · 并补一批今天的新证据为什么不打车道:本卡等的是一次环境/配置动作(给席位容器发一个可用的 REST 凭据),落点在仓外,不属于任何
domain:*。与qa-run、座位贴同属记录/动作类。写在这里,是因为它会持续出现在「无车道」的扫描视野里 —— 它不是漏标。pm:awaiting-maintainer是正确且唯一需要的状态。⭐ 本轮为它攒到的新证据:它正在制造一整类「NOT MEASURED」
本卡的论据是配额与 403。今天(2026-08-31)分诊席跑完整个 finding 箱(46 张)时,在四张互不相关的卡上读到同一个根因的下游后果:
gh;它正确地拒绝在一次未经验证的空搜索上立卡,把观察连同理由一起交出。查重记为 NOT MEASUREDGET /search/issues从该席位返回 403(「sessions are bound to their configured repositories」)⇒ 不采信它的任何零,改走仓内 list 端点 + 本地 grepsearch_issues在本仓返回假零,已被当场用正对照证明⇒ 本卡未落地的后果,不是「席位跑得慢一点」,而是仓里正在积累一批标着 NOT MEASURED 的查重。 每一张这样的卡都带着一个已声明的盲区,而盲区的成因是同一个:只有 GraphQL 一个池,REST 池闲置。
⭐ 这恰好就是本卡「双池纾解」论据的现场验证 —— 卡片写的是 2026-08-25 与 08-27 的测量;上面四条是六天后仍在发生,而且是在不同席位、不同任务上各自独立撞到的。
退出条件不变
凭据发放 + 一次容器内测量确认认证 REST 读成功(验证方在同一笔摘标签 + 留证据评论)。选哪个方案是你的事;方案 1 不需要任何额外设计。
⛔ 分诊不催,本条只是把六天里新增的证据挂到卡上,免得它只活在那四张卡各自的评论里。
Generated by Claude Code
os-project-manager commentedon Sep 2, 2026
Closed on maintainer instruction — director seat, session
session_01ShyhexkB2d1AeRZ85tgAAe, 2026-09-02.Provenance (who / verbatim / where): maintainer, live PM chat with the director seat (summon #8, 「处理决裁」), 2026-09-02, verbatim: 「12728 关闭」. No credential is being provisioned; the awaited manual action is withdrawn, so the card leaves the
pm:awaiting-maintainerledger in the same stroke (label off + close, not planned).What stays in force without this card: the routing remedy the triage seat recorded above (comment 5484503195) — a seat whose search channel is 403 files with "⛔ Not searched — channel 403" and triage runs the dedupe at grading time — is unaffected by this close and remains the working fallback. The six outage specimens on this thread stay as the measured record; reopen is free if the maintainer later decides to provision a token.
Generated by Claude Code