You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Under #!replace0ByCapturePercentage, arr.index(0) emits Point Capture Percentage; the oracle emits Null. Rule-body slot-versus-directive precedence differs from upstream.
Acceptance criteria
Structurally identical to the pinned OverPy 9.7.17 output, compared as canonical Workshop programs.
A differential fixture covers it.
Origin
Found during independent review of PR #669 (issue #666). Reproducible on the base commit; not introduced by that PR.
Verified (2026-10-29) by an independent canonical comparison against pinned OverPy 9.7.17 (opy-compat project-compare, workshop-rs 1.28.2). The gap is real, with one correction: it reproduces only when #!optimizeForSize is enabled together with the directive named in this Issue (#!replace0ByCapturePercentage). The directive alone is canonically identical to the oracle.
Acceptance criteria stay as written, with #!optimizeForSize added to the reproducer.
Implemented in PR #680, ready for independent review. Commit 133c24b is pushed on fix/670-optimize-for-size-capture.
Reproduced the corrected input (both #!optimizeForSize and #!replace0ByCapturePercentage) against pinned OverPy 9.7.17 using opy-compat project-compare and canonical programs parsed by workshop-rs 1.28.2. The base differed; the fixed output is canonically identical with zero differences. A new differential fixture covers the reported index slot plus nested calls, Null/False precedence, directive fallback, and directive-only behavior; its canonical assertion failed before the fix and passes afterward.
Foreground verification passed: formatting; stable and Rust 1.88.0 Clippy with warnings denied; workspace tests (835 passed, one existing manual resource baseline ignored); 52 Python tests; native corpus (155 matches, 15 recorded gaps, zero unexpected); all 6,114 builtin probes (zero unexplained); both pinned Bastion structural entries (zero differences). One ablation/simplification pass retained only reuse of the existing slot policy and the precedence guard.
GitHub CI and live-game execution have not been verified. The existing manual resource baseline was not run; UI gates do not apply. Full commands and verification details are in the PR body. No merge performed.
Activity
e54-bot commentedon Oct 29, 2026
Verified (2026-10-29) by an independent canonical comparison against pinned OverPy 9.7.17 (
opy-compat project-compare, workshop-rs 1.28.2). The gap is real, with one correction: it reproduces only when#!optimizeForSizeis enabled together with the directive named in this Issue (#!replace0ByCapturePercentage). The directive alone is canonically identical to the oracle.Acceptance criteria stay as written, with
#!optimizeForSizeadded to the reproducer.e54-bot commentedon Oct 29, 2026
Implemented in PR #680, ready for independent review. Commit
133c24bis pushed onfix/670-optimize-for-size-capture.Reproduced the corrected input (both
#!optimizeForSizeand#!replace0ByCapturePercentage) against pinned OverPy 9.7.17 usingopy-compat project-compareand canonical programs parsed by workshop-rs 1.28.2. The base differed; the fixed output is canonically identical with zero differences. A new differential fixture covers the reported index slot plus nested calls, Null/False precedence, directive fallback, and directive-only behavior; its canonical assertion failed before the fix and passes afterward.Foreground verification passed: formatting; stable and Rust 1.88.0 Clippy with warnings denied; workspace tests (835 passed, one existing manual resource baseline ignored); 52 Python tests; native corpus (155 matches, 15 recorded gaps, zero unexpected); all 6,114 builtin probes (zero unexplained); both pinned Bastion structural entries (zero differences). One ablation/simplification pass retained only reuse of the existing slot policy and the precedence guard.
GitHub CI and live-game execution have not been verified. The existing manual resource baseline was not run; UI gates do not apply. Full commands and verification details are in the PR body. No merge performed.
fix(compiler): preserve replacement precedence in modify and comparis…
fix(compiler): preserve replace0ByCapturePercentage precedence under …