Repository navigation
Require external fork guards before cache restoration - #271
Conversation
|
Implemented in draft PR #271 at
Next: complete Security/required CI and merge the repository prerequisites, refresh the public main catalog, then mark #271 ready only after that catalog satisfies the new policy. Existing permissions, check selection, writers and cache limits remain unchanged. |
|
Both Sonar findings concerned exception-test scope. Fixed at The policy implementation and all fixture inputs are unchanged from |
|
Security exact-head review of d5e97b7: accepted. The evaluator is conservative: unknown expressions remain potentially runnable, and a restore is accepted only when the job or step condition proves it cannot execute for an external fork. Coverage includes job inheritance, OR/AND grouping, case-insensitive event literals, negation precedence, and exact repository identity. The later Sonar cleanup does not change policy behavior. Keep the PR draft until the catalog is compatible through Server #929, Waterline #254, and Workflow #973; once those prerequisites are satisfied, there is no Security hold on this policy head. |
|
Tightened the supported literal boundary at Three new negative fixtures fail the previous head and pass now. All 27 focused policy tests and all 11 local Python modules pass: 120 tests with two npm/Cargo client skips. The combined 11-target candidate trust scan passes. Existing ASCII guards and the draft's repository prerequisites are unchanged. This remains separate from the dispatch correction in #273. |
|
The dispatch correction #273 is now merged. A normal local merge of its main commit into this fork-policy branch is The refreshed 97-workflow public catalog passes nine of 11 targets without overlays. Server and Waterline are the two remaining incompatibilities, owned by #929 and #254. Adding those exact candidate guards, together with SDK-Rust #151, passes all 11 targets. This is a candidate scan, not proof those prerequisites are merged. Keep this PR draft and refresh current mains before enabling enforcement. |
|
Security exact-head review of 4a00651: accepted. Replacing Unicode case folding with ASCII-compatible literal handling prevents non-ASCII event and Boolean lookalikes from becoming trusted facts; those expressions remain unknown and therefore potentially runnable. Existing ASCII guards retain their prior truth model, the new negative fixtures cover the confusable cases, and current checks are green. Keep the PR draft until Server #929 lands; no Security hold after that catalog prerequisite. |
|
All prerequisites are merged: Server #929 as A fresh immutable public-main workflow snapshot observed 2026-11-02 01:45:49 UTC passes 11/11 targets, 97 workflows, with no candidate overlays and private Cloud excluded. The first local scan lacked the existing PyYAML mount and did not run; the corrected invocation with both existing dependency mounts passes. This is actual main compatibility, not complete product-suite acceptance. Combined normal-merge head |
|
Security acceptance carries to combined current head I independently reproduced the recorded tree as the clean merge of previously accepted fork-policy head All seven current hosted checks are now green, including shared contract tests, Sonar and CodeQL. The recorded immutable 97-workflow/11-public-main snapshot supplies the catalog-wide behavior evidence. No new Security finding or hold. |
|
Security source acceptance carries to final exact head The sole delta from accepted Fresh hosted checks remain the normal merge gate and were still running at review time. No new Security finding or hold. |
|
|
Delivered by protected merge Normal main follow-through passed: Repository checks |



Pull-request cache restores can consume executable output saved by an earlier revision of the same external PR. Require a job or step condition that excludes external forks before restoring a cache; exact or event-partitioned keys alone do not establish trust.
The evaluator recognizes event/repository comparisons, grouped negation and Boolean composition. Unknown terms, including Unicode-confusable literals and main-looking refs, cannot establish trust. Protected-main writers, exact keys/paths, action pins and privileged-consumer restrictions remain unchanged.
Repository prerequisites are merged: Server #929 (
1908dd4f), Waterline #254 (15aa0275), Workflow #973 (95f7ec01). A fresh immutable snapshot observed November 2 at 01:45:49 UTC passes all 97 workflows across 11 public-main targets, without candidate overlays; private Cloud is excluded. This is a workflow trust scan, not each product's complete test suite.Combined source
4ec72c2ac8619f7fd4cf66a00f65588d95eac2a7normally merges delivered dispatch-parser #273; the 11 normal Python modules pass 122 tests with two local npm/Cargo-client skips. Fork-policy controls previously produced 21 expected failing subcases on the old implementation, and Unicode-confusable controls preserve unknown/fail-closed behavior. Fresh current-head hosted checks are required before merge.Closes #270. No permissions, required checks, cache capacity or spending limits are expanded.