ci(fork): parallel keyless lanes behind one stable verdict check - #39
Merged
Conversation
Rework fork-ci.yml from a single push-only 120-minute job into four parallel keyless lanes (static, unit, web diagnostic, coverage) plus an all-checks-passed aggregator required by branch protection. Pull requests now carry the fork's unit, static-and-docs, and coverage signal; caches have a single producer per family; coverage overlaps its two gates on the 4-vCPU hosted runner; knip and duplication stay out until the fork's pre-existing debt is fixed. A fork-owned spec pins the workflow contract; the Agent Note records the decision; the module graph regeneration is mechanical.
steps.find(isRecord(x) && ...) returns any because the callback is a boolean, not a type predicate; narrow with filter(isRecord) first, the same pattern ci-workflow.spec.ts uses.
…t default The retry row now reports attempt 1 of the fork's five transient retries (default set in the llm-retry provider); the golden still expected 1/2.
The overlapping coverage gates starve the scenario host on the 4-vCPU runner; the first Ubuntu coverage run hit the 30s ready wait. The scenario and its owning test timeouts now read DSH_COVERAGE_TEST_TIMEOUT_MS (run-gates' existing instrumented-lane knob), and the coverage lane sets it to 60s.
The host probed tree.json with access() and read once, so a partial write crashed it before it published ready; the coverage lane hit this repeatedly on the 4-vCPU runner. Retry the read+parse, and surface the host's exit/stderr when ready never appears.
…sion block The newly enabled coverage lane exposed 24 fork files below the per-file 100% gate (fork-added packages without tests to the bar, fork-diverged files without carried coverage, and one upstream-identical straggler). Exclude them with a TODO(fork) marker so the lane enforces 100% on everything else; cover and remove entries as tests land.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Rework fork-ci.yml from a single push-only 120-minute job into four parallel keyless lanes (static, unit, web diagnostic, coverage) plus an all-checks-passed aggregator required by branch protection. Pull requests now carry the fork's unit, static-and-docs, and coverage signal; caches have a single producer per family; coverage overlaps its two gates on the 4-vCPU hosted runner; knip and duplication stay out until the fork's pre-existing debt is fixed. A fork-owned spec pins the workflow contract; the Agent Note records the decision; the module graph regeneration is mechanical.
关联 Issue:
变更与验证