Skip to content

Keep package-source reconciliation within the repository API budget - #84

Merged
IanHollow merged 9 commits into
mainfrom
codex/ci-source-api-budget-a299b8c3
Oct 13, 2026
Merged

IanHollow merged 9 commits into
mainfrom
codex/ci-source-api-budget-a299b8c3

Conversation

@IanHollow

Copy link
Copy Markdown
Member

Summary

Package-source notifications currently repeat immutable metadata and status reads. A six-package notification phase exceeds the repository token's standard REST quota before queue validation.

validate actual producer and attempt
  read fresh source PR/ref/status snapshot
  inspect all source heads on completion
  defer healthy partial producers
  validate current native runs, jobs and source contract
  publish results with fresh batch leases and paced writes
  admit only current successful heads

Complete callbacks recover other ready source heads when concurrency replaces an older pending callback. Existing queue completion callbacks retain their dispatch payload. Notification dispatch now uses one REST request. Callers with package-source reconciliation must allow 15 minutes for a paced six-head sweep.

Evidence

  • Before, the measured six-source notification phase used 1,128 REST requests before 60 notification dispatches.
  • After, the same actual-main fixture uses 372 REST requests including those dispatches. The complete six-source and six-merge queue fixture uses 831 requests, or 930 with the separate 99-request source-inspection allowance. This automation-layer model excludes updater publication and native validation tools' API calls, plus bounded waits/retries. Six native candidates run serially; these calls need not share one hour. The current single-package update remains the production proof.
  • All 192 Python tests pass, including actual callback Bash, immutable producer validation, rerun invalidation, real failed-job links, missing and running producers, malformed/truncated projections, fork PR exclusion and write pacing.
  • Live read-only GraphQL smoke validates six distinct real source heads. The readiness query costs one GraphQL point. The authoritative required-check policy command remains in place.
  • Required hosted Nix, workflow/security validation and normal merge-queue checks are still pending.

Merge danger

Door: two-way. Consumers can restore the previous reviewed release pin.

Blast radius: shared. New result publication and admission retain the actual 16-job source contract, immutable workflow comparison, current producer attempt, source head and protected-default-branch ancestry. Release-builder and repository-checks pins remain independent.

Signed-off-by: IanHollow <72767437+IanHollow@users.noreply.github.com>
Signed-off-by: IanHollow <72767437+IanHollow@users.noreply.github.com>
Signed-off-by: IanHollow <72767437+IanHollow@users.noreply.github.com>
Signed-off-by: IanHollow <72767437+IanHollow@users.noreply.github.com>
Signed-off-by: IanHollow <72767437+IanHollow@users.noreply.github.com>
Signed-off-by: IanHollow <72767437+IanHollow@users.noreply.github.com>
Signed-off-by: IanHollow <72767437+IanHollow@users.noreply.github.com>
Signed-off-by: IanHollow <72767437+IanHollow@users.noreply.github.com>
Signed-off-by: IanHollow <72767437+IanHollow@users.noreply.github.com>
@IanHollow
IanHollow added this pull request to the merge queue Oct 13, 2026
Merged via the queue into main with commit 1a6dfe0 Oct 13, 2026
8 checks passed
@IanHollow
IanHollow deleted the codex/ci-source-api-budget-a299b8c3 branch October 13, 2026 05:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant