@@ -64,21 +64,21 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6464
6565### Fixed
6666- ** Stacked pull requests now carry two independent evidence planes:
67- submitted-head evidence and proposed-merge evidence (issue # 159 follow-up). **
68- The first # 159 repair added ` push ` filters for every documented agent prefix,
69- but its verification evidence came from ` pull_request ` runs and
70- automation-authenticated pushes are not a reliable proof surface because
71- recursive workflow events can be suppressed. CI, QuTiP and Quality Contract
72- therefore accept PRs against arbitrary base branches. Scientific CI, QuTiP
73- and the head Quality Contract explicitly bind to
74- ` github.event.pull_request.head.sha ` ; the reusable Python pilot retains
75- GitHub's synthetic merge ref. QuTiP additionally runs the full 3.11/3.12
76- cross-check matrix on that proposed merge, and the Quality Contract runs its
77- workflow-hardening, trigger-contract and claim-safety checks on the proposed
78- merge as well. The trigger guard is adversarially tested against comment,
79- path/type-filter, fake-head-ref and fake-reusable-caller bypasses and binds
80- the merge smoke to the actual job-level reusable-workflow call. Main branch
81- protection and workflow permissions remain unchanged.
67+ proposed-merge evidence in the existing required contexts and submitted-head
68+ evidence in additional jobs (issue # 159 follow-up). ** CI, QuTiP and Quality
69+ Contract accept PRs against arbitrary base branches. On ` pull_request ` , the
70+ historical required jobs deliberately retain GitHub's default synthetic merge
71+ ref so branch protection still validates the proposed integration state; new
72+ ` *-head ` jobs explicitly checkout
73+ ` github.event.pull_request. head.sha ` to prove the submitted subject state
74+ independently. The Python matrix therefore runs 3.10-3.14 on both states and
75+ QuTiP runs 3.11/3.12 on both states. The workflow contract binds these
76+ semantics to concrete PR-reachable, dependency-free jobs and adversarially
77+ rejects path/type suppression, comments, fake ref/use strings, block-scalar
78+ payloads (including indentation/chomping indicators), trigger-name
79+ impersonation outside top-level ` on: ` , and conditional/dependency skip
80+ paths. Main branch-protection context names, read-only permissions and
81+ full-SHA action pinning remain unchanged.
8282- ** Documented agent branches now receive exact-head verification (issue #159 ).**
8383 ` AGENTS.md ` defines ` claude/** ` , ` codex/** ` and ` bot/** ` , but the main CI and
8484 QuTiP workflows previously triggered branch pushes only for ` claude/** ` ,
0 commit comments