feat(controller-status): source election time in ctrlstatus_fill (task 7.4)
ctrlstatus_fill now unconditionally reads ha->last_known_elected_at_ms into the reply's elected_at_ms field -- one atomic-acquire load, no role-branch, mirroring how the handler already reports raw term unconditionally. Serves both a self-stamped primary and a heartbeat-learned standby from the same field. "Unknown" display gating is deliberately left to the client command (task 7.5), not this handler. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RLSNJhNoULvVcUhXEFafQC
This commit is contained in:
parent
30adc52ea3
commit
93f32b5d84
3 changed files with 87 additions and 1 deletions
|
|
@ -116,7 +116,7 @@
|
|||
- _Boundary: heartbeat (send + receive)_
|
||||
- _Depends: 7.1_
|
||||
|
||||
- [ ] 7.4 Source the election time in the status handler
|
||||
- [x] 7.4 Source the election time in the status handler
|
||||
- TDD (red first): the status handler reports a non-zero election-time equal to the responder's own learned value (self-stamped on a primary, heartbeat-learned on a standby); a standby seeded with a learned election-time (simulating an already-processed heartbeat) reports that learned value, not zero; the handler still mutates no state.
|
||||
- Read the learned election-time into the status reply unconditionally (no role-based branching, no "unknown" gating in the handler itself — that display decision belongs to the client command in 7.5, mirroring how the handler already reports raw term unconditionally regardless of whether a primary is currently known).
|
||||
- Observable: the new unit tests go red → green; a standby seeded with a learned election-time reports that value instead of zero; the no-mutation assertion holds.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue