Repository navigation
jc: DAV probe carrier invariance — Quack carrier (R1) + resident bit-plane carrier (R2) - #1347
Conversation
…Quack Round 1 of the carrier-invariance arc. The #1344 active-observation probe now runs its world through two carriers: the reference [Option<bool>; N] and a Quack value lane plus validity plane, the plane being the horizon's own independent_roots word, borrowed. Candidate selection in the Quack path is one filter, is_null(VALID) AND Range(SITE), executed by the mask-risc evaluator. Routes, scoring and revision are shared code. Every semantic output matches across 5 apertures, 4 NULL payloads (including the hidden truth) and 2 enumeration orders. The frontier range is bound to the site-ordinal axis; binding it to the nullable value column lets sql_where drop every candidate, and the probe asserts both halves. Five disable runs go red. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MHMvKHLhM6xwRswKY4s6vY
|
Warning Review limit reachedYour organization has reached its usage spending cap. Adjust your spending cap in the billing tab. Next included review available in 41 minutes. View limit detailsLimit details: You’ve used the included review currently available. Your 66 included PR review attempts over the past 7 days set your current allowance at 1 review per hour. Review configuration: ⚙️ Run configuration
📒 Files selected for processing (5)
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 |
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: 8dae6afc-2b2f-4059-a709-40ed89745e79) |
Round 2. Adds carrier C beside A and B (B untouched): the horizon's independent_roots and projected_claims words read as two borrowed bit-planes, no value lane built. A == B == C across 5 apertures, 4 poisons, 2 orders, and the DAV and ordinal cycles. For k=1, top-1 is a streaming fold over the kept mask with one Option<Candidate> of state; no row-id list, candidate list or sort. A heap meter (the no_alloc.rs pattern) pins candidate selection plus visitation at 0 bytes. The kept mask (8 B, caller-owned stack) is the one population object left. No shipped terminal returns a position, so in-substrate argmax would need missing algebra; it is not built. Seven disable runs go red. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MHMvKHLhM6xwRswKY4s6vY
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. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f4b2c162a0
ℹ️ 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".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| let (_, rank_c_heap) = measure(|| rank_resident(prior, aperture, Poison::Zero, false)); | ||
| let (_, rank_b_heap) = measure(|| rank_quack(prior, aperture, Poison::Zero, false)); |
There was a problem hiding this comment.
Reuse the pre-lowered plans in measured rankings
When these heap totals are interpreted as the allocation cost of the B/C full-ranking paths, both measurements also include query lowering: rank_resident calls lower itself, while rank_quack reaches QuackCarrier::select, which also calls lower. Consequently the reported 586/762-byte figures are not measured with plans lowered outside the window as claimed, and the rank_*_heap > top1_heap falsifier can succeed because lowering allocates rather than because candidate-list construction does. Pass the already-built program into both measured ranking paths or measure lowering separately.
Useful? React with 👍 / 👎.
This PR checks that the DAV active-observation probe from #1344 gives the same results when its observations are held in a different carrier. Both rounds are in
crates/jc/examples/dav_active_observation_probe.rs.Round 1: Quack carrier B
The probe runs one world through two carriers:
[Option<bool>; N], the reference from probe: DAV × EWA × revision active-observation cycle #1344.LaneRef::U32value lane plus a validity plane. The validity plane is the horizon's ownindependent_rootsword, borrowed rather than copied.In B, candidate selection is a single Quack filter,
is_null(VALID) AND Cmp::Range(SITE). It is lowered by Quack and executed by mask-risc.A == B across 5 apertures × 4 NULL payloads (zero, the hidden truth, its negation, garbage) × 2 enumeration orders. The comparison covers ranking,
RevisionDelta, the resulting horizon, replay, the residual and the final state.The frontier range is attached to the site-ordinal axis, not to the nullable value column. The probe asserts two cases:
VALUE,sql_wheregates it by validity and the candidate set comes back empty.SITE,sql_whereleaves the filter unchanged.Round 2: resident carrier C
independent_roots(validity) andprojected_claims(value) as two borrowed bit-planes. It builds no value lane.For
k = 1, picking the top candidate does not need a candidate list:Option<Candidate>; there is no row-idVec, noVec<Candidate>and no sort.The probe also measures heap use with a counting allocator, following the pattern in
tests/no_alloc.rs. Ata = 0.55:The 8 bytes come from
pairwise_agreement_u8, which allocates a small resultVeceach time it scores a candidate. That is route semantics, left unchanged on purpose.The one population-sized object left on C's path is the kept candidate mask: 8 bytes, a stack array owned by the caller.
No shipped terminal returns a row position (
MaskedMaxI32returns the value, not where it is). Doing top-1 inside mask-risc would therefore need algebra that does not exist yet. Nothing new was added for it.Disable runs
Each falsifier was checked by breaking the code and confirming the probe fails: R1 has 5 and R2 has 7 (all red). In R2, inverting every value bit does not change the ranking, because route disagreement is unchanged when all values flip. Only the final-state check catches that, and the board entry records it.
Board entries:
2026-10-06-dav-carrier-invariance-quack.md2026-10-06-dav-resident-reading-round2.mdGates
fmt, clippy
-D warningsandcargo testfor jc are all green. The probe runs green; CI runs it atjc-proof.yml:67.🤖 Generated with Claude Code
https://claude.ai/code/session_01MHMvKHLhM6xwRswKY4s6vY