All four catgraph edges are pinned at v0.11.0 (Cargo.toml lines 51, 59, 67, 98).
catgraph v0.12.0 is tagged (2026-08-15) and is additive + bug-fix only — no
breaking surface, so this is a pin change plus cargo update -p and a gate run.
What the bump brings that matters here:
Presentation::rewrite_depth() (catgraph #250) — the accessor that closes
the serde-rebuild hazard this repo found at step 2. A presentation stored as
its (equations, depth, engine) parts and rebuilt later could read the engine
back but not the depth, so the rebuild silently restored the default 32 —
no error, just a different bound and with it a different converged verdict on
any presentation needing the longer budget. Rebuild through
with_depth(depth) then set_engine(engine): no constructor takes both,
and with_depth defaults the engine, so stopping there reintroduces the same
silent default one slot over.
CospanCanon::classes() (catgraph #254) — read access to the apex
signatures. See the separate issue on what this does and does not enable for
src/cospan.rs.
- Two silent wrong answers fixed (catgraph #252):
PropExpr::from_permutation
returned the identity for every permutation, and permute_side spliced
Braid(0, n) — also the identity — on both sides. Both reached generic
SymmetricMonoidalMorphism callers. This store does not appear to call either
through the trait, but the bump is how it stops being reachable.
Worth taking on its own, independent of the cospan.rs question.
Re-run the five §3.8 gates after the bump.
All four catgraph edges are pinned at
v0.11.0(Cargo.tomllines 51, 59, 67, 98).catgraph
v0.12.0is tagged (2026-08-15) and is additive + bug-fix only — nobreaking surface, so this is a pin change plus
cargo update -pand a gate run.What the bump brings that matters here:
Presentation::rewrite_depth()(catgraph #250) — the accessor that closesthe serde-rebuild hazard this repo found at step 2. A presentation stored as
its
(equations, depth, engine)parts and rebuilt later could read the engineback but not the depth, so the rebuild silently restored the default 32 —
no error, just a different bound and with it a different
convergedverdict onany presentation needing the longer budget. Rebuild through
with_depth(depth)thenset_engine(engine): no constructor takes both,and
with_depthdefaults the engine, so stopping there reintroduces the samesilent default one slot over.
CospanCanon::classes()(catgraph #254) — read access to the apexsignatures. See the separate issue on what this does and does not enable for
src/cospan.rs.PropExpr::from_permutationreturned the identity for every permutation, and
permute_sidesplicedBraid(0, n)— also the identity — on both sides. Both reached genericSymmetricMonoidalMorphismcallers. This store does not appear to call eitherthrough the trait, but the bump is how it stops being reachable.
Worth taking on its own, independent of the
cospan.rsquestion.Re-run the five §3.8 gates after the bump.