Run routing and fan-out reactions as discrete channels - #187
Merged
Merged
Conversation
jc-macdonald
force-pushed
the
feat/184-to-full-axes
branch
from
October 2, 2026 23:03
8ac8706 to
24b3bc9
Compare
op_system #252 publishes routing and target-only fan-out reactions whose propensity carries the routed target coordinate as a trailing dimension, listed in routed_axes. The network compiler rejected them as having incomplete destination metadata. Validate routed axes as free target axes, include them in destination coverage, and expand one channel per source cell and target coordinate, depositing each at its routed coordinate. Artifacts without routed_axes compile unchanged. Advance the development op_system pins to the head of cover (chain stages and routing) with shapes still lacking artifacts. Refs #186 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Closes #186 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
jc-macdonald
force-pushed
the
feat/186-routed-reactions
branch
from
October 2, 2026 23:10
648c7bf to
a7e91bc
Compare
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.
Stacked on #185 (→ #183). The development pins point at the head of op_system #252, the top of the op_system stack #249 → #250 → #251 → #252. After those merge, I'll rebase, retarget to
main, and move the pins to the merge commit.op_system #252 publishes routing (
X[imm:i] -> X[imm:j]) and target-only fan-out (I[age] -> X[age, imm:j]) reactions. Their propensity carries the routed target coordinate as a trailing dimension, listed inrouted_axes. The compiler rejected them because their destination metadata did not cover the target.Closes #186.
Behavior
routed_axesmust be target axes not already copied, pinned, or offset. They count toward destination coverage.wane[imm=0,to:imm=1], depositing at the routed coordinate. Diagonal channels of self-routing have zero propensity from op_system, so they never fire.routed_axescompile unchanged.coord_shiftand a target axis missing from the source.Coverage
vaxflip, and fan-out: columns conserve units, and drift equals the RHS, under NumPy and JAX.routed_axesproduce the same network.Docs
Validation
just ci: 592 core tests passed, 2 skipped. 376 provider tests passed (8 new). Ruff and strict mypy passed for both packages.just docs: strict documentation build passed.Two commits: 390 and 15 changed lines.
🤖 Generated with Claude Code