docs(adr): propose unified acknowledged operation results (#114) - #117
Conversation
📝 WalkthroughWalkthroughThis PR adds ADR-0028, defining a shared acknowledgement-result protocol for Put, PutBatch, and Fence operations, including UUIDv4 tokens, binary encoding, bounded token state, polling deadlines, outcome semantics, qualification tests, and contract registry updates. ChangesAcknowledged operation results
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related issues
Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
Review — FIX BEFORE MERGEFindings
Validation
NotesFence ordering, publisher-failure aggregation, and #99 waiter lifecycle remain undecided until ADR-0029 is Accepted. |
|
Resolved all four FIX BEFORE MERGE findings in
The PR body now reflects Accepted status and the review resolution. |
There was a problem hiding this comment.
Actionable comments posted: 3
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/adr/0028-unify-acknowledged-operation-results.md`:
- Around line 3-5: Update the ADR-0028 Status entry from “Accepted — 2026-07-23”
to “Proposed”, removing the decision date until approval.
- Around line 283-292: Add ADR-0028 to the ADR catalog in docs/adr/README.md,
using the document’s existing index format and linking it to
0028-unify-acknowledged-operation-results.md. Leave the ADR content and other
references unchanged.
- Line 237: Update the prose at the affected line so the issue reference does
not begin with an unescaped hash; prefix the reference with “issue” while
preserving the existing StorageEngine durability contract wording.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: c6ebe024-51f3-451e-8ba7-5f3ecc857c36
📒 Files selected for processing (2)
docs/adr/0028-unify-acknowledged-operation-results.mddocs/adr/README.md
Re-review: ADR-0028 (head
|
cf2e104 to
033a19d
Compare
|
Resolved the actionable post-
|
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/08_contract_registry.md`:
- Line 58: Update the “Same-publisher in-band fence marker” row in the contract
registry so its provenance column records the actual earlier issue/proposal
review or milestone-assembly registration point. Keep the status as Planned and
retain the Fence ADR acceptance as the condition for acceptance, but remove the
inaccurate “added on ADR acceptance” note.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: e8b7ad46-ec51-4a48-aacf-6d20ef2a89aa
📒 Files selected for processing (3)
docs/08_contract_registry.mddocs/adr/0028-unify-acknowledged-operation-results.mddocs/adr/README.md
🚧 Files skipped from review as they are similar to previous changes (2)
- docs/adr/README.md
- docs/adr/0028-unify-acknowledged-operation-results.md
|



Summary
Closes: N/A — this ADR PR is related to #114, which remains open through ADR-0029 and the coordinated Issue/document updates.
Status::OutcomeUnknown = 9to the accepted contract without changing code yet;ADR status and split
ADR-0028 is Accepted — 2026-07-23. Issue #114 covers two related but distinct decisions:
Both ADRs must be Accepted before #99 or #107 implementation begins. #14 and #17 also remain blocked until their Issue bodies are synchronized with accepted ADR-0028.
Scope checklist
Processing/Completedlifecycle, global token claim across lanes, bounded 4096-entry completion ring, collision handling, eviction boundary, phase-aware exception completion, and Stop quiescence;Transport::Putfailures and a total 3-second default deadline with ACK-query-only retry;OutcomeUnknownErrormapping;Requirements
Requirement IDs: N/A — pre-implementation architecture decision; no production behavior changes in this PR.
Contract Registry
Contract transitions in
docs/08_contract_registry.md:meta/ack/<uuid>route behavior / AckResult:Contract Planned → Normative;Implementation Planned;Contract Planned → Normative;Implementation Planned;Status::OutcomeUnknown = 9:Contract Planned → Normative;Implementation Planned;OutcomeUnknownError:Contract Planned → Normative;Implementation Planned;AckAttachmentV1: registered asContract Normative;Implementation Planned;sitos.v1.ackEncoding: registered asContract Normative;Implementation Planned.All six rows use ADR-0028 as their normative specification and have no open design authority. The existing lenient
meta/ack/<uuid>parser-grammar row remainsContract Planned / Implementation Implementedbecause ADR-0028 reuses but does not normatively define that grammar. PR #116 introduced Rule 1 after this PR opened, so the two previously absent surfaces are registered in this still-open ADR-landing PR.Review resolution
The original FIX BEFORE MERGE findings are resolved in the rebased history:
applied_count = 0andfailed_index = UINT32_MAX;Status::Error;Status::OutcomeUnknownwhen the effect cannot be proven;docs/adr/README.mdincludes ADR-0028;The subsequent CodeRabbit/Opus review is resolved through head
a50164f:#105reference;The CodeRabbit requests to revert the owner-approved Accepted status and to add the already-present ADR index entry required no code change.
Closes #114is intentionally not used because it would close the still-active cross-cutting proposal before ADR-0029 and coordinated updates finish.Acceptance Criteria Verification
RED-phase Confirmation
N/A — documentation-only ADR PR; no production code is included.
ADR Needed?
Compatibility and implementation note
The ADR defines future source/wire behavior changes but this PR changes documentation only. #14/#17 and the normative architecture/wire/C++/Python documents must be updated together before implementation merges. Synced Fence remains additionally blocked by #105. #99 and #107 implementation remain blocked until follow-up ADR-0029 is Accepted.