feat(raft-drive-async): snapshot SlowLane offload + WAL-trim cursor guard (task 3.2)
Part B (LIVE, default-ON): trim_wal_segments now bounds WAL-segment deletion by repl_trim_lsn(&p->repl, active_seg_lsn) = min(active segment LSN, every active standby acked_lsn, every valid disconnected-slot last_disconnected_lsn), after repl_expire_disconnect_slots ages out stale slot guards. floor <= active_seg_lsn structurally, so the guard can only preserve more segments, never delete one a live standby still needs — closes the bug-795/828 trim-vs-cursor race for connected/recently-disconnected standbys (bug-1147 stopgap; empty/cursor=0 join still needs entity-bearing snapshots). Part A (DORMANT, g_drive_async_snapshot_offload default OFF): ha_snapshot_send_ dispatch routes HA_REPL_SEND_SNAPSHOT inline (flag OFF — byte-for-byte legacy, on io_worker) or to slowlane_submit+snapshot_lane_fn (flag ON). Send body factored into ha_snapshot_do_send. Per-peer single-flight via ha_state_t.snapshot_inflight[] CAS + slowlane key; in-flight flag cleared on all four terminal paths, mirroring the reconnect offload (task 2.1). Lands dormant like task 3.1: snapshot_lane_fn borrows a standby endpoint it does not own, so flag-ON would race io_worker RDHUP teardown (cross-thread UAF, bug-1197 family). Flag OFF keeps send+teardown serialized on the io_worker. Task 3.4 is the single gate that flips both this and the peerctrl flag ON after establishing endpoint-lifetime discipline; bug-1198 stays open by design until then. The offload flag was initially authored default-ON (would ship the UAF) and corrected to OFF in ha.c and the ha.h accessor doc (bug-1210). Tests (controller 196/0, 0 new leaks): test_snapshot_offload_runs_on_lane, test_snapshot_inline_when_flag_off, test_snapshot_offload_dedups_per_peer, test_trim_guard_preserves_standby_segments, test_trim_without_standbys_proceeds_normally. Adversarial cpp-review: GO. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01S6fDCtXkkEgupu7rUah1y2
This commit is contained in:
parent
e17a6a613c
commit
6c0523b69b
8 changed files with 2046 additions and 850 deletions
396
.wolf/memory.md
396
.wolf/memory.md
|
|
@ -3076,3 +3076,399 @@
|
|||
| 21:35 | Edited src/lib/raft/raft_sim.c | modified switch() | ~231 |
|
||||
| 21:36 | Edited src/lib/testsuite/test_raft.c | modified for() | ~387 |
|
||||
| 21:39 | Session end: 191 writes across 10 files (raft.h, test_raft.c, tasks.md, raft_sim.c, raft.c) | 28 reads | ~489546 tok |
|
||||
|
||||
## Session: 2026-06-25 23:39
|
||||
|
||||
| Time | Action | File(s) | Outcome | ~Tokens |
|
||||
|------|--------|---------|---------|--------|
|
||||
| 23:56 | Created .kiro/specs/raft-apply-decoupling/brief.md | — | ~2139 |
|
||||
| 23:57 | Created .kiro/specs/job-array-single-wal-record/brief.md | — | ~1330 |
|
||||
| 23:57 | Edited .kiro/steering/roadmap.md | modified Decision() | ~1162 |
|
||||
| 23:57 | Edited .kiro/steering/roadmap.md | inline fix | ~117 |
|
||||
| 06:57 | /kiro-discovery: raft apply-ordering & hook decoupling (Path E) — 2 new spec briefs + roadmap phase | .kiro/specs/raft-apply-decoupling/brief.md, .kiro/specs/job-array-single-wal-record/brief.md, .kiro/steering/roadmap.md | done | ~6k |
|
||||
| 23:58 | Session end: 4 writes across 2 files (brief.md, roadmap.md) | 8 reads | ~148765 tok |
|
||||
| 00:06 | Session end: 4 writes across 2 files (brief.md, roadmap.md) | 8 reads | ~148765 tok |
|
||||
| 00:09 | Created .kiro/specs/raft-apply-decoupling/facts-in-raft.md | — | ~1735 |
|
||||
| 00:12 | Edited .kiro/specs/raft-log-replication/spec.json | 3→3 lines | ~25 |
|
||||
| 00:12 | Edited .kiro/specs/raft-log-replication/spec.json | 1→2 lines | ~72 |
|
||||
| 00:12 | Edited .kiro/specs/raft-commit-safety/spec.json | 3→3 lines | ~25 |
|
||||
| 00:12 | Edited .kiro/specs/raft-commit-safety/spec.json | 1→2 lines | ~77 |
|
||||
| 00:13 | Edited .kiro/specs/ha-consistency-invariants/requirements.md | modified deviation() | ~457 |
|
||||
| 00:13 | Edited .kiro/specs/raft-apply-decoupling/facts-in-raft.md | expanded (+14 lines) | ~493 |
|
||||
| 00:13 | Edited .kiro/specs/raft-apply-decoupling/brief.md | inline fix | ~224 |
|
||||
| 07:10 | suggestion #1: reconciled raft-log-replication + raft-commit-safety spec.json phase tasks-generated→implemented (24/24,18/18 done) | .kiro/specs/raft-*/spec.json | done | ~1k |
|
||||
| 07:11 | suggestion #3: Facts-Apply invariant → criterion 2.9 in ha-consistency-invariants; documented RETAIN apply-on-receipt deviation; reconcile owner=raft-apply-decoupling | requirements.md, facts-in-raft.md, brief.md | done | ~3k |
|
||||
| 00:14 | Session end: 12 writes across 5 files (brief.md, roadmap.md, facts-in-raft.md, spec.json, requirements.md) | 11 reads | ~156291 tok |
|
||||
| 00:18 | Session end: 12 writes across 5 files (brief.md, roadmap.md, facts-in-raft.md, spec.json, requirements.md) | 11 reads | ~156291 tok |
|
||||
| 00:30 | Session end: 12 writes across 5 files (brief.md, roadmap.md, facts-in-raft.md, spec.json, requirements.md) | 11 reads | ~156291 tok |
|
||||
| 00:35 | Session end: 12 writes across 5 files (brief.md, roadmap.md, facts-in-raft.md, spec.json, requirements.md) | 11 reads | ~156291 tok |
|
||||
| 00:41 | Session end: 12 writes across 5 files (brief.md, roadmap.md, facts-in-raft.md, spec.json, requirements.md) | 11 reads | ~156291 tok |
|
||||
| 00:48 | Session end: 12 writes across 5 files (brief.md, roadmap.md, facts-in-raft.md, spec.json, requirements.md) | 11 reads | ~156291 tok |
|
||||
| 01:01 | Session end: 12 writes across 5 files (brief.md, roadmap.md, facts-in-raft.md, spec.json, requirements.md) | 11 reads | ~156291 tok |
|
||||
| 01:11 | Session end: 12 writes across 5 files (brief.md, roadmap.md, facts-in-raft.md, spec.json, requirements.md) | 11 reads | ~156291 tok |
|
||||
| 01:17 | Edited .kiro/specs/raft-apply-decoupling/facts-in-raft.md | inline fix | ~70 |
|
||||
| 01:18 | Edited .kiro/specs/raft-apply-decoupling/facts-in-raft.md | 4→2 lines | ~304 |
|
||||
| 01:18 | Edited .kiro/specs/raft-apply-decoupling/facts-in-raft.md | modified ownership() | ~1363 |
|
||||
| 01:19 | Edited .kiro/specs/raft-apply-decoupling/facts-in-raft.md | inline fix | ~54 |
|
||||
| 07:35 | facts-through-raft design converged: D1 resolved (block-but-durable); risk register A–G (A solved by resync, B open, C reclassified to request-handling correctness) recorded | .kiro/specs/raft-apply-decoupling/facts-in-raft.md | done | ~4k |
|
||||
| 01:19 | Session end: 16 writes across 5 files (brief.md, roadmap.md, facts-in-raft.md, spec.json, requirements.md) | 12 reads | ~160289 tok |
|
||||
| 01:52 | Session end: 16 writes across 5 files (brief.md, roadmap.md, facts-in-raft.md, spec.json, requirements.md) | 29 reads | ~240766 tok |
|
||||
| 02:06 | Session end: 16 writes across 5 files (brief.md, roadmap.md, facts-in-raft.md, spec.json, requirements.md) | 29 reads | ~240766 tok |
|
||||
| 02:16 | Session end: 16 writes across 5 files (brief.md, roadmap.md, facts-in-raft.md, spec.json, requirements.md) | 29 reads | ~240766 tok |
|
||||
| 02:26 | Edited .kiro/specs/raft-apply-decoupling/facts-in-raft.md | expanded (+14 lines) | ~600 |
|
||||
| 02:27 | Edited .kiro/specs/raft-apply-decoupling/brief.md | modified REQUIREMENT() | ~187 |
|
||||
| 03:10 | Edited .kiro/specs/raft-apply-decoupling/facts-in-raft.md | modified CRITICAL() | ~1020 |
|
||||
| 03:10 | Edited .kiro/steering/roadmap.md | modified work() | ~498 |
|
||||
| 08:05 | blocking-audit: protocol drive NOT fully event-driven. 3 CRITICAL iomgr-blockers (snapshot send ha.c:2702, config-push wait config_repl.c:1332, DNS+connect netio.c:289 on delaymgr) beyond known commit barrier. Split into P1 (commit-barrier async, in raft-apply-decoupling) + P2 (drive hardening, recommend new spec raft-drive-async) | facts-in-raft.md, roadmap.md | done | ~5k |
|
||||
| 03:10 | Session end: 20 writes across 5 files (brief.md, roadmap.md, facts-in-raft.md, spec.json, requirements.md) | 33 reads | ~256515 tok |
|
||||
|
||||
## Session: 2026-06-25 03:17
|
||||
|
||||
| Time | Action | File(s) | Outcome | ~Tokens |
|
||||
|------|--------|---------|---------|--------|
|
||||
| 03:33 | Edited .kiro/specs/raft-apply-decoupling/facts-in-raft.md | modified completeness() | ~985 |
|
||||
| 08:40 | P2 refined: delaymgr/iomgr "trigger-don't-execute" offload; reuse COMMIT_WAIT_RESERVED admission cap (commit.c:195); API gap = need general non-IO vtask submit (vtask_handle_msg is IO-bound); reconnect→capped vtask, snapshot/config-push→slow-lane; heartbeat safe only when BOTH delaymgr+iomgr non-blocking; need partition (unreachable not killed) test | facts-in-raft.md | done | ~3k |
|
||||
| 03:33 | Session end: 1 writes across 1 files (facts-in-raft.md) | 1 reads | ~5841 tok |
|
||||
| 03:33 | Session end: 1 writes across 1 files (facts-in-raft.md) | 1 reads | ~5841 tok |
|
||||
| 03:39 | Session end: 1 writes across 1 files (facts-in-raft.md) | 1 reads | ~5841 tok |
|
||||
| 03:47 | Session end: 1 writes across 1 files (facts-in-raft.md) | 1 reads | ~5841 tok |
|
||||
| 03:57 | Session end: 1 writes across 1 files (facts-in-raft.md) | 1 reads | ~5841 tok |
|
||||
| 04:01 | Edited .kiro/steering/ha-async-io.md | modified SUPERSEDES() | ~792 |
|
||||
| 09:05 | STEERING CHANGE: ha-async-io.md thread-role contract rewritten to 4-role model (iomgr non-blocking+dispatch / vtask bounded-blocking-under-reservation / delaymgr trigger-only-NEVER-block / slow-lane for long IO). SUPERSEDES old "delaymgr: connect/file IO Permitted" — root cause of P2 blocking findings (delaymgr is BOTH heartbeat-driver AND blocking-sink = conflict). Applies to all components. | .kiro/steering/ha-async-io.md | done | ~2k |
|
||||
| 04:01 | Session end: 2 writes across 2 files (facts-in-raft.md, ha-async-io.md) | 2 reads | ~9376 tok |
|
||||
| 04:36 | Created .kiro/specs/raft-drive-async/brief.md | — | ~2576 |
|
||||
| 04:36 | Edited .kiro/steering/roadmap.md | modified prerequisites() | ~1026 |
|
||||
| 09:25 | created raft-drive-async brief (P2 promoted, START FIRST); restructured roadmap "Raft Drive & Apply Async family" dependency order: raft-drive-async → raft-apply-decoupling(+P1 keystone) → worker-rejoin-resync(HARD for facts) → job-array-single-wal-record; worker-rejoin-resync elevated to HARD prereq | raft-drive-async/brief.md, roadmap.md | done | ~4k |
|
||||
| 04:37 | Created .kiro/specs/raft-drive-async/spec.json | — | ~129 |
|
||||
| 04:37 | Created .kiro/specs/raft-drive-async/requirements.md | — | ~736 |
|
||||
| 09:40 | /kiro-spec-init raft-drive-async: spec.json + requirements.md scaffolded (phase=initialized); ready for /kiro-spec-requirements | .kiro/specs/raft-drive-async/ | done | ~1k |
|
||||
| 04:38 | Session end: 6 writes across 6 files (facts-in-raft.md, ha-async-io.md, brief.md, roadmap.md, spec.json) | 3 reads | ~21521 tok |
|
||||
| 05:01 | Created .kiro/specs/raft-drive-async/requirements.md | — | ~3304 |
|
||||
| 05:02 | Edited .kiro/specs/raft-drive-async/spec.json | 8→8 lines | ~55 |
|
||||
| 09:50 | /kiro-spec-requirements raft-drive-async: 8 reqs generated (liveness during long IO, unreachable-peer/bounded-connect, admission protection, ordering correctness, thread-role compliance, NO-REGRESSION naming existing HA suites, network-partition verification, heartbeat perf). phase=requirements-generated. Confirmed NO partition test exists today (kill-only soak). | requirements.md, spec.json | done | ~3k |
|
||||
| 05:02 | Session end: 8 writes across 6 files (facts-in-raft.md, ha-async-io.md, brief.md, roadmap.md, spec.json) | 4 reads | ~25245 tok |
|
||||
| 06:36 | Created .kiro/specs/raft-drive-async/research.md | — | ~2830 |
|
||||
| 10:05 | /kiro-validate-gap raft-drive-async: research.md written. KEY GAP: existing deferral idiom delay_task_ms runs on delaymgr (heartbeat thread) — codebase can defer-off-iomgr but only target is a liveness thread; missing a non-liveness slow lane. Building blocks exist (vtask_alloc/init/enq, fsync_worker+push_thread precedent, xce_probe_config_tag bounded-connect). Truly missing: slow-lane executor + iomgr-post(eventfd) marshal-back + partition test. Recommend Option C hybrid, phased (Ph1 bounded-connect first). | research.md | done | ~4k |
|
||||
| 06:36 | Session end: 9 writes across 7 files (facts-in-raft.md, ha-async-io.md, brief.md, roadmap.md, spec.json) | 4 reads | ~28277 tok |
|
||||
| 06:49 | Edited .kiro/specs/raft-drive-async/research.md | inline fix | ~13 |
|
||||
| 06:49 | Session end: 10 writes across 7 files (facts-in-raft.md, ha-async-io.md, brief.md, roadmap.md, spec.json) | 4 reads | ~28291 tok |
|
||||
| 06:56 | Session end: 10 writes across 7 files (facts-in-raft.md, ha-async-io.md, brief.md, roadmap.md, spec.json) | 4 reads | ~28291 tok |
|
||||
| 07:02 | Edited .kiro/specs/raft-drive-async/research.md | "VTASK_IO" → "endpoint_block_tasks()" | ~251 |
|
||||
| 07:03 | Edited .kiro/specs/raft-drive-async/requirements.md | 4→6 lines | ~405 |
|
||||
| 07:03 | Edited .kiro/specs/raft-drive-async/research.md | "VTASK_IO" → "endpoint_block_tasks" | ~84 |
|
||||
| 10:20 | R4 de-risked: endpoint_block_tasks/unblock_tasks (netio.c:896) is the explicit per-endpoint sequential primitive (auto on VTASK_IO path) — R4.1 = reuse not new logic. Added R4.2 (sequential) + R4.3 (don't hold block across long I/O) to requirements; clarified inbound-process vs outbound-send order; updated research.md asset map + design trap. | requirements.md, research.md, cerebrum.md | done | ~2k |
|
||||
| 07:03 | Session end: 13 writes across 7 files (facts-in-raft.md, ha-async-io.md, brief.md, roadmap.md, spec.json) | 6 reads | ~38869 tok |
|
||||
| 07:08 | Edited .kiro/specs/raft-drive-async/research.md | "iomgr_post" → "iomgr_monitor" | ~268 |
|
||||
| 07:08 | Edited .kiro/specs/raft-drive-async/research.md | inline fix | ~88 |
|
||||
| 07:08 | Edited .kiro/specs/raft-drive-async/research.md | 6→6 lines | ~182 |
|
||||
| 07:08 | Edited .kiro/specs/raft-drive-async/research.md | inline fix | ~87 |
|
||||
| 07:09 | Edited .kiro/specs/raft-drive-async/research.md | inline fix | ~45 |
|
||||
| 07:09 | Edited .kiro/specs/raft-drive-async/research.md | primitive() → iomgr() | ~184 |
|
||||
| 07:09 | Edited .kiro/specs/raft-drive-async/research.md | "iomgr-post" → "iomgr_monitor" | ~84 |
|
||||
| 07:09 | Edited .kiro/specs/raft-drive-async/research.md | inline fix | ~87 |
|
||||
| 07:09 | Edited .kiro/specs/raft-drive-async/requirements.md | inline fix | ~62 |
|
||||
| 10:35 | CORRECTED earlier overstatement: NO new iomgr-post/eventfd primitive needed. epoll registration already thread-safe via lock-guarded iomgr_monitor/iomgr_unmonitor (netio.c:1046-1082, mylock iomgr->lock); connect→register already runs from delaymgr/main today. Worker prepares endpoint then calls iomgr_monitor. Removed the Medium-High risk item; overall risk L→Medium; the one real gap is now just the slow-lane executor. Updated research.md (all spots) + requirements R4.4. | research.md, requirements.md | done | ~2k |
|
||||
| 07:10 | Session end: 22 writes across 7 files (facts-in-raft.md, ha-async-io.md, brief.md, roadmap.md, spec.json) | 7 reads | ~43065 tok |
|
||||
| 08:12 | Edited .kiro/specs/raft-drive-async/research.md | inline fix | ~187 |
|
||||
| 08:12 | Edited .kiro/specs/raft-drive-async/research.md | inline fix | ~64 |
|
||||
| 08:12 | Edited .kiro/specs/raft-drive-async/brief.md | inline fix | ~90 |
|
||||
| 08:12 | Edited .kiro/specs/raft-drive-async/brief.md | inline fix | ~82 |
|
||||
| 08:12 | Edited .kiro/specs/raft-drive-async/requirements.md | inline fix | ~78 |
|
||||
| 08:13 | Edited .kiro/steering/roadmap.md | inline fix | ~120 |
|
||||
| 10:55 | election-iomgr-refactor scope-check: verdict ADJACENT-SAME-AREA → raft-drive-async stays STANDALONE. e-i-r is fully implemented, fixed STARTUP blocking (pthread election pre-cluster_run), provides reusable primitives (delay_task_ms, on_connected, ha_start_election_async/non-blocking vote fan-out); touched NONE of raft-drive-async's runtime targets; designed under OLD thread-role rule. Resolved fold-in question across research.md/brief.md/requirements.md/roadmap. raft-drive-async ready for /kiro-spec-design. | research.md, brief.md, requirements.md, roadmap.md | done | ~3k |
|
||||
| 08:13 | Session end: 28 writes across 7 files (facts-in-raft.md, ha-async-io.md, brief.md, roadmap.md, spec.json) | 12 reads | ~59606 tok |
|
||||
| 08:18 | Created .kiro/specs/raft-drive-async/design.md | — | ~5952 |
|
||||
| 11:20 | /kiro-spec-design raft-drive-async: design.md written (brownfield extension). Key synthesis: dedicated slow-lane executor (separate threads) as offload target → R3 structural + "general non-IO vtask submit" SUPERSEDED (not needed) → only genuinely-new component = slowlane.{c,h}. 4-phase migration. phase=design-generated. | design.md, research.md, spec.json | done | ~6k |
|
||||
| 08:18 | Session end: 29 writes across 8 files (facts-in-raft.md, ha-async-io.md, brief.md, roadmap.md, spec.json) | 12 reads | ~65983 tok |
|
||||
| 08:21 | Session end: 29 writes across 8 files (facts-in-raft.md, ha-async-io.md, brief.md, roadmap.md, spec.json) | 12 reads | ~65983 tok |
|
||||
| 16:37 | Edited .kiro/specs/raft-drive-async/design.md | expanded (+7 lines) | ~471 |
|
||||
| 16:37 | Edited .kiro/specs/raft-drive-async/design.md | inline fix | ~199 |
|
||||
| 16:37 | Edited .kiro/specs/raft-drive-async/design.md | 1→2 lines | ~118 |
|
||||
| 16:38 | Edited .kiro/specs/raft-drive-async/design.md | modified preservation() | ~227 |
|
||||
| 16:38 | Edited .kiro/specs/raft-drive-async/design.md | modified load() | ~129 |
|
||||
| 11:40 | /kiro-validate-design raft-drive-async: GO (must-resolve-before-Phase-3). Applied 3 design fixes: (1) snapshot/checkpoint concurrency invariant (frozen (term,lsn) boundary, trim-safety vs catch-up cursor, single in-flight checkpoint); (2) disambiguated 2 config-push paths (iomgr transport-only IN scope; admin OP_upgradeConfig w/ waiting requester OUT); (3) commit-advance preservation invariant (ack handling stays fast, cross-endpoint independent, P1 owns barrier async) + 2 new tests. | design.md | done | ~3k |
|
||||
| 16:38 | Session end: 34 writes across 8 files (facts-in-raft.md, ha-async-io.md, brief.md, roadmap.md, spec.json) | 12 reads | ~67208 tok |
|
||||
| 16:41 | Session end: 34 writes across 8 files (facts-in-raft.md, ha-async-io.md, brief.md, roadmap.md, spec.json) | 12 reads | ~67208 tok |
|
||||
| 16:43 | Edited .kiro/specs/raft-drive-async/design.md | inline fix | ~142 |
|
||||
| 16:43 | Edited .kiro/specs/raft-drive-async/design.md | 12→14 lines | ~524 |
|
||||
| 11:55 | re-validate raft-drive-async: fixed phase-sequencing (NEW issue) — slow lane is foundational (reconnect offload also submits to it), reordered P1=SlowLane+BoundedConnect, P2=ReconnectOffload, P3=peer_ctrl→vtask COUPLED with long-op offload (prevents transient R4.3 ep->busy-across-long-IO), P4=partition. Also bounded in-lane snapshot write (lane-saturation guard). | design.md | done | ~2k |
|
||||
| 16:44 | Session end: 36 writes across 8 files (facts-in-raft.md, ha-async-io.md, brief.md, roadmap.md, spec.json) | 13 reads | ~74408 tok |
|
||||
| 17:02 | Created .kiro/specs/raft-drive-async/tasks.md | — | ~2346 |
|
||||
| 12:15 | /kiro-spec-tasks raft-drive-async: tasks.md written, 4 major / 14 sub-tasks mirroring 4-phase migration (P1 lane+bounded-connect, P2 reconnect-offload, P3 peer_ctrl→vtask+offload coupled, P4 partition+regression). All 8 reqs (1.1-8.2) covered. Independent sanity review = PASS. phase=tasks-generated, awaiting approval. | tasks.md, spec.json | done | ~4k |
|
||||
| 17:03 | Session end: 37 writes across 9 files (facts-in-raft.md, ha-async-io.md, brief.md, roadmap.md, spec.json) | 14 reads | ~79445 tok |
|
||||
|
||||
## Session: 2026-06-26 19:36
|
||||
|
||||
| Time | Action | File(s) | Outcome | ~Tokens |
|
||||
|------|--------|---------|---------|--------|
|
||||
|
||||
## Session: 2026-06-26 19:57
|
||||
|
||||
| Time | Action | File(s) | Outcome | ~Tokens |
|
||||
|------|--------|---------|---------|--------|
|
||||
|
||||
## Session: 2026-06-26 20:05
|
||||
|
||||
| Time | Action | File(s) | Outcome | ~Tokens |
|
||||
|------|--------|---------|---------|--------|
|
||||
|
||||
## Session: 2026-06-26 20:20
|
||||
|
||||
| Time | Action | File(s) | Outcome | ~Tokens |
|
||||
|------|--------|---------|---------|--------|
|
||||
| 20:23 | Created ../../../../../claude/.claude/projects/-home-rshen-projects-xce-xce/memory/project_xce_system_map.md | — | ~954 |
|
||||
| 20:23 | Edited ../../../../../claude/.claude/projects/-home-rshen-projects-xce-xce/memory/MEMORY.md | 3→4 lines | ~69 |
|
||||
| 20:24 | Session end: 2 writes across 2 files (project_xce_system_map.md, MEMORY.md) | 3 reads | ~96344 tok |
|
||||
| 20:35 | Session end: 2 writes across 2 files (project_xce_system_map.md, MEMORY.md) | 10 reads | ~113110 tok |
|
||||
| 20:39 | Session end: 2 writes across 2 files (project_xce_system_map.md, MEMORY.md) | 10 reads | ~113110 tok |
|
||||
| 20:41 | Session end: 2 writes across 2 files (project_xce_system_map.md, MEMORY.md) | 10 reads | ~113110 tok |
|
||||
| 20:43 | Session end: 2 writes across 2 files (project_xce_system_map.md, MEMORY.md) | 10 reads | ~113110 tok |
|
||||
| 20:45 | Session end: 2 writes across 2 files (project_xce_system_map.md, MEMORY.md) | 11 reads | ~146282 tok |
|
||||
| 20:46 | Edited .kiro/specs/raft-drive-async/design.md | inline fix | ~324 |
|
||||
| 20:47 | Edited .kiro/specs/raft-drive-async/tasks.md | modified guard() | ~352 |
|
||||
| 20:47 | Edited .kiro/specs/raft-drive-async/design.md | modified preservation() | ~670 |
|
||||
| 20:47 | Edited .kiro/specs/raft-drive-async/design.md | modified environment() | ~333 |
|
||||
| 20:48 | Edited .kiro/specs/raft-drive-async/tasks.md | modified gate() | ~219 |
|
||||
| 20:48 | Edited .kiro/specs/raft-drive-async/tasks.md | inline fix | ~134 |
|
||||
| 20:48 | Edited .kiro/steering/roadmap.md | inline fix | ~390 |
|
||||
| 20:49 | Edited .kiro/steering/roadmap.md | added 1 condition(s) | ~362 |
|
||||
| 20:49 | Edited .kiro/steering/roadmap.md | inline fix | ~275 |
|
||||
| 03:49 | validate-design raft-drive-async: GO + 3 issues folded (deadlock arg, trim-guard bug-1147, in-proc partition); roadmap+buglog updated | design.md tasks.md roadmap.md buglog.json | done | ~4k |
|
||||
| 20:49 | Session end: 11 writes across 5 files (project_xce_system_map.md, MEMORY.md, design.md, tasks.md, roadmap.md) | 12 reads | ~157275 tok |
|
||||
| 20:52 | Session end: 11 writes across 5 files (project_xce_system_map.md, MEMORY.md, design.md, tasks.md, roadmap.md) | 12 reads | ~157275 tok |
|
||||
| 21:10 | Session end: 11 writes across 5 files (project_xce_system_map.md, MEMORY.md, design.md, tasks.md, roadmap.md) | 13 reads | ~157275 tok |
|
||||
| 21:31 | Edited .kiro/specs/raft-drive-async/design.md | 2→3 lines | ~114 |
|
||||
| 21:31 | Edited .kiro/specs/raft-drive-async/design.md | modified enum() | ~1106 |
|
||||
| 21:31 | Edited .kiro/specs/raft-drive-async/design.md | "commit_submit" → "commit.c" | ~450 |
|
||||
| 21:32 | Edited .kiro/specs/raft-drive-async/design.md | 2→4 lines | ~176 |
|
||||
| 21:32 | Edited .kiro/specs/raft-drive-async/design.md | inline fix | ~172 |
|
||||
| 21:32 | Edited .kiro/specs/raft-drive-async/design.md | inline fix | ~36 |
|
||||
| 21:32 | Edited .kiro/specs/raft-drive-async/design.md | inline fix | ~34 |
|
||||
| 21:32 | Edited .kiro/specs/raft-drive-async/tasks.md | expanded (+15 lines) | ~484 |
|
||||
| 21:32 | Edited .kiro/specs/raft-drive-async/tasks.md | 3→3 lines | ~32 |
|
||||
| 21:33 | Edited .kiro/steering/roadmap.md | inline fix | ~196 |
|
||||
| 04:33 | folded Option A (LivenessAdmission) into raft-drive-async: pool-level vtask task-class reservation, new task 1.6, 3.1 depends on it; deepens Issue-1 deadlock fix | design.md tasks.md roadmap.md | done | ~5k |
|
||||
| 21:33 | Session end: 21 writes across 5 files (project_xce_system_map.md, MEMORY.md, design.md, tasks.md, roadmap.md) | 13 reads | ~160275 tok |
|
||||
| 21:36 | Edited .kiro/specs/raft-drive-async/design.md | "VTASK_LIVENESS_RESERVED" → "R = VTASK_LIVENESS_RESERV" | ~293 |
|
||||
| 21:37 | Edited .kiro/specs/raft-drive-async/tasks.md | 4→5 lines | ~170 |
|
||||
| 21:37 | Edited .kiro/specs/raft-drive-async/tasks.md | inline fix | ~92 |
|
||||
| 21:37 | Session end: 24 writes across 5 files (project_xce_system_map.md, MEMORY.md, design.md, tasks.md, roadmap.md) | 13 reads | ~160870 tok |
|
||||
| 21:40 | Edited .kiro/specs/raft-drive-async/tasks.md | inline fix | ~184 |
|
||||
| 21:41 | Edited .kiro/specs/raft-drive-async/tasks.md | inline fix | ~10 |
|
||||
| 21:42 | Edited .kiro/specs/raft-drive-async/tasks.md | inline fix | ~112 |
|
||||
| 04:43 | kiro-spec-tasks raft-drive-async: reviewed (fixed 3.1 stale bullet, 1.3 (P), 1.1/1.6 dup), sanity PASS, 17 sub-tasks APPROVED | tasks.md spec.json | done | ~3k |
|
||||
| 21:43 | Session end: 27 writes across 5 files (project_xce_system_map.md, MEMORY.md, design.md, tasks.md, roadmap.md) | 15 reads | ~167987 tok |
|
||||
| 21:47 | Created src/controller/testsuite/test_drive_async_config.c | — | ~990 |
|
||||
| 21:47 | Edited src/controller/testsuite/controller_test.c | 2→3 lines | ~30 |
|
||||
| 21:47 | Edited src/controller/testsuite/controller_test.c | 4→5 lines | ~30 |
|
||||
| 21:47 | Edited src/controller/meson.build | 2→3 lines | ~30 |
|
||||
| 21:48 | Edited src/include/config.h | expanded (+21 lines) | ~334 |
|
||||
| 21:48 | Edited src/controller/ha.h | modified invariant() | ~451 |
|
||||
| 21:49 | Edited src/controller/ha.c | added 1 condition(s) | ~279 |
|
||||
| 21:49 | Edited src/controller/cluster.c | added 1 condition(s) | ~415 |
|
||||
| 21:50 | raft-drive-async task 1.1: drive-async config constants + pure liveness-reservation clamp helper (RED→GREEN, 8 unit tests) | config.h, ha.h, ha.c, cluster.c, testsuite/test_drive_async_config.c, controller_test.c, meson.build | 8/8 PASS; commit_engine+ha_cluster regression clean | ~12k |
|
||||
| 21:57 | Edited .kiro/specs/raft-drive-async/tasks.md | inline fix | ~14 |
|
||||
| 21:57 | Edited .kiro/specs/raft-drive-async/tasks.md | expanded (+6 lines) | ~367 |
|
||||
| 22:01 | Created src/controller/include/slowlane.h | — | ~1021 |
|
||||
| 22:01 | Edited src/controller/include/slowlane.h | modified Returns() | ~203 |
|
||||
| 22:01 | Edited src/controller/include/slowlane.h | 3→4 lines | ~31 |
|
||||
| 22:02 | Created src/controller/testsuite/test_slowlane.c | — | ~2993 |
|
||||
| 22:02 | Edited src/controller/meson.build | 2→3 lines | ~27 |
|
||||
| 22:02 | Edited src/controller/meson.build | 5→6 lines | ~18 |
|
||||
| 22:02 | Edited src/controller/meson.build | 6→7 lines | ~25 |
|
||||
| 22:03 | Edited src/controller/testsuite/controller_test.c | 1→2 lines | ~20 |
|
||||
| 22:03 | Edited src/controller/testsuite/controller_test.c | 3→4 lines | ~23 |
|
||||
| 22:03 | Created src/controller/slowlane.c | — | ~134 |
|
||||
| 22:05 | Created src/controller/slowlane.c | — | ~2238 |
|
||||
| 22:06 | Edited src/controller/slowlane.c | 7→5 lines | ~22 |
|
||||
| 22:06 | Edited src/include/xce/cluster_def.h | 3→4 lines | ~38 |
|
||||
| 22:06 | Edited src/include/xce/cluster_def.h | 1→2 lines | ~49 |
|
||||
| 22:06 | Edited src/controller/cluster.c | added 2 condition(s) | ~316 |
|
||||
| 22:06 | Edited src/controller/cluster.c | expanded (+6 lines) | ~143 |
|
||||
| 05:09 | task 1.2 SlowLane executor: new slowlane.c/.h + test_slowlane.c (7 tests RED->GREEN), wired init/fini into cluster.c lifecycle + cluster_def.h field | src/controller/slowlane.c, src/controller/include/slowlane.h, src/controller/testsuite/test_slowlane.c, src/controller/cluster.c, src/include/xce/cluster_def.h, src/controller/meson.build, src/controller/testsuite/controller_test.c | GREEN 7/7, full suite 194 pass | ~40k |
|
||||
| 22:23 | Edited .kiro/specs/raft-drive-async/tasks.md | inline fix | ~11 |
|
||||
| 23:50 | Created src/lib/testsuite/test_netio_bounded_connect.c | — | ~1723 |
|
||||
| 23:50 | Edited src/lib/testsuite/test.c | 1→2 lines | ~25 |
|
||||
| 23:51 | Edited src/lib/testsuite/test.c | 2→3 lines | ~32 |
|
||||
| 23:51 | Edited src/lib/meson.build | 1→2 lines | ~33 |
|
||||
| 23:51 | Edited src/lib/netio.c | 4→5 lines | ~29 |
|
||||
| 23:51 | Edited src/lib/netio.c | 4→5 lines | ~26 |
|
||||
| 23:51 | Edited src/lib/netio.c | added 7 condition(s) | ~847 |
|
||||
| 23:52 | Edited src/lib/netio.c | modified endpoint_connect() | ~75 |
|
||||
| 23:52 | Edited src/include/netio.h | expanded (+6 lines) | ~124 |
|
||||
| 23:52 | Edited src/controller/ha.c | 1→2 lines | ~32 |
|
||||
| 23:52 | Edited src/lib/client.c | 2→3 lines | ~49 |
|
||||
| 23:52 | Edited src/lib/xcectx.c | inline fix | ~20 |
|
||||
| 23:53 | Edited src/lib/client.c | 2→3 lines | ~27 |
|
||||
| 23:53 | Edited src/lib/xcectx.c | 3→4 lines | ~30 |
|
||||
| 07:00 | task 1.3 bound peer connect (socket_connect O_NONBLOCK-before-connect + poll bound, +connect_timeout_ms; updated all 5 endpoint_connect callers) | netio.c/.h, ha.c, client.c, xcectx.c, test_netio_bounded_connect.c | GREEN: lib 278/0, controller 194/0, broad build OK | ~30k |
|
||||
| 00:10 | Edited .kiro/specs/raft-drive-async/tasks.md | inline fix | ~10 |
|
||||
| 00:10 | Edited .kiro/specs/raft-drive-async/tasks.md | inline fix | ~9 |
|
||||
| 00:10 | Edited .kiro/specs/raft-drive-async/tasks.md | inline fix | ~11 |
|
||||
| 00:15 | Created src/lib/testsuite/test_vtask_admission.c | — | ~2167 |
|
||||
| 00:15 | Edited src/lib/testsuite/test.c | modified setUp() | ~45 |
|
||||
| 00:15 | Edited src/lib/testsuite/test.c | 5→6 lines | ~35 |
|
||||
| 00:15 | Edited src/lib/meson.build | 4→5 lines | ~56 |
|
||||
| 00:16 | Edited src/include/vtaskmgr.h | modified int() | ~279 |
|
||||
| 00:16 | Edited src/include/vtaskmgr.h | modified struct() | ~62 |
|
||||
| 00:16 | Edited src/include/vtaskmgr.h | modified struct() | ~193 |
|
||||
| 00:17 | Edited src/include/vtaskmgr.h | expanded (+28 lines) | ~443 |
|
||||
| 00:17 | Edited src/lib/vtaskmgr.c | 9→11 lines | ~50 |
|
||||
| 00:17 | Edited src/lib/vtaskmgr.c | modified vtask_init() | ~69 |
|
||||
| 00:17 | Edited src/lib/vtaskmgr.c | added 1 condition(s) | ~225 |
|
||||
| 00:17 | Edited src/lib/vtaskmgr.c | modified if() | ~114 |
|
||||
| 00:18 | Edited src/lib/vtaskmgr.c | added 14 condition(s) | ~859 |
|
||||
| 00:19 | Edited src/controller/include/commit.h | 7→12 lines | ~159 |
|
||||
| 00:19 | Edited src/controller/include/commit.h | expanded (+6 lines) | ~150 |
|
||||
| 00:19 | Edited src/controller/include/commit.h | expanded (+8 lines) | ~170 |
|
||||
| 00:19 | Edited src/controller/commit.c | added 4 condition(s) | ~447 |
|
||||
| 00:19 | Edited src/controller/commit.c | 2→2 lines | ~16 |
|
||||
| 00:20 | Edited src/controller/commit.c | modified XCE_TESTING() | ~186 |
|
||||
| 00:20 | Edited src/controller/commit.c | modified XCE_TESTING() | ~37 |
|
||||
| 00:20 | Edited src/controller/commit.c | 4→5 lines | ~56 |
|
||||
| 00:20 | Edited src/controller/commit.c | added 1 condition(s) | ~152 |
|
||||
| 00:20 | Edited src/controller/cluster.c | expanded (+9 lines) | ~252 |
|
||||
| 00:21 | Created src/controller/testsuite/test_commit_admission_pool.c | — | ~1947 |
|
||||
| 00:21 | Edited src/controller/testsuite/test_commit_admission_pool.c | 4→4 lines | ~43 |
|
||||
| 00:22 | Edited src/controller/meson.build | 3→4 lines | ~39 |
|
||||
| 00:22 | Edited src/controller/testsuite/controller_test.c | 2→3 lines | ~33 |
|
||||
| 00:22 | Edited src/controller/testsuite/controller_test.c | 2→3 lines | ~26 |
|
||||
| 00:28 | Edited src/controller/testsuite/test_commit_admission_pool.c | modified test_commit_fold_uses_pool_cap() | ~845 |
|
||||
| 00:42 | Edited .kiro/specs/raft-drive-async/tasks.md | inline fix | ~20 |
|
||||
| 00:42 | Edited .kiro/specs/raft-drive-async/tasks.md | inline fix | ~11 |
|
||||
| 00:43 | Edited .kiro/specs/raft-drive-async/tasks.md | 1→2 lines | ~339 |
|
||||
| 00:47 | Edited src/controller/ha.h | modified reconnect() | ~347 |
|
||||
| 00:47 | Edited src/controller/ha.h | modified submits() | ~476 |
|
||||
| 00:48 | Edited src/controller/ha.c | modified submits() | ~488 |
|
||||
| 00:48 | Edited src/controller/ha.c | added 10 condition(s) | ~2685 |
|
||||
| 00:50 | Edited src/controller/testsuite/test_ha_liveness.c | 4→7 lines | ~36 |
|
||||
| 00:51 | Edited src/controller/testsuite/test_ha_liveness.c | added 5 condition(s) | ~2828 |
|
||||
| 00:51 | Edited src/controller/testsuite/test_ha_liveness.c | 3→7 lines | ~105 |
|
||||
| 00:52 | Edited src/controller/testsuite/test_ha_liveness.c | modified test_reconnect_offload_tick_returns_promptly() | ~50 |
|
||||
| 00:52 | Edited src/controller/testsuite/test_ha_liveness.c | modified test_reconnect_offload_tick_returns_promptly() | ~38 |
|
||||
| 00:52 | Edited src/controller/testsuite/test_ha_liveness.c | 3→4 lines | ~58 |
|
||||
| 00:53 | Edited src/controller/testsuite/test_ha_liveness.c | 4→3 lines | ~36 |
|
||||
| 00:56 | Edited src/controller/ha.h | removed 16 lines | ~40 |
|
||||
| 00:56 | Edited src/controller/ha.h | modified submits() | ~206 |
|
||||
| 00:57 | Edited src/controller/ha.c | removed 30 lines | ~40 |
|
||||
| 00:57 | Edited src/controller/ha.c | modified submits() | ~448 |
|
||||
| 00:58 | Edited src/controller/ha.c | modified if() | ~242 |
|
||||
| 07:59 | Task 2.1 reconnect offload: split ha_connect_to_peer→prep/finish/lane, per-peer in-flight dedup, slowlane_submit; flag default ON; 3 tests in test_ha_liveness | ha.c ha.h test_ha_liveness.c | RED captured (inline tick stalls), GREEN 196/196 pass | ~12k |
|
||||
| 01:08 | Edited .kiro/specs/raft-drive-async/tasks.md | inline fix | ~17 |
|
||||
| 01:08 | Edited .kiro/specs/raft-drive-async/tasks.md | modified success() | ~223 |
|
||||
|
||||
## Session: 2026-06-26 01:11
|
||||
|
||||
| Time | Action | File(s) | Outcome | ~Tokens |
|
||||
|------|--------|---------|---------|--------|
|
||||
|
||||
## Session: 2026-06-26 01:12
|
||||
|
||||
| Time | Action | File(s) | Outcome | ~Tokens |
|
||||
|------|--------|---------|---------|--------|
|
||||
| 01:12 | Edited src/controller/testsuite/test_ha_liveness.c | modified criteria() | ~1760 |
|
||||
| 01:12 | Edited src/controller/testsuite/test_ha_liveness.c | 4→7 lines | ~103 |
|
||||
| 01:13 | Edited src/controller/testsuite/test_ha_liveness.c | 5→9 lines | ~128 |
|
||||
| 01:13 | Edited src/controller/ha.c | modified XCE_TESTING() | ~119 |
|
||||
| 01:13 | Edited src/controller/ha.c | 2→3 lines | ~41 |
|
||||
| 01:13 | Session end: 5 writes across 2 files (test_ha_liveness.c, ha.c) | 1 reads | ~84302 tok |
|
||||
| 01:14 | Edited src/controller/ha.c | added 2 condition(s) | ~829 |
|
||||
| 01:14 | Edited src/controller/ha.c | endpoint_put() → free() | ~101 |
|
||||
| 01:15 | Edited src/controller/ha.c | modified on_standby_connected_for_test() | ~140 |
|
||||
| 01:15 | Edited src/controller/ha.c | modified if() | ~54 |
|
||||
| 01:16 | Edited src/controller/ha.c | modified if() | ~43 |
|
||||
| 01:18 | Edited src/controller/ha.c | 9→13 lines | ~163 |
|
||||
| 01:19 | Edited src/controller/ha.c | 6→8 lines | ~68 |
|
||||
| 01:19 | Edited src/controller/ha.c | modified if() | ~148 |
|
||||
| 01:20 | Edited src/controller/ha.c | modified if() | ~102 |
|
||||
| 01:20 | Edited src/controller/ha.c | 6→7 lines | ~84 |
|
||||
| 01:20 | Edited src/controller/ha.c | modified if() | ~68 |
|
||||
| 01:21 | Edited src/controller/ha.c | added 1 condition(s) | ~332 |
|
||||
| 01:21 | Edited src/controller/testsuite/test_ha_liveness.c | 6→9 lines | ~120 |
|
||||
|
||||
## Session: 2026-06-26 02:44
|
||||
|
||||
| Time | Action | File(s) | Outcome | ~Tokens |
|
||||
|------|--------|---------|---------|--------|
|
||||
|
||||
## Session: 2026-06-26 02:44
|
||||
|
||||
| Time | Action | File(s) | Outcome | ~Tokens |
|
||||
|------|--------|---------|---------|--------|
|
||||
|
||||
## Session: 2026-06-26 02:46
|
||||
|
||||
| Time | Action | File(s) | Outcome | ~Tokens |
|
||||
|------|--------|---------|---------|--------|
|
||||
| 02:56 | Edited .kiro/specs/raft-drive-async/tasks.md | inline fix | ~14 |
|
||||
| 03:01 | Edited src/controller/testsuite/test_ha_liveness.c | added 3 condition(s) | ~2567 |
|
||||
| 03:01 | Edited src/controller/testsuite/test_ha_liveness.c | 4→7 lines | ~118 |
|
||||
| 10:03 | raft-drive-async task 2.3: sustained reconnect-offload integration tests (4-node, 2 survivors, 3 ticks) | test_ha_liveness.c | GREEN+RED pass, suite 25/0 | ~6k |
|
||||
| 03:05 | Edited .kiro/specs/raft-drive-async/tasks.md | inline fix | ~12 |
|
||||
| 03:20 | Edited src/controller/ha.h | expanded (+6 lines) | ~186 |
|
||||
| 03:20 | Edited src/controller/ha.h | expanded (+26 lines) | ~408 |
|
||||
| 03:21 | Edited src/controller/ha.c | modified ha_reconnect_offload_enabled() | ~387 |
|
||||
| 03:21 | Edited src/controller/ha.c | 2→3 lines | ~58 |
|
||||
| 03:21 | Edited src/controller/ha.c | 3→4 lines | ~70 |
|
||||
| 03:21 | Edited src/controller/ha.c | modified frees() | ~297 |
|
||||
| 03:22 | Edited src/controller/ha.c | modified ownership() | ~200 |
|
||||
| 03:22 | Edited src/controller/ha.c | modified frees() | ~311 |
|
||||
| 03:23 | Edited src/controller/ha.c | added 7 condition(s) | ~2148 |
|
||||
| 03:24 | Edited src/controller/cluster.c | modified if() | ~134 |
|
||||
| 03:27 | Edited src/controller/testsuite/test_ha_liveness.c | added 4 condition(s) | ~2788 |
|
||||
| 03:27 | Edited src/controller/testsuite/test_ha_liveness.c | 3→7 lines | ~108 |
|
||||
| 03:56 | Edited src/include/vtaskmgr.h | expanded (+10 lines) | ~219 |
|
||||
| 03:56 | Edited src/lib/vtaskmgr.c | 4→5 lines | ~49 |
|
||||
| 03:57 | Edited src/lib/vtaskmgr.c | added 1 condition(s) | ~335 |
|
||||
| 03:57 | Edited src/controller/ha.c | expanded (+7 lines) | ~189 |
|
||||
| 03:58 | Edited src/controller/ha.c | modified peer_ctrl_classify() | ~397 |
|
||||
| 03:58 | Edited src/controller/ha.c | modified terminate() | ~431 |
|
||||
| 03:59 | Edited src/controller/ha.c | modified HAZARD() | ~296 |
|
||||
| 04:00 | Edited src/controller/testsuite/test_ha_liveness.c | 2→5 lines | ~106 |
|
||||
| 04:00 | Edited src/controller/testsuite/test_ha_liveness.c | 3→3 lines | ~36 |
|
||||
| 04:00 | Edited src/controller/testsuite/test_ha_liveness.c | 3→5 lines | ~67 |
|
||||
| 04:00 | Edited src/controller/testsuite/test_ha_liveness.c | 3→5 lines | ~74 |
|
||||
| 04:04 | Edited src/controller/ha.c | inline fix | ~6 |
|
||||
| 04:05 | Edited src/controller/ha.c | inline fix | ~6 |
|
||||
| 04:13 | Edited .kiro/specs/raft-drive-async/tasks.md | modified FIX() | ~767 |
|
||||
| 04:31 | Edited src/controller/persist.c | modified runs() | ~806 |
|
||||
| 04:33 | Edited src/controller/testsuite/test_e2e_checkpoint.c | added error handling | ~218 |
|
||||
| 04:34 | Edited src/controller/testsuite/test_e2e_checkpoint.c | added error handling | ~1674 |
|
||||
| 04:35 | Edited src/controller/testsuite/test_e2e_checkpoint.c | file_exists_in() → seg_file_exists() | ~143 |
|
||||
| 04:35 | Edited src/controller/testsuite/test_e2e_checkpoint.c | inline fix | ~4 |
|
||||
| 04:37 | Edited src/controller/testsuite/test_e2e_checkpoint.c | modified ckpt_drop_broadcast() | ~226 |
|
||||
| 04:39 | Edited src/controller/ha.h | modified send() | ~274 |
|
||||
| 04:41 | Edited src/controller/ha.c | modified ON() | ~311 |
|
||||
| 04:41 | Edited src/controller/ha.h | modified ON() | ~159 |
|
||||
|
||||
## Session: 2026-06-26 05:18
|
||||
|
||||
| Time | Action | File(s) | Outcome | ~Tokens |
|
||||
|------|--------|---------|---------|--------|
|
||||
|
||||
## Session: 2026-06-26 05:18
|
||||
|
||||
| Time | Action | File(s) | Outcome | ~Tokens |
|
||||
|------|--------|---------|---------|--------|
|
||||
|
||||
## Session: 2026-06-26 07:08
|
||||
|
||||
| Time | Action | File(s) | Outcome | ~Tokens |
|
||||
|------|--------|---------|---------|--------|
|
||||
|
||||
## Session: 2026-06-26 07:10
|
||||
|
||||
| Time | Action | File(s) | Outcome | ~Tokens |
|
||||
|------|--------|---------|---------|--------|
|
||||
| 08:16 | Edited src/controller/testsuite/test_ha_liveness.c | added 3 condition(s) | ~2312 |
|
||||
| 08:16 | Edited src/controller/testsuite/test_ha_liveness.c | 4→8 lines | ~112 |
|
||||
| 08:28 | Edited src/controller/ha.c | added 9 condition(s) | ~1771 |
|
||||
| 08:28 | Edited src/controller/ha.c | reduced (-15 lines) | ~145 |
|
||||
| 08:29 | Edited src/controller/ha.c | modified OFF() | ~340 |
|
||||
| 08:31 | Edited src/controller/ha.c | expanded (+7 lines) | ~432 |
|
||||
| 08:40 | Edited src/controller/ha.h | thread() → safe() | ~161 |
|
||||
| 08:40 | Edited src/controller/persist.c | modified runs() | ~110 |
|
||||
| 08:41 | Edited .kiro/specs/raft-drive-async/tasks.md | inline fix | ~42 |
|
||||
| 08:42 | Edited .kiro/specs/raft-drive-async/tasks.md | inline fix | ~41 |
|
||||
| 08:42 | Edited .kiro/specs/raft-drive-async/tasks.md | modified completion() | ~830 |
|
||||
| 08:42 | raft-drive-async 3.2: snapshot SlowLane offload (Part A, DORMANT flag-OFF) + trim cursor-guard (Part B, LIVE) | ha.c, ha.h, persist.c, test_ha_liveness.c, test_e2e_checkpoint.c | 196/0 ctrl tests, 0 new leaks, cpp-review GO; caught+fixed default-ON UAF (bug-1210) | ~62k |
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue