fix(sprint-12/wave-F): codex P2 follow-up — AttentionMaskBackend impl for AttentionMaskSoA + canonical MailboxId#389
Merged
Conversation
…tionMaskSoA + canonical MailboxId import Codex P2 review on PR #388 flagged that `AttentionMaskActor` is public but `AttentionMaskSoA` (the only production backend in the crate) doesn't implement `AttentionMaskBackend`. Downstream consumers can't add the impl themselves because they own neither the trait nor the SoA (Rust orphan rules), so `AttentionMaskActor::new(AttentionMaskSoA::new(...))` would force them to wrap in a local newtype. Fix #1 — production-backend impl in attention_mask_actor.rs Added `impl AttentionMaskBackend for crate::attention_mask::AttentionMaskSoA` with the four trait methods delegating to the existing inherent methods on AttentionMaskSoA. Now downstream consumers can wire the two directly: `AttentionMaskActor::new(AttentionMaskSoA::new(4))` works out of the box. Fix #2 — collapses CSI-10 from the W-Meta-Opus honest review The W-F2 worker had defined a local `pub type MailboxId = u32` in attention_mask.rs (Opus CSI-10 entry: "W-F2 used local MailboxId shadow alias"). Switched to `pub use lance_graph_contract::collapse_gate::MailboxId;` — same underlying u32 so all method signatures stay compatible, but now both attention_mask.rs and attention_mask_actor.rs reference the SAME canonical type and the trait impl in fix #1 can be added without type-mismatch concerns. Test status: 14/14 attention_mask + attention_mask_actor tests pass. Clean compile (modulo 2 pre-existing unused_mut warnings unrelated to this change). Branch rebased on main (post PR #385 merge) to pick up the ndarray hpc-extras feature flag that W-C1 added; this resolves the blake3 unresolved-crate compile failure that hit cognitive-shader-driver prior to rebase. https://claude.ai/code/session_01UwJuKqP828qyX1VkLgGJFS
AdaWorldAPI
pushed a commit
that referenced
this pull request
May 16, 2026
…ce fix + W-G1 partial Wave G mid-flight commit landing 3 complete worker outputs: W-G3 (D-CSV-13 SIMD vec batch API) — earlier commit 7d7b537 - already on branch; 20/20 tests pass, clippy clean, zero-dep W-G5 (E-META-10 → iron rule I-LEGACY-API-FEATURE-GATED) - CLAUDE.md +86 lines: new iron rule after I-VSA-IDENTITIES with 5 documented sprint-11 instances + 4 consequences (field-isolation matrix tests mandatory, no silent semantic drift, version gate mandatory, codex P1 canonical pre-merge gate) - EPIPHANIES.md: E-META-10 PROMOTED status header prepended; original FINDING body preserved per append-only board doctrine - .claude/board/TECH_DEBT.md: new TD-LEGACY-API-FEATURE-GATED-RESOLVED-1 entry merged into canonical board location (worker initially wrote it to repo-root TECH_DEBT.md; main thread consolidated to .claude/board/TECH_DEBT.md and removed the stray) W-G6 (TD-3 cognitive-shader-driver workspace conflict resolution) - Cargo.toml workspace [members] now includes `cognitive-shader-driver` with TD-SHADER-DRIVER-WORKSPACE-CONFLICT-1 annotation - Resolves the cargo `-p cognitive-shader-driver` from workspace root friction that hit sprint-11 (worked around via --manifest-path) W-G1 (D-CSV-5b QualiaColumn cutover) — PARTIAL - bindspace.rs: 65-line diff in progress — tests at file tail still reference both bs.qualia (f32) and bs.qualia_i4 (i4), suggesting the cutover isn't fully complete yet. Worker may still be writing. - engine_bridge.rs: paired double-write adjustments - lib.rs: added `pub mod attention_mask;`, `pub mod attention_mask_actor;`, `pub mod mailbox_soa;` registration (Wave F orphan cleanup landed here; previously these were only registered via PR #389) Still in flight (will commit on completion notification) - W-G1 final (cutover completion + test pass) - W-G2 (D-CSV-6b CAM-PQ wiring) — already in WIP commit 7d7b537 - W-G4 (D-CSV-15 Σ10 Jirak threshold) https://claude.ai/code/session_01UwJuKqP828qyX1VkLgGJFS
AdaWorldAPI
pushed a commit
that referenced
this pull request
May 16, 2026
…sprint-12 meta + board refresh + OQ catalog Five more Opus planners landed: PP-4 (Opus): `pr-sprint-13-think-methods.md` (674 LOC) — D-CSV-14 spec for splat-ops on Think carrier. Found: zero external callers of the 4 free fns (deprecation cycle is conservative not forcing); Think struct doesn't exist yet (sprint-13 introduces minimum-viable with splat_field + cycle; sprint-15+ accretes trajectory/awareness/etc). PP-5 (Opus): `pr-sprint-13-witness-cam-pq.md` — D-CSV-16 spec for real ndarray CAM-PQ wiring replacing the Wave G HashMap placeholder. PP-7 (Opus): `.claude/board/sprint-log-12/meta-review.md` — sprint-12 closing meta-review. PP-10 (Opus): LATEST_STATE.md (+50 lines) + STATUS_BOARD.md (+15 lines) refresh. 7 new "Recently Shipped" PR rows (#383-#389), 19+ new contract types in inventory, sprint-13 queued specs surfaced. Phase A/B/C marked Shipped; Phase D partial; Phase E (sprint-13) section added. PP-11 (Opus): `.claude/board/sprint-log-13/oq-catalog.md` — 13 OQs (OQ-CSV-7..19); 10 block sprint-13 spawn; 3 sprint-14+ tracking (ndarray PR #116 pin/vendor, VAMPE+Jirak scope, splat persistence). 7 of 12 PP planners done. 5 still in flight (PP-2 iron-rules done separately; PP-6 SIMD spec, PP-9 PR_ARC backfill, PP-12 cross-repo audit pending). https://claude.ai/code/session_01UwJuKqP828qyX1VkLgGJFS
AdaWorldAPI
pushed a commit
that referenced
this pull request
May 16, 2026
…ntries (#383..#390) PP-9 (Opus) prepended 8 PR entries to PR_ARC_INVENTORY.md (1537→1903 lines, +366 / +50,619 bytes). APPEND-ONLY rule respected — no prior entries touched. Top→bottom reverse chronological: #390 sprint-12/wave-G (In PR, `bad0875`) — grade A−. D-CSV-5b cutover + D-CSV-6b WitnessCorpus + D-CSV-13 batch + D-CSV-15 Jirak math. #389 sprint-12 wave-F codex P2 follow-up — AttentionMaskBackend impl + canonical MailboxId (CSI-10). #388 sprint-12 Wave F fleet (12 Sonnet + 1 Opus) — grade B. D-CSV- 10/11/12 scaffolds + AttentionMask + plan v2. #387 sprint-11 Wave E — grade A−. D-CSV-8 MUL i4 scalar + D-CSV-9 8-channel transcoder (Option R-3). #386 sprint-11 Wave D — grade B+. D-CSV-7 MailboxSoA + D-CSV-6a WitnessCorpus core. #385 sprint-11 Wave C — grade B+. D-CSV-5a sibling QualiaI4Column. #384 sprint-11 Wave B — grade A. D-CSV-2 QualiaI4_16D + OQ-CSV-1 Option α ratification. #383 sprint-11 Wave A — grade A−. D-CSV-1 v2 layout + D-CSV-3 signed mantissa + D-CSV-4 CollapseGateEmission. Every entry mirrors the #381/#379 template — Header / Confidence / Added / Locked / Deferred / Docs / Cross-refs — with forward+backward linkages (#383→#385→#390 D-CSV-5 chain; E-META-10 catch in #383 → iron-rule promotion in #390 W-G5; etc.). Total PR headers in file: 28 (was 20). 13 of 14 planners done. Only PP-13 (brutally-honest-tester agent) still in flight. https://claude.ai/code/session_01UwJuKqP828qyX1VkLgGJFS
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
Codex P2 fix that missed the boat on PR #388 — pushed to the Wave F branch AFTER #388 merged, so it never landed on main. Cherry-picking into this follow-up.
What it fixes
Codex P2 review on PR #388 flagged that
AttentionMaskActoris public butAttentionMaskSoA(the only production backend in the crate) doesn't implement theAttentionMaskBackendtrait. Downstream consumers can't add the impl themselves because they own neither the trait nor the SoA — Rust orphan rules — soAttentionMaskActor::new(AttentionMaskSoA::new(...))would force them to wrap in a local newtype.Changes
crates/cognitive-shader-driver/src/attention_mask_actor.rs— Addedimpl AttentionMaskBackend for crate::attention_mask::AttentionMaskSoAwith the 4 trait methods delegating to the existing inherent methods on the SoA.crates/cognitive-shader-driver/src/attention_mask.rs— Switched from localpub type MailboxId = u32topub use lance_graph_contract::collapse_gate::MailboxId;. Resolves CSI-10 from the W-Meta-Opus honest review ("W-F2 used local MailboxId shadow alias"). Same underlying u32 so all method signatures stay compatible.Effect
Downstream consumers can now wire the two directly:
without writing an orphan-rules-dodging newtype.
Test plan
cargo test --manifest-path crates/cognitive-shader-driver/Cargo.toml attention_mask— 14/14 pass (8 attention_mask + 6 attention_mask_actor)unused_mutwarnings unrelated to this change🤖 Generated with Claude Code
Generated by Claude Code