Repository navigation
tract-harvest-probe: facts from Tract's inference stage (7,620/7,620 values, 0 refused for missing facts) - #1852
Merged
Merged
Conversation
… typed stage The typed stage labels only 2,546 of the Jina graph's 7,620 source values, so 169 registered nodes had UNKNOWN shapes and were refused. The inference model (after analyse) keeps every label; a shape is taken only when its rank and every dimension are determined. FactSources keeps both stages apart: merged() prefers inference and fills gaps from typed, and disagreements() compares them. Jina, inputs pinned [1,10]: inference 7,620/7,620 full facts, typed 2,546, 0 disagreements. Registry v1 coverage 3,751 / 169 / 3,700 -> 4,146 / 0 / 3,474 (WHEN-true / WHEN-not-true / unregistered). unknown_shapes_refuse re-pinned: T now has a Tract fact, so n_greater is the first UNKNOWN. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XAqKMMjKnig6MXTd41Lf2v
…rs for the fact sources FactSources records the typed stage's error instead of failing: Tract refuses to type a graph with an undetermined input dim, but the inference stage still runs. An undetermined dim gives no shape (never a symbol). Unit test for disagreements()/merged(), which had only ever reported 0. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XAqKMMjKnig6MXTd41Lf2v
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XAqKMMjKnig6MXTd41Lf2v
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars.
|
AdaWorldAPI
marked this pull request as ready for review
October 30, 2026 09:27
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
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.
Summary
The probe gets dtype and shape facts from Tract, which the plan's WHEN guards check against. Until now it read them from Tract's typed model. That stage labels only the values that survive typing: 2,546 of the Jina graph's 7,620. So 169 nodes whose op was registered were refused anyway, because their shapes were UNKNOWN.
dr3::FactSourcesnow reads both Tract stages and keeps them apart:analyse. It keeps every source label. A fact there can be partial, so a shape is taken only when its rank and every dimension are determined. An undetermined dimension never becomes a symbol, because two undetermined dimensions need not be equal.merged()prefers the inference fact and fills a missing dtype or shape from the typed one.disagreements()compares the two wherever both describe a value.typed_error. Tract refuses to type a graph with an undetermined input dimension, but its inference stage still runs.Results (Jina v5 small, inputs pinned
[1,10])Mul, 141 to 253 forAdd, and 1 to 113 forDiv.Unsqueeze888,Shape430,Gather373,Concat284,MatMul253,Reshape228.Tests
inference_stage_facts_cover_every_value_and_agree_with_typed,full_graph_facts_and_coverage(Jina, counts pinned exactly),undetermined_input_dim_gives_no_shape_and_typing_failure_is_recorded, and the unit testdr3::tests::fact_sources_disagree_and_merge. The unit test is needed becausedisagreements()reports 0 on every real fixture, so nothing else could show it ever fires.unknown_shapes_refuse. The thresholdTnow has a Tract fact (the typed stage had merged it withZ), so the first UNKNOWN isn_greater, notn_where.Test plan
cargo fmt,cargo clippy --release --all-targets -D warningscargo test --release --no-fail-fast -- --include-ignored: 26 passeddisagreementsalways emptyexamples/stageson the full model (numbers above); plan §0.1, board entry and STATUS_BOARD updatedGenerated by Claude Code