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:
1 parent
029f885aa1
commit
9bbe645558
16 files changed
+1131
No files matched your search
@@ -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
|
||||
Reference in new issue
Block a user