From 86e442c9cd39e36edef402ad575923d8a387053b Mon Sep 17 00:00:00 2001 From: Rongsong Shen Date: Tue, 11 Aug 2026 04:58:39 +0000 Subject: [PATCH] docs(component-failover-adoption): mark task 1.3 complete, no new code needed Task 1.3's full checklist (constant-equality assertion, candidate order, one-candidate-no-branch, truncation-with-warning, NULL/empty rejection) was already satisfied by tasks 1.1 and 1.2's test coverage. Verified fresh against the current test suite; no implementer/reviewer cycle needed since there is no new diff. --- .kiro/specs/component-failover-adoption/tasks.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.kiro/specs/component-failover-adoption/tasks.md b/.kiro/specs/component-failover-adoption/tasks.md index 4a1ea14b..d0ceb746 100644 --- a/.kiro/specs/component-failover-adoption/tasks.md +++ b/.kiro/specs/component-failover-adoption/tasks.md @@ -16,7 +16,7 @@ - _Requirements: 1.1, 1.2, 1.3, 1.5, 1.6, 1.7_ - _Depends: 1.1_ -- [ ] 1.3 Unit test the conversion helper and the constant reconciliation +- [x] 1.3 Unit test the conversion helper and the constant reconciliation - Cover: candidate order preserved; one-candidate input produces a one-master output with no branch taken; truncation-with-warning exercised directly against the defensive path; `NULL`/empty-candidate-list rejection - Add a compile-time or unit-level assertion that the two candidate-count constants stay equal, guarding against reintroducing the divergence - Observable completion: new test cases pass under the existing libxce unit test run, including the constant-equality assertion @@ -163,3 +163,4 @@ - Task 1.1: `src/lib/cluster.c:99-102`'s `xce_cluster_config_validate()` still has a third hardcoded `>3` WARN check (message says "<=3 only") of the same magic-number class Req 1.7 targets, and `src/include/xce/cluster.h:31`'s doc comment repeats the stale "3" figure. Task 1.1's text named only "the two" worker/scheduler checks, so this was left untouched there — task 1.2 already touches `cluster.c` to add the new conversion helper, so fold this fix in there rather than letting it silently persist as the one remaining un-reconciled magic number. - Task 1.1 follow-up resolved in 1.2: the `>3`→`>MAX_HA_CANDIDATES` rename initially proposed for `xce_cluster_config_validate()`'s WARN check turned out to be dead code — after task 1.1's constant reconciliation, that check tests the identical field against the identical constant as an earlier `-EINVAL` return in the same function, so it can never fire. Deleted rather than renamed (with the matching stale doc-comment line also removed), caught by task 1.2's review round 1. - Task 1.2: its 8 new tests in `test_cluster.c` substantively cover task 1.3's stated checklist already (candidate order, one-candidate-no-branch, truncation-with-warning, NULL/empty rejection) — task 1.3 should scope down to just the constant-equality assertion (`N_MAX_MASTERS == MAX_HA_CANDIDATES`) rather than duplicating this coverage. +- Task 1.3: closed with zero new code. Verified fresh (source read + a clean `xce-build.sh lib asan` run) that every item in its checklist was already satisfied by prior tasks: the `_Static_assert(N_MAX_MASTERS == MAX_HA_CANDIDATES, ...)` landed in task 1.1 (`test_libxce_retry.c:44`), and the four behavioral cases (order/no-branch/truncation/NULL-empty) landed in task 1.2's 8 tests (`test_cluster.c`). No implementer/reviewer cycle was dispatched since there was no diff to review — dispatching one would have either duplicated existing test names (build conflict) or been a no-op review of an empty diff.