Repository navigation
lab(drf-w1): staged writeback coalesced per canonical row (W1–W3) - #1765
Conversation
Focus::writeback() returns a Writeback that stages facet writes by focus slot. flush(&soa) re-checks the seal and source, then emits one RowImage per distinct dirty canonical row, in ordinal order: the sealed source row with every staged facet applied. Different facets of one row all survive (W2); two different values for the same facet of one row refuse with Refusal::Conflict (W3); equal values coalesce. The focus is never mutated. W1: 4096 slots over 37 distinct rows, 64 thoughts -> 37 images, 18 944 B, bytes outside the written facet equal to the source. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G22yT6htkcdyXsihxxXdrg
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G22yT6htkcdyXsihxxXdrg
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars.
|
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: 8c51d019d1
ℹ️ 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".
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G22yT6htkcdyXsihxxXdrg
Codex P2 on #1765: offsets 16 and 17 overlap in bytes 17..20, and flush let the second write silently corrupt the first. Neighbour check after the (ord, offset) sort now refuses any overlap; touching facets survive. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G22yT6htkcdyXsihxxXdrg
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G22yT6htkcdyXsihxxXdrg
What
This is the next falsifier block after #1762–#1764, in the same lab crate.
Focus::writeback()returns aWritebackthat stages facet writes addressed by focus slot.flush(&soa)then:RowImageper distinct dirty canonical row, in ordinal order. Each image is the sealed source row with every staged facet applied;Refusal::Conflict(W3); equal values coalesce.The focus itself is never mutated.
Falsifiers
Conflict; equal values coalesce; a stale source at flush givesStaleMapThe dirty fraction (A1) for the W1 workload is 37 / 4096 = 0.009.
Disable runs, each red:
Gates: 14/14 tests pass on native AVX-512 and on x86-64-v3;
clippy --all-targets -D warningsis clean.Open
The images are owned copies by design: they are the frozen batch a writer takes ownership of (W4), not a read path.
Board entry:
.claude/board/entries/2026-10-25-drf-w1-writeback.md.Generated by Claude Code