Skip to content

[Bug] Admission sweep: shared history deadline starves later PRs #140

Closed

Description

@Dong1017

Status: verified complete within the bounded-scanning scope (2026-10-26). See the acceptance evidence and before/after diagram. Separate HTTP422/status-publication failures are not claimed resolved.

Problem

The admission sweep can repeatedly fail older PRs with “Status history could not be read”, even when those PRs have not changed. The shared deadline expires while earlier PRs are evaluated; whole-sweep retries repeat the same ordering.

Related: #50. This is a new bounded-scanning defect following #98, not a reason to reopen the completed lifecycle/reporting scope of #81.

Observed evidence

Inspected main: 65147a03e465dc838770474736a620e04d72337e. The scanner is unchanged from the failed runs' policy revision 7218d48657a84f02cd2a60d1fdbbc794cfa6d49f.

Observation Evidence
Three attempts: 11 compliant PRs and the same 7 history-unavailable results Run 40103754221 / job log
Affected targets: #113, #97, #92, #90, #55, #51, #31 Same run; no noncompliant result in this run
#136 remained compliant on all attempts Exact head f8f32f9ec51385ed137bc5c70b281b5ad0d397df; errors=[], rerun=false
Earlier run also exhausted history budget Run 40101746231; it additionally contained a separate #113 noncompliance

Both runs preceded #136's merge. Its per-PR success does not mean the repository-wide sweep succeeded. These findings come from source and CI-log inspection, not newly executed tests.

Failure path

flowchart LR
    A["Start shared clock"] --> B["Evaluate earlier PRs"]
    B --> C["History budget exhausted"]
    C --> D["Later PRs fail closed"]
    D --> E["Restart whole sweep"]
    E --> A
Loading

Smallest correction

Give each target a bounded opportunity to read complete history, while retaining an overall execution deadline and publication reserve. Retries should advance unfinished work rather than repeatedly consuming the budget on the same prefix. Choose the smallest change to the existing scanner/runner; no new service or admission framework.

Preserve: fail-closed incomplete reads, status-capacity safeguards, shared-head checks, lifecycle revalidation and the separate per-PR policy verdict.

Do not: ignore read failures, fabricate green statuses, rewrite affected PR heads, remove all bounds, or treat a larger timeout alone as a scaling fix. No model/effort policy change.

Acceptance

  • Deterministic multi-PR regression consumes more than the former effective window in ordinary evaluation; later targets receive a bounded evaluation opportunity instead of starving across retries.
  • Genuine history/API failures remain visible and fail closed without preventing unrelated targets from making progress.
  • Overall timeout, request/page bounds and publication reserve remain explicit; retry progress is safe under PR/head/base changes.
  • Existing invalidation, status-capacity and lifecycle tests pass; exact-head CI and independent review recorded.
  • Existing-PR operational evidence distinguishes sweep execution from individual admission verdicts, with remaining limitations stated.
  • Closeout includes a concise before/after flow or code-delta diagram.

No extra synthetic noncompliant PR, paid/model experiment, branch-protection change or #50 acceptance is required or granted by this issue.

Activity

  1. added
    area:knowledgeKnowledge line: packs, skill library, knowledge admission
    kind:taskBounded delivery task with a delegated slice
    on Oct 25, 2026
  2. Dong1017 commented on Oct 26, 2026

    @Dong1017
    CollaboratorAuthor

    Verified closeout — 2026-10-26

    The bounded starvation fix in #146 is merged as 6c426e8da46c729cec1d1ada27a1e530049c7a79, from reviewed head 5ac8b933133913ba2ea35d313a83e572340e0867. The owner authorized completing this issue after evidence verification. All six original criteria are met within the bounded-scanning scope.

    • Deterministic progress: tests L1270–1393 cover fair shares, slow-target isolation, 18 targets consuming 72 seconds beyond the former effective window, and two-attempt completion without rewriting settled heads.
    • Fail closed: failure regressions L1180–1315 preserve incomplete-history failures, failed-write handling and unrelated-target progress.
    • Bounds/carry: 50-page bound, bounded requests, 120-second sweep allocation, 30-second target ceiling, 15-second publication reserve; three attempts under a 10-minute job timeout. This is not a claim of a strict 120-second wall-clock cap on all network/publication work. Premise/carry tests L1396–1529 cover changed declarations, revoked approval, shared heads, reassessment, unreadable evidence and trusted-base changes.
    • CI/review: Ready CI passed all four jobs; exact-head policy status succeeded; independent scoped LGTM cleared both prior P2 findings.

    Operational evidence

    The immediate trusted-main runs used policy 6c426e8…:

    Both final summaries had 20 compliant, #51/#90/#113 noncompliant, and #55 invalidation HTTP422; aggregate execution remained unfinished. Initial attempts are not misrepresented as all-green.

    Later #153 attempt 2, policy bcc37c55… after #154, again had zero history-unavailable. Its global summary retained 11 compliant, #90/#113 noncompliant and #51/#55 invalidation HTTP422. Its successful job was explicitly trigger-PR scoped to #153, not global-sweep success. #154 is related reporting context, not an added acceptance requirement here.

    flowchart LR
      subgraph Before
        A["Shared history window"] --> B["Earlier PRs consume budget"]
        B --> C["Later targets fail closed"]
        C --> D["Retry repeats the prefix"]
        D --> B
      end
      subgraph After
        E["Bounded opportunity per target"] --> F["Retain settled verdict and premises"]
        F --> G["Retry revalidates premises"]
        G --> H["Evaluate unfinished or changed targets"]
        H --> I["Publish verdicts; retain genuine failures"]
      end
    
    Loading

    Limits: This resolves the shared-history-deadline starvation defect only. HTTP422 failures, noncompliant declarations, #50 operational follow-up and campaign acceptance remain distinct. No new synthetic PR, model/hardware experiment, workflow rerun or settings change was needed for this verification. Source, test assertions, independent review, CI and existing operational logs were checked; no universal all-green claim is made.

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

    area:knowledgeKnowledge line: packs, skill library, knowledge admissionkind:taskBounded delivery task with a delegated slice

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions