feat: add bounded PR detail fill command#89
Conversation
|
Codex review: needs maintainer review before merge. Reviewed July 15, 2026, 6:57 PM ET / 22:57 UTC. Summary Reproducibility: not applicable. as a bug reproduction. The PR instead provides high-confidence live GitHub output and focused regression coverage demonstrating the proposed reserve boundary and persistence behavior. Review metrics: 3 noteworthy metrics.
Root-cause cluster Members:
Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything. Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Risk before merge
Maintainer options:
Next step before merge
Maintainer decision needed
Security Review detailsBest possible solution: Adopt the dedicated command only if maintainers want this as supported core surface, retaining strict per-request enforcement, explicit per-invocation scope, safe resumability, and unchanged default sync behavior. Do we have a high-confidence way to reproduce the issue? Not applicable as a bug reproduction. The PR instead provides high-confidence live GitHub output and focused regression coverage demonstrating the proposed reserve boundary and persistence behavior. Is this the best way to solve the issue? Yes technically: request-level reservation inside a dedicated bounded command is narrower and more reliable than the earlier batch-level enforcement. Product acceptance remains a maintainer decision because this introduces new permanent CLI and quota semantics. AGENTS.md: unclear because the file could not be read completely. Codex review notes: model internal, reasoning high; reviewed against b38e3152b871. Label changesLabel changes:
Label justifications:
Evidence reviewedWhat I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
Review history (4 earlier review cycles)
|
|
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. |
|
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. |
b1ee4a2 to
0e54d93
Compare
|
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
Co-authored-by: Andy Ye <35905412+TurboTheTurtle@users.noreply.github.com>
|
Maintainer repair proof for
|
Closes #83.
What Problem This Solves
Adds a bounded
fill-pr-detailsworkflow for hydrating missing pull-request detail rows without allowing one started batch to consume through an operator's configured GitHub rate-limit reserve.Why This Change Was Made
The command selects missing rows in ordered batches, bootstraps the relevant core and GraphQL quotas, and reserves quota before each request dispatched by that fill invocation. Reserve-enabled runs fail closed on redirects and stop cleanly at the threshold; ordinary sync behavior is unchanged.
The guarantee covers requests issued by this command invocation. Other tools or invocations sharing the same token remain outside its accounting.
User Impact
Operators can backfill missing PR details with bounded selection, progress output, and a strict per-invocation quota reserve. If a batch reaches the reserve, the command stops before the next request and does not persist partial PR-detail state.
Evidence
A reserve-crossing regression starts at
reserve + 1, permits one repository request, blocks the next request at the configured reserve, reportsrate-limit-reserve, and confirms no PR-detail row was partially persisted.Live Boundary Proof
This ran from published head
0e54d93against GitHub.com using an isolated archive containing PR #89 with no detail rows. An immediately preceding authenticated GitHub response header selected the reserve, with no intervening API calls./rate_limitis zero-cost; the repository GET is the single permitted core request.Post-run archive state confirms no partial PR-detail persistence: