chore(codex): enforce complete native replacements#3
Draft
johannhartmann wants to merge 22 commits into
Draft
Conversation
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.
Why
Performance architecture tasks could still be satisfied by preserving the old production route behind a wrapper, fallback, bridge, or dual dispatch. The repository also told the performance ratchet to implement the smallest local fix, which conflicted with complete Cranelift cutovers.
This change makes externally observable PHP 8.5 behavior the compatibility boundary for explicit architecture replacements. Internal compatibility with a retired VM/JIT/runtime route is no longer an acceptance goal.
What changed
developer_instructionsfor complete Cranelift production replacements.UserPromptSubmitandStophooks. Replacement prompts activate a per-session hard mode; Codex cannot finish the turn while the replacement guard is red.fallback.AGENTS.mdso non-Codex agents receive it as well.Operator behavior
[native-replacement]activates replacement mode explicitly.[native-replacement:off]is available for discussion or analysis that does not request a production cutover.docs/performance/native-replacement-contracts/and pass its own correctness, application, structural-counter, and clean-latency commands.Validation
The dedicated
native replacement policyworkflow performs:.codex/hooks.json;.codex/config.toml;Additional temporary-Git integration tests covered a complete deletion contract, rejection of a new compatibility wrapper, rejection of hard mode without a changed contract, successful Stop-state cleanup, and bounded repeated Stop failure without an infinite loop.
Full Nix/Rust workspace gates were not run locally because the branch was written through the GitHub connector rather than a runnable full repository checkout. The repository’s general CI workflow runs separately on the PR.