Repository navigation
Raise the Linux validate job timeout from 40 to 60 minutes while the suite stays serial - #653
Conversation
…suite stays serial The job took 1727 to 1745 s in three production runs (limit 2400 s) and the serial arm of the 2026-10-03 hosted trial took 1186 to 1688 s for the unittest step alone. The suite grew about fourfold in a week, and the parallel runner trialled to shorten it (unittest-parallel 1.8.6) could not run the suite, so the job stays serial for now. The limit remains a hang guard, not a test-time budget. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…file protocol) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
ACCEPT — source scope, exact #653 head The literal workflow delta is five rationale comment lines and Independent original Jobs-API observations support the cited production durations: 37088360538/job1111031802731745s/head8ad5378b160f62d253877b82c3e523d4206a9931; 37086567708/job1110980091841745s/head0e30c3fe3fcdf774f4d0301408b827633fd1ad7a; 37085570699/job1110950293851727s/headfd111e59a7480c7910907e5cdc9a32a9e42ec42e. The retained trial's three serial step11 durations are1688/1659/1186s at full head The rationale's pickling mechanism has a primary source: unittest-parallel Root verified the actual decoded Git payloads: candidate workflow blob Nine new native GH reads exited0, full JSON originals retained; two additional pinned-source/trial captures were reused and independently verified. The first trial reader expected a JSON object, then a flat list; the actual paginated list of page objects was inspected and recovered. Both processing errors remain retained. Required native CI for this candidate remains a separate gate; no root tests, workflow restart, package adoption, installed-state or model measurement occurred. Integrate against actual current main while preserving all foreign evidence. |
…col) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ecision and log the tripwire scope miss This commit answers the round-9 review and the Codex review at 9faa5c4. Backstop: once the frozen exception lapses, the required osv-scanner job fails in its unittest preflight (FrozenScanTests) before OSV-Scanner runs, and validate's full suite fails IgnorePolicyTests, both through ignore_entry_problems. A renewal that also edits REVIEW_DATE passes, and the receipt now says so. Precedent: the dismissal of alerts 7-15 that this record cites was superseded on 2026-09-25 by renaming the fixture (#224). The authorization, reasoning.precedent and indirect_routes now say so. Convergence decision: indirect_routes records the same day's convergence round. It ran Claude and GPT-6 research, two GPT-6 Astra and two Claude Opus votes, and took the GitHub/CI lane session's input. It chose to rename both frozen variant files to .frozen and stop scanning them in a follow-up pull request. The dismissal and the tripwire stand until then. The overturn and the closure note carry the new conditions. Other fixes: - The two counts now record their exact git grep commands. - The statement that the guard does not read the .txt control modules names the recogniser's conditions. - docs/harness-defaults.md gains a row for scoping a tripwire by expected file kinds, proven by controls N1, N4-N6, N7 and X13. - The branch is rebased onto main 59f8a1e (#653). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…utation runs in manifests/evidence.json Hot-file protocol (docs/lanes.md): this is the branch's last commit, on main 59f8a1e (#653), and takes main's manifests/evidence.json. It re-registers the closure record, the receipt and docs/harness-defaults.md, and the 71 files under evidence/artifacts/frozen-variant-guard-mutations-20261003/. component_matrix --write and new_host_grand_list --write changed nothing else. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…utation runs in manifests/evidence.json Hot-file protocol (docs/lanes.md): this is the branch's last commit, on main 59f8a1e (#653), and takes main's manifests/evidence.json. It re-registers the closure record, the receipt and docs/harness-defaults.md, and the 71 files under evidence/artifacts/frozen-variant-guard-mutations-20261003/. component_matrix --write and new_host_grand_list --write changed nothing else. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ecision and log the tripwire scope miss This commit answers the round-9 review and the Codex review at 9faa5c4. Backstop: once the frozen exception lapses, the required osv-scanner job fails in its unittest preflight (FrozenScanTests) before OSV-Scanner runs, and validate's full suite fails IgnorePolicyTests, both through ignore_entry_problems. A renewal that also edits REVIEW_DATE passes, and the receipt now says so. Precedent: the dismissal of alerts 7-15 that this record cites was superseded on 2026-09-25 by renaming the fixture (#224). The authorization, reasoning.precedent and indirect_routes now say so. Convergence decision: indirect_routes records the same day's convergence round. It ran Claude and GPT-6 research, two GPT-6 Astra and two Claude Opus votes, and took the GitHub/CI lane session's input. It chose to rename both frozen variant files to .frozen and stop scanning them in a follow-up pull request. The dismissal and the tripwire stand until then. The overturn and the closure note carry the new conditions. Other fixes: - The two counts now record their exact git grep commands. - The statement that the guard does not read the .txt control modules names the recogniser's conditions. - docs/harness-defaults.md gains a row for scoping a tripwire by expected file kinds, proven by controls N1, N4-N6, N7 and X13. - The branch is rebased onto main 59f8a1e (#653). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ecision and log the tripwire scope miss This commit answers the round-9 review and the Codex review at 9faa5c4. Backstop: once the frozen exception lapses, the required osv-scanner job fails in its unittest preflight (FrozenScanTests) before OSV-Scanner runs, and validate's full suite fails IgnorePolicyTests, both through ignore_entry_problems. A renewal that also edits REVIEW_DATE passes, and the receipt now says so. Precedent: the dismissal of alerts 7-15 that this record cites was superseded on 2026-09-25 by renaming the fixture (#224). The authorization, reasoning.precedent and indirect_routes now say so. Convergence decision: indirect_routes records the same day's convergence round. It ran Claude and GPT-6 research, two GPT-6 Astra and two Claude Opus votes, and took the GitHub/CI lane session's input. It chose to rename both frozen variant files to .frozen and stop scanning them in a follow-up pull request. The dismissal and the tripwire stand until then. The overturn and the closure note carry the new conditions. Other fixes: - The two counts now record their exact git grep commands. - The statement that the guard does not read the .txt control modules names the recogniser's conditions. - docs/harness-defaults.md gains a row for scoping a tripwire by expected file kinds, proven by controls N1, N4-N6, N7 and X13. - The branch is rebased onto main 59f8a1e (#653). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ecision and log the tripwire scope miss This commit answers the round-9 review and the Codex review at 9faa5c4. Backstop: once the frozen exception lapses, the required osv-scanner job fails in its unittest preflight (FrozenScanTests) before OSV-Scanner runs, and validate's full suite fails IgnorePolicyTests, both through ignore_entry_problems. A renewal that also edits REVIEW_DATE passes, and the receipt now says so. Precedent: the dismissal of alerts 7-15 that this record cites was superseded on 2026-09-25 by renaming the fixture (#224). The authorization, reasoning.precedent and indirect_routes now say so. Convergence decision: indirect_routes records the same day's convergence round. It ran Claude and GPT-6 research, two GPT-6 Astra and two Claude Opus votes, and took the GitHub/CI lane session's input. It chose to rename both frozen variant files to .frozen and stop scanning them in a follow-up pull request. The dismissal and the tripwire stand until then. The overturn and the closure note carry the new conditions. Other fixes: - The two counts now record their exact git grep commands. - The statement that the guard does not read the .txt control modules names the recogniser's conditions. - docs/harness-defaults.md gains a row for scoping a tripwire by expected file kinds, proven by controls N1, N4-N6, N7 and X13. - The branch is rebased onto main 59f8a1e (#653). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ecision and log the tripwire scope miss This commit answers the round-9 review and the Codex review at 9faa5c4. Backstop: once the frozen exception lapses, the required osv-scanner job fails in its unittest preflight (FrozenScanTests) before OSV-Scanner runs, and validate's full suite fails IgnorePolicyTests, both through ignore_entry_problems. A renewal that also edits REVIEW_DATE passes, and the receipt now says so. Precedent: the dismissal of alerts 7-15 that this record cites was superseded on 2026-09-25 by renaming the fixture (#224). The authorization, reasoning.precedent and indirect_routes now say so. Convergence decision: indirect_routes records the same day's convergence round. It ran Claude and GPT-6 research, two GPT-6 Astra and two Claude Opus votes, and took the GitHub/CI lane session's input. It chose to rename both frozen variant files to .frozen and stop scanning them in a follow-up pull request. The dismissal and the tripwire stand until then. The overturn and the closure note carry the new conditions. Other fixes: - The two counts now record their exact git grep commands. - The statement that the guard does not read the .txt control modules names the recogniser's conditions. - docs/harness-defaults.md gains a row for scoping a tripwire by expected file kinds, proven by controls N1, N4-N6, N7 and X13. - The branch is rebased onto main 59f8a1e (#653). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ecision and log the tripwire scope miss This commit answers the round-9 review and the Codex review at 9faa5c4. Backstop: once the frozen exception lapses, the required osv-scanner job fails in its unittest preflight (FrozenScanTests) before OSV-Scanner runs, and validate's full suite fails IgnorePolicyTests, both through ignore_entry_problems. A renewal that also edits REVIEW_DATE passes, and the receipt now says so. Precedent: the dismissal of alerts 7-15 that this record cites was superseded on 2026-09-25 by renaming the fixture (#224). The authorization, reasoning.precedent and indirect_routes now say so. Convergence decision: indirect_routes records the same day's convergence round. It ran Claude and GPT-6 research, two GPT-6 Astra and two Claude Opus votes, and took the GitHub/CI lane session's input. It chose to rename both frozen variant files to .frozen and stop scanning them in a follow-up pull request. The dismissal and the tripwire stand until then. The overturn and the closure note carry the new conditions. Other fixes: - The two counts now record their exact git grep commands. - The statement that the guard does not read the .txt control modules names the recogniser's conditions. - docs/harness-defaults.md gains a row for scoping a tripwire by expected file kinds, proven by controls N1, N4-N6, N7 and X13. - The branch is rebased onto main 59f8a1e (#653). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ecision and log the tripwire scope miss This commit answers the round-9 review and the Codex review at 9faa5c4. Backstop: once the frozen exception lapses, the required osv-scanner job fails in its unittest preflight (FrozenScanTests) before OSV-Scanner runs, and validate's full suite fails IgnorePolicyTests, both through ignore_entry_problems. A renewal that also edits REVIEW_DATE passes, and the receipt now says so. Precedent: the dismissal of alerts 7-15 that this record cites was superseded on 2026-09-25 by renaming the fixture (#224). The authorization, reasoning.precedent and indirect_routes now say so. Convergence decision: indirect_routes records the same day's convergence round. It ran Claude and GPT-6 research, two GPT-6 Astra and two Claude Opus votes, and took the GitHub/CI lane session's input. It chose to rename both frozen variant files to .frozen and stop scanning them in a follow-up pull request. The dismissal and the tripwire stand until then. The overturn and the closure note carry the new conditions. Other fixes: - The two counts now record their exact git grep commands. - The statement that the guard does not read the .txt control modules names the recogniser's conditions. - docs/harness-defaults.md gains a row for scoping a tripwire by expected file kinds, proven by controls N1, N4-N6, N7 and X13. - The branch is rebased onto main 59f8a1e (#653). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ant) (#635) * Record and guard the Dependabot alert 16 dismissal on the frozen macOS variant The closure record notes the dismissal of Dependabot alert 16 (GHSA-vcvr-r3jv-pc5j) as not_used on the frozen macOS variant's package.json, with its API readback receipt, evidence/receipts/dependabot-alert-16-dismissal-20261003.json. tests/test_frozen_macos_variant_no_use.py, a tripwire in the required validate job, fails when: - a scanned file names the frozen artifact directory beyond its pinned lines; - the directory gains a file; - the lock or its next pin changes; - the frozen OSV exception's date or keys change. The guard's mutation driver is kept under evidence/artifacts/frozen-variant-guard-mutations-20261003/. The anti-pattern log gains two 2026-10-03 rows. This commit replaces the branch's earlier content commits (review rounds 1-7), rebuilt on main 4ced292, so that no commit on the branch quotes a user message. Its tree equals round 7's first content commit 8f547913, apart from main's changes since 9b0b8d6. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * Retain the guard's mutation runs and disclose the retained driver's assembled name The mutation driver's returned results are kept under evidence/artifacts/frozen-variant-guard-mutations-20261003/: - round 8's final run: all 45 rows against the content commit a447a51, every row as expected; - round 7's three runs of the new rows against the round-3, round-4 and round-5 modules. Each gap row passes there, so each of these runs exits 1 by design. runs.json gives the argument vectors, times, exit codes, clone heads and hashes. Clone roots, the output directory and the Python prefix are replaced with placeholders. The receipt's table equals the retained output (45 rows, 0 mismatches) and binds the driver and runs.json by sha256. Its limitations now say: - the retained driver assembles the artifact name from fragments, a stated blind spot of the guard, and installs, builds or serves nothing; - configuration names inside an excluded class that differ only in letter case are not read. The closure note says "ASCII letter case", since the module folds ASCII letters only. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * Keep the control runs' modules, rebuild the controls on main and record the indirect-route decision This commit answers the Codex review at 06c90df. Control runs: - The three earlier modules the control runs used are kept byte for byte, as .txt files, under evidence/artifacts/frozen-variant-guard-mutations-20261003/controls/. The guard does not read .txt files under evidence/**, and the receipt says so. - The control runs were re-run on main's d2777ee with each kept module committed in a scratch clone, so anyone can rebuild them from the repository. Their outcomes, failing tests and messages equal round 7's runs, which they replace. runs.json records each control's base commit and module file. Indirect routes: the receipt gains indirect_routes, a dated decision. The dismissal stands, and the indirect routes stay stated limits. The record names: - the alternatives declined: pinning the 43 lines that read the inventory, pinning the 297 package-manager lines, resolving each command's target, reopening the alert, and keeping the frozen manifest under names that tools don't parse; - the precedent; - the dated backstop of the OSV exception: it lapses on 2026-12-24, can be renewed at most 90 days ahead, and each renewal fails the review-date test. The closure note points to the decision. Round 8 review fixes: - runs.json defines <repo> without tying it to the final run's clone head. - runs.json describes the commits after the content commit accurately. - The receipt states X15's correction as a deduction from the module. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * Correct the alert-16 backstop and precedent, record the convergence decision and log the tripwire scope miss This commit answers the round-9 review and the Codex review at 9faa5c4. Backstop: once the frozen exception lapses, the required osv-scanner job fails in its unittest preflight (FrozenScanTests) before OSV-Scanner runs, and validate's full suite fails IgnorePolicyTests, both through ignore_entry_problems. A renewal that also edits REVIEW_DATE passes, and the receipt now says so. Precedent: the dismissal of alerts 7-15 that this record cites was superseded on 2026-09-25 by renaming the fixture (#224). The authorization, reasoning.precedent and indirect_routes now say so. Convergence decision: indirect_routes records the same day's convergence round. It ran Claude and GPT-6 research, two GPT-6 Astra and two Claude Opus votes, and took the GitHub/CI lane session's input. It chose to rename both frozen variant files to .frozen and stop scanning them in a follow-up pull request. The dismissal and the tripwire stand until then. The overturn and the closure note carry the new conditions. Other fixes: - The two counts now record their exact git grep commands. - The statement that the guard does not read the .txt control modules names the recogniser's conditions. - docs/harness-defaults.md gains a row for scoping a tripwire by expected file kinds, proven by controls N1, N4-N6, N7 and X13. - The branch is rebased onto main 59f8a1e (#653). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * Qualify the tripwire-scope anti-pattern row to the guard's actual reach The Codex review at 47da9f8 found that the new row's rule said the guard reads JSON launch configurations inside the record classes. The guard deliberately leaves `evidence/**/launch.json` unread: it is stated limit L5, and its control passes. The rule now scans every file outside the record classes, reads each recognised runnable or configuring kind inside them, and names every kind left unread as a stated limit with a passing control. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * Register the alert-16 receipt, the changed records and the retained mutation runs in manifests/evidence.json Hot-file protocol (docs/lanes.md): this is the branch's last commit, on main e0c329a (#677), and takes main's manifests/evidence.json. It re-registers the closure record, the receipt and docs/harness-defaults.md, and the 71 files under evidence/artifacts/frozen-variant-guard-mutations-20261003/. component_matrix --write and new_host_grand_list --write changed nothing else. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Scout <scout@local> Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Scope
validatejob'stimeout-minutesfrom 40 to 60 and records why in the comment block above it; the workflow's hash is registered again inmanifests/evidence.json. No other change.4ced2923063db6a6dcafa9f25af5ee05a4153c75lane:foundation.github/workflows/validate.yml,manifests/evidence.json(registration only, the branch's last commit, per the hot-file protocol indocs/lanes.md)SOTA sources
jobs.<job_id>.timeout-minutes(default 360; the job is cancelled when the limit is reached, or earlier at the runner's own execution limit).validatejob took 1745 s, 1745 s and 1727 s in runs 37088360538, 37086567708 and 37085570699; the serial arm of hosted trial run 37109532421 ran the unittest step in 1688 s, 1659 s and 1186 s on ubuntu-24.04. The record of that trial, which explains why the job stays serial: Record the failed hosted trial of unittest-parallel on the two required test jobs #652.Evidence-class table
validatejob took 1727 to 1745 s in three production runs, against a 2400 s limitgh api repos/seathatflowsinourveins/native-agent-stack/actions/runs/<id>/jobsfor the three run ids abovenative_provenfor the hosted run (actual execution on a GitHub-hosted runner); its sanitized receipt is in #652local_integrationLocal commands run
Decision record
No new record: this is the fourth change of the same limit (5 to 10 minutes, then 20 on 2026-09-26, then 40 on 2026-09-29, now 60) and follows the comment convention above the line. The trial that would have shortened the job instead of raising its limit is recorded in #652. Overturn: lower the limit again when the job is shorter than 20 minutes, for example when the suite runs in parallel.
Host evidence
Not applicable: no files under
evidence/hosts/change.Checklist
permissions: contents: read(unchanged).Notes for the merger: three open pull requests (#515, #595, #596) also touch
validate.yml; this change is one line plus a comment, so a conflict would be trivial. The limit is a hang guard, not a time budget.🤖 Generated with Claude Code