Skip to content

fix(sprint-12/wave-F): codex P2 follow-up — AttentionMaskBackend impl for AttentionMaskSoA + canonical MailboxId#389

Merged
AdaWorldAPI merged 1 commit into
mainfrom
claude/sprint-12-wave-f-codex-p2-followup
May 16, 2026
Merged

fix(sprint-12/wave-F): codex P2 follow-up — AttentionMaskBackend impl for AttentionMaskSoA + canonical MailboxId#389
AdaWorldAPI merged 1 commit into
mainfrom
claude/sprint-12-wave-f-codex-p2-followup

Conversation

@AdaWorldAPI
Copy link
Copy Markdown
Owner

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 AttentionMaskActor is public but AttentionMaskSoA (the only production backend in the crate) doesn't implement the AttentionMaskBackend trait. 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.

Changes

  1. crates/cognitive-shader-driver/src/attention_mask_actor.rs — Added impl AttentionMaskBackend for crate::attention_mask::AttentionMaskSoA with the 4 trait methods delegating to the existing inherent methods on the SoA.
  2. crates/cognitive-shader-driver/src/attention_mask.rs — Switched from local pub type MailboxId = u32 to pub 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:

let actor = AttentionMaskActor::new(AttentionMaskSoA::new(4));

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)
  • Clean compile, modulo 2 pre-existing unused_mut warnings unrelated to this change

🤖 Generated with Claude Code


Generated by Claude Code

…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 AdaWorldAPI merged commit b526485 into main May 16, 2026
5 checks passed
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
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