decompose review-004 recorded findings: 15 disposition tasks + the review-004-fixes gate (sqlite seam panic-safety, watcher-death subscribe + initial-stat, bridge alignment, scheduler classification, substrate SAFETY delta; pg forwarder hardening + diagnosability, BIGINT stamp decision + fix, log-facade decision; core offset pin + Display forging, mem doc notes, pg identifier note, tokio dev-dep normalization) — taskgraph validate green (95)

This commit is contained in:
glm-5.3-flash committed 2026-10-11 09:42:29 +00:00
1 parent 029f885aa1
commit 9bbe645558
16 files changed
+1131

No files matched your search

+65
View File
@@ -0,0 +1,65 @@
---
id: core-pin-offset-initial-value
name: Verify and pin EventReceiver::offset()'s pre-yield value (review 004 item 12)
status: pending
depends_on: []
scope: narrow
risk: low
impact: project
level: implementation
tags: [review-004-fixes, core, contract, verification]
---
## Description
The named gap from `docs/reviews/004-pre-release-general-review.md`
§"Findings recorded, not fixed" item 12: `EventReceiver::offset()`
pins the *post-yield* value only; the *pre-yield* return (the seeded
checkpoint vs 0) is unpinned in core-contract.md's receiver text.
Two steps, in order:
1. **Verify the three engines' pre-yield values empirically** — the
review explicitly did not verify them this session. Probe per
engine: a fresh consumer's `offset()` before any yield, and a
consumer with a saved checkpoint's `offset()` before any yield.
The contract suite is the natural home (a three-way equivalence
leg, stamped per `version_stamp.rs` convention); per-engine tests
are the acceptable alternative if the suite's harness shape fights
the probe — implementer's choice, recorded.
2. **Pin the semantics in the contract text** — core-contract.md's
`EventReceiver::offset()` paragraph gains the pre-yield return
(dated annotation). Doc-only.
**If the engines diverge**: do NOT paper over with a doc pin — record
the divergence precisely (which engine, which arm) and raise with the
user; a contract-observable divergence is a fix-the-code-or-amend
conversation, not a doc edit.
## Acceptance Criteria
- [ ] The three engines' pre-yield `offset()` values verified equal by
live runs (the probe/leg recorded; green on all three columns —
pg against the harness server)
- [ ] core-contract.md's `EventReceiver::offset()` text pins the
pre-yield return with a dated annotation
- [ ] If divergent instead: the divergence recorded and raised with
the user (this AC replaces the doc pin, not supplements it)
- [ ] Doc gate green; any new suite leg green on all three columns
## References
- docs/reviews/004-pre-release-general-review.md §"Findings recorded,
not fixed" item 12 (the named gap)
- docs/architecture/core-contract.md (the receiver text, the
verification backlog)
- alkstore-contract-suite (the three-column harness; the
version-stamp convention)
## Notes
> To be filled by implementation agent
## Summary
> To be filled on completion