docs(steering): sync steering + xce-audit-invariants skill after Jul 13-18 work
- ha-async-io.md: document the same-batch endpoint lifetime hazard (bug-1447) and its ref-whole-batch-before-dispatch fix pattern - xce-audit-invariants SKILL.md: add object-lifetime-within-a-dispatch-batch as a 6th audit dimension, so a future pass checks other batch loops (vtaskmgr drain, peer-list iteration) for the same shape - product.md: replace the stale "HA consistency family is the current focus" framing with the actual 2026-07-18 status (umbrella complete, 9-spec validate-impl batch closed, job-array-single-wal-record shipped) - roadmap.md: correct 5 entries that were stale relative to actual spec status (ha-consistency-invariants/ha-wal-replication/libxce-failover pulled out of "In Flight", ha-term-safety and raft-drive-async marked implemented+GO, raft-sim-conformance and job-array-single-wal-record given closure annotations) -- struck through, not deleted, per this file's own additive-update convention - testing.md: document that meson's aggregate Fail:0 can mask Unity sub-group failures -- always check the standalone binary's own summary - src/controller/CLAUDE.md: fix a stale line-citation for the votedFor atomicity invariant (had drifted onto unrelated post-election code)
This commit is contained in:
parent
f88e4ef431
commit
d8d1901901
6 changed files with 44 additions and 15 deletions
|
|
@ -95,7 +95,7 @@ The `RequestVoteReply` message already carries `peerConfigTag` and `peerLastLogL
|
|||
### Protocol Verification Checklist
|
||||
|
||||
When modifying HA protocol code (election, replication, heartbeat), verify:
|
||||
- [ ] `votedFor` is updated atomically with term increment before granting any vote
|
||||
- [ ] `votedFor` is updated atomically with term increment before granting any vote (library: `raft_on_vote_request`, `src/lib/raft/raft.c:178-270` — term update before persist, `voted_for` set only after persist succeeds; adapter: `raft_cb_persist`, `ha.c:1784-1824`, writes term+voted_for atomically under `ha->lock`. `handle_request_vote` in `ha.c` is `#ifdef XCE_TESTING`-only; production dispatch is `cluster.c:477` → `raft_on_vote_request`. Corrected 2026-07-18 — the prior `ha.c:1218-1230` citation had drifted onto unrelated post-election code.)
|
||||
- [ ] `currentTerm` is monotonic — never decreases
|
||||
- [ ] `commitIndex` never decreases (monotonic)
|
||||
- [ ] A leader only commits entries from its current term (or equivalent via per-entry majority ack)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue