docs(specs): gap-analysis validation pass across all 9 HA-family specs

Appended "Gap Analysis — Validation Pass (2026-06-09)" to each spec's
research.md with requirement-to-asset maps, status tags, and effort/risk.

Key outcomes:
- ha-repl-hardening: REOPENED with task series 7.1-7.7 — replication
  payload data plane is missing (snapshot chunks and WAL catch-up ship
  header-only; standbys converge on LSN without holding entity state)
- worker-join-refactor, resval-id-decoupling: marked implemented
  (all criteria re-verified, full test suite green)
- buglog: 335/336 (scheduler dequeue, open), 337/338/339 (fixed in
  previous commit); cerebrum Decision Log corrected (term-only vote
  deny was recorded as intentional but was a regression)
This commit is contained in:
Rongsong Shen 2026-06-10 01:26:08 +00:00
parent 9821ec4f3c
commit cdd446fc17
21 changed files with 3955 additions and 288 deletions

View file

@ -1,80 +1,110 @@
{
"session_id": "session-2026-06-09-2117",
"started": "2026-06-09T04:17:13.321Z",
"session_id": "session-2026-06-10-1720",
"started": "2026-06-10T00:20:07.286Z",
"files_read": {
"/home/rshen/projects/xce/worktrees/persistent_ha/src/schema/controller.capnp": {
"count": 1,
"tokens": 8223,
"first_read": "2026-06-09T06:41:14.575Z"
"/home/rshen/projects/xce/worktrees/persistent_ha/src/lib/testsuite/test_raft.c": {
"count": 4,
"tokens": 25610,
"first_read": "2026-06-10T00:20:59.235Z"
},
"/home/rshen/projects/xce/worktrees/persistent_ha/src/controller/cluster.c": {
"count": 2,
"tokens": 12219,
"first_read": "2026-06-09T06:43:58.698Z"
},
"/home/rshen/projects/xce/worktrees/persistent_ha/src/include/clusterconfig.h": {
"/home/rshen/projects/xce/worktrees/persistent_ha/src/controller/ha.h": {
"count": 1,
"tokens": 474,
"first_read": "2026-06-09T06:46:31.070Z"
},
"/home/rshen/projects/xce/worktrees/persistent_ha/src/controller/config_repl.c": {
"count": 1,
"tokens": 14728,
"first_read": "2026-06-09T06:47:59.696Z"
},
"/home/rshen/projects/xce/worktrees/persistent_ha/src/controller/myconf.c": {
"count": 1,
"tokens": 1100,
"first_read": "2026-06-09T07:31:53.498Z"
},
"/home/rshen/projects/xce/worktrees/persistent_ha/src/controller/testsuite/test.c": {
"count": 1,
"tokens": 18744,
"first_read": "2026-06-09T07:31:53.527Z"
},
"/home/rshen/projects/xce/worktrees/persistent_ha/src/controller/startup_validation.c": {
"count": 1,
"tokens": 1423,
"first_read": "2026-06-09T08:04:51.033Z"
},
"/home/rshen/projects/xce/worktrees/persistent_ha/src/docs/cluster-config-split-analysis.md": {
"count": 1,
"tokens": 2796,
"first_read": "2026-06-09T08:32:42.474Z"
"tokens": 10007,
"first_read": "2026-06-10T00:23:31.412Z"
}
},
"files_written": [
{
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/docs/cluster-config-split-analysis.md",
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/lib/testsuite/test_raft.c",
"action": "edit",
"tokens": 308,
"at": "2026-06-09T08:33:08.519Z"
"tokens": 114,
"at": "2026-06-10T00:22:18.260Z"
},
{
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/docs/cluster-config-split-analysis.md",
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/lib/testsuite/test_raft.c",
"action": "edit",
"tokens": 577,
"at": "2026-06-09T08:33:34.327Z"
"tokens": 523,
"at": "2026-06-10T00:22:44.317Z"
},
{
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/docs/cluster-config-split-analysis.md",
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/lib/testsuite/test_raft.c",
"action": "edit",
"tokens": 618,
"at": "2026-06-09T08:35:24.714Z"
"tokens": 36,
"at": "2026-06-10T00:22:57.391Z"
},
{
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/docs/cluster-config-split-analysis.md",
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/lib/raft/raft.c",
"action": "edit",
"tokens": 165,
"at": "2026-06-09T08:36:14.677Z"
"tokens": 144,
"at": "2026-06-10T00:23:00.680Z"
},
{
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/controller/ha.c",
"action": "edit",
"tokens": 260,
"at": "2026-06-10T00:23:18.664Z"
},
{
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/controller/ha.c",
"action": "edit",
"tokens": 121,
"at": "2026-06-10T00:23:21.916Z"
},
{
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/controller/ha.h",
"action": "edit",
"tokens": 85,
"at": "2026-06-10T00:23:49.279Z"
},
{
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/controller/ha.h",
"action": "edit",
"tokens": 28,
"at": "2026-06-10T00:23:52.561Z"
},
{
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/controller/testsuite/test_ha_vote_gate.c",
"action": "edit",
"tokens": 122,
"at": "2026-06-10T00:24:14.357Z"
},
{
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/controller/testsuite/test_ha_vote_gate.c",
"action": "edit",
"tokens": 109,
"at": "2026-06-10T00:24:18.132Z"
},
{
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/controller/testsuite/test_ha_vote_gate.c",
"action": "edit",
"tokens": 63,
"at": "2026-06-10T00:24:21.425Z"
},
{
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/controller/myapp.c",
"action": "edit",
"tokens": 258,
"at": "2026-06-10T00:24:41.870Z"
},
{
"file": "/home/claude/.claude/projects/-home-rshen-projects-xce-xce/memory/project_ha_bootstrap_progress.md",
"action": "edit",
"tokens": 147,
"at": "2026-06-10T00:32:34.052Z"
}
],
"edit_counts": {
"src/docs/cluster-config-split-analysis.md": 4
"src/lib/testsuite/test_raft.c": 3,
"src/lib/raft/raft.c": 1,
"src/controller/ha.c": 2,
"src/controller/ha.h": 2,
"src/controller/testsuite/test_ha_vote_gate.c": 3,
"src/controller/myapp.c": 1,
"../../../../../claude/.claude/projects/-home-rshen-projects-xce-xce/memory/project_ha_bootstrap_progress.md": 1
},
"anatomy_hits": 8,
"anatomy_hits": 2,
"anatomy_misses": 0,
"repeated_reads_warned": 1,
"repeated_reads_warned": 3,
"cerebrum_warnings": 0,
"stop_count": 3
"stop_count": 1
}