Repository navigation
Reject pure stochastic runs with uncovered dynamics - #183
Merged
Merged
Conversation
Pure stochastic mode executes only reaction artifacts, so transitions without one and typed operators were dropped silently: an unnamed recovery never fired. Consume op_system's reaction_gaps coverage records and fail validation and execution with each uncovered transition named by origin, selectors, and reason, and reject typed operators. Hybrid mode, which integrates the residual RHS, and producers without coverage records are unchanged. Pin the development op_system sources to the head of op_system PR #249, which adds the records, while it awaits review and merge. Refs #182 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Closes #182 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Oct 2, 2026
op_system #249 is merged; move the development pins from its branch head to the merge commit. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Pure stochastic mode executes only
system.option("reactions"). Transitions without a reaction artifact and typed operators were silently dropped. On currentmain, a two-age S→I→R model with an unnamed recovery (gamma = 5) runs in direct SSA and nobody recovers.op_system #249 now publishes
reaction_gaps, one record per transition without a reaction. Pure stochastic validation and execution now fail when any are present, listing each one:Typed operators are rejected in pure stochastic mode for the same reason. Hybrid mode is unchanged, because it already integrates the full RHS minus the jump drift. Producers that predate coverage records are not checked.
Closes #182.
Dependency: the development op_system pins point at the head of op_system #249 (
75473e0) while it awaits review, following the existing flepimop2 pin precedent. After #249 merges, the pins should move to its merge commit before this PR merges. I can make that update.Coverage
validate_systemandrun, with the transition named. With the transition named, the same model validates and recoveries occur.reaction_gapsremoved, which simulates an older producer, the run proceeds as before.chain:stages and routing transitions are reported with their origins and reasons. Anaxis_kerneloperator is rejected.Docs
Validation
just ci: 592 core tests passed, 2 skipped. 359 provider tests passed (7 new). Ruff and strict mypy passed for both packages.just docs: strict documentation build passed.Two commits: 270 and 18 changed lines.
🤖 Generated with Claude Code