Skip to content

Flag deferred pillars; document that Cascade Stroke 1 can drop true hits - #346

Merged
AdaWorldAPI merged 2 commits into
masterfrom
ccr-b2e415d9-4jfvyk-deferred-pillars
Oct 8, 2026
Merged

AdaWorldAPI merged 2 commits into
masterfrom
ccr-b2e415d9-4jfvyk-deferred-pillars

Conversation

@AdaWorldAPI

Copy link
Copy Markdown
Owner

Two behaviours flagged by the lance-graph Mexican-hat probe (board entry 2026-10-08-mexhat-bucket-cascade-probe.md).

Deferred pillars passed as certified

Pillar-15, -16 and -17 are placeholders. They run no probe, yet they report passed = true. Any gate that reads passed therefore counted three pillars that had measured nothing.

  • PillarReport gains deferred: bool, set only on those three pillars.
  • New method certified(), defined as passed && !deferred. Gates should use this.
  • print() now shows DEFERRED instead of PASS for them.
  • passed keeps its existing meaning, so existing callers behave the same.
  • Breaking for struct literals: code that builds a PillarReport must add deferred: false. All 18 in-tree literals are updated.
  • deferred_pillars_are_not_certified pins the split: pillars 12–14 are certified, 15–17 are deferred, and deferred == (n_paths == 0 && n_hops == 0) on every report.

Cascade Stroke 1 recall

Cascade::query's Stroke 1 drops any candidate whose scaled prefix estimate exceeds threshold + 3σ. Nothing falls back to an exact check, so a hit within the threshold is lost when its differing bits sit in the prefix. That is how a statistical cascade is designed, so the behaviour is unchanged.

  • The doc now says recall is not guaranteed. Returned hits remain exact.
  • stroke1_drops_a_prefix_heavy_true_hit pins the behaviour with 128 candidates, all at distance 400 against a threshold of 600:
    • the one with all 400 differing bits in the prefix is dropped;
    • the 127 with the same bits at the tail are kept.
  • A future change that makes Stroke 1 exact will flip this test on purpose.

Also

The SplitMix64::new doctest failed under deny(warnings) because of an unused mut. Fixed.

Verification (debug 0)

  • cargo test -p ndarray --features pillar --release --lib -- pillar cascade: 200 passed.
  • Pillar doctests: 36 passed.
  • cargo clippy --features pillar --lib -- -D warnings is clean, in both the dev and test profiles.
  • cargo fmt is clean.
  • Disable runs, both red, both restored:
    • certified() returning passed;
    • Stroke 1 also admitting d <= threshold.

Not fixed (pre-existing, unrelated): clippy errors in tests/splat3d_correctness.rs under --tests.

🤖 Generated with Claude Code

https://claude.ai/code/session_01EFw2WdKr1oxvaKCJC2ua2R


Generated by Claude Code

claude added 2 commits October 8, 2026 21:16
Pillar-15/16/17 are placeholders that run no probe, and they report
passed = true. A gate that reads `passed` therefore counted three pillars
that measured nothing as certified. PillarReport gains `deferred: bool`
and `certified()` (passed && !deferred); print() shows DEFERRED.
`deferred_pillars_are_not_certified` pins 12-14 certified, 15-17 deferred.

Cascade::query's Stroke 1 drops a candidate whose scaled prefix estimate
exceeds threshold + 3 sigma, with no exact fallback, so a prefix-heavy hit
within threshold is lost. That is the design of a statistical cascade, so
the behaviour stays; the doc now states recall is not guaranteed and
`stroke1_drops_a_prefix_heavy_true_hit` pins it.

Also fixes the SplitMix64::new doctest, which failed under
deny(warnings) on an unused `mut`.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01EFw2WdKr1oxvaKCJC2ua2R
@coderabbitai

coderabbitai Bot commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

Note

Currently processing new changes in this PR. This may take a few minutes, please wait...

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Essentials
  • Run ID: 314a0430-1bdf-49bf-85b8-d3b6f105c854
📥 Commits

Reviewing files that changed from the base of the PR and between 334dee5 and fcbb506.

📒 Files selected for processing (18)
  • .claude/blackboard.md
  • src/hpc/cascade.rs
  • src/hpc/pillar/btsp_unbiased.rs
  • src/hpc/pillar/cov_high_d.rs
  • src/hpc/pillar/ewa_sandwich_2d.rs
  • src/hpc/pillar/ewa_sandwich_3d.rs
  • src/hpc/pillar/hhtl_contraction.rs
  • src/hpc/pillar/koestenberger.rs
  • src/hpc/pillar/lattice_signature.rs
  • src/hpc/pillar/mexican_hat.rs
  • src/hpc/pillar/mod.rs
  • src/hpc/pillar/ogit_lattice.rs
  • src/hpc/pillar/pflug.rs
  • src/hpc/pillar/prove_runner.rs
  • src/hpc/pillar/signature.rs
  • src/hpc/pillar/splat_invariants.rs
  • src/hpc/pillar/temporal_sandwich.rs
  • src/hpc/pillar/tree_balance.rs
 _____________________________________________________
< Your types are doing parkour to avoid being useful. >
 -----------------------------------------------------
  \
   \   \
        \ /\
        ( )
      .( o ).
✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Warning

Billing warning: we have not been able to collect payment for this subscription for more than 72 hours. Please update the payment method or pay any pending invoices in Billing to avoid service interruption.


Comment @coderabbitai help to get the list of available commands.

@AdaWorldAPI
AdaWorldAPI marked this pull request as ready for review October 8, 2026 22:40
@AdaWorldAPI
AdaWorldAPI merged commit be2f903 into master Oct 8, 2026
20 checks passed
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 8, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-08T22:41:41.165847Z fcbb506 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants