chore: sync main into testnet-canary after CI parity (#1992) - #1993
Merged
Conversation
testnet-canary was never in the branch filters — not removed, simply never added: the filters were last touched on 2026-04-03 to add v10-rc, and the canary branch postdates that. The effect is that PRs targeting testnet-canary run only SPARQL-lint and the path-filtered gates; the vitest lanes, EVM integration, knip and the supply-chain scan all skip. A change can land on canary with no unit signal at all. Adds testnet-canary to ci.yml, evm-integration.yml, knip.yml and supply-chain-scan.yml so canary PRs get the same gates as main. Also drops v10-rc, which was deleted upstream and no longer resolves, and repoints a turbo restore-key that referenced it at main so the cache fallback can actually hit. Two v10-rc mentions remain in explanatory comments and are left as historical context. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The trigger allowlists moved off the deleted `v10-rc` branch, but three comments still named it: two `push (main / v10-rc / …)` shorthands in ci.yml and the CODEOWNERS header describing which branches need "Require review from Code Owners". The ci.yml comments describe trigger *shape* (push vs PR vs merge_group), not a canonical branch list, so they now say `push (trigger branches)` — generic, so the next branch rotation cannot desync them again. CODEOWNERS names the branches we actually protect, so it gets `testnet-canary`. Comment-only; the parsed trigger config is unchanged. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
ci: run the full gates on testnet-canary PRs
otReviewAgent
left a comment
There was a problem hiding this comment.
Review Agent completed this review and found no issues.
4 tasks
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.
Important
Merge this with a merge commit — do not squash.
Squash-merging the previous sync (#1986) is what silently diverged the two
branches: it collapsed the merge into a single-parent commit, so the content
matched byte-for-byte while the ancestry did not. That had to be repaired by
hand in
eb1cc7946. A real merge commit keeps the histories joined.Summary
mainintotestnet-canaryafter ci: run the full gates on testnet-canary PRs #1992 merged, so canary carries the CI trigger parity it was created to receive..github/thatmainlacks, so this sync has no behavioural surface beyond CI triggering.ci.ymlis the file GitHub consults and it does not listtestnet-canaryinon.pull_request.branches.Divergence state going in
mainb67656772testnet-canaryeb1cc7946aab9ec94d(squash artifact) +eb1cc7946(the repair merge)Related
ci: run the full gates on testnet-canary PRs) — this PR is what actually delivers that config to canary.eb1cc7946.protect-testnet-canaryruleset: it requires theCI gateandEVM integration gatechecks, which cannot dispatch on canary PRs until this merges. Creating that ruleset first would leave every canary PR blocked on checks that never arrive.Diagrams
Which workflows dispatch on a
testnet-canaryPRBefore (canary's
ci.ymlomitstestnet-canary, so the trigger filter rejects it):sequenceDiagram participant Dev participant GitHub participant Workflows Dev->>GitHub: open PR, base=testnet-canary GitHub->>GitHub: read ci.yml from merge commit Note over GitHub: on.pull_request.branches =<br/>[main, v10-rc, release/rc.12, rc17-vm-wip]<br/>base not in list GitHub--xWorkflows: CI, EVM, Knip, supply-chain NOT dispatched GitHub->>Workflows: RFC-64 Windows gate, SPARQL lint (unfiltered) Workflows-->>Dev: 2 checks — looks green, suite never ranAfter (canary inherits the widened filter):
sequenceDiagram participant Dev participant GitHub participant Workflows Dev->>GitHub: open PR, base=testnet-canary GitHub->>GitHub: read ci.yml from merge commit Note over GitHub: on.pull_request.branches =<br/>[main, testnet-canary, release/rc.12, rc17-vm-wip]<br/>base matches GitHub->>Workflows: CI (4 vitest shards), EVM integration, Knip, supply-chain GitHub->>Workflows: RFC-64 Windows gate, SPARQL lint Workflows-->>Dev: full gate set — green means testedFiles changed
.github/workflows/ci.ymlv10-rc→testnet-canaryin the push/PR trigger lists; turbo cache restore-key repointed from the deletedrefs/heads/v10-rc-torefs/heads/main-; two branch-policy comments made generic.github/workflows/evm-integration.yml.github/workflows/knip.yml.github/workflows/supply-chain-scan.yml.github/CODEOWNERStestnet-canaryas a protected branch instead of the deletedv10-rcTest plan
git diff origin/main origin/testnet-canary -- . ':(exclude).github'is empty — canary carries no unique content, so this sync cannot revert work.ci/evm-integration/supply-chain-scan→[main, testnet-canary, release/rc.12, rc17-vm-wip],knip→[main, testnet-canary, rc17-vm-wip].grep -rn v10-rc .github/onmainreturns nothing.git rev-list --count origin/testnet-canary..origin/mainis0and the tree hashes match.CI,EVM Integration Tests,Knip, andSupply chain scannow dispatch withbase=testnet-canary. Read the run'screated_atagainst the PR timeline rather than trusting the API'spull_requests[0].base.ref, which reports the current base and mislabels runs on retargeted PRs.protect-testnet-canaryruleset mirroringprotect-main(id14325863).