From f503a43d282a26c5ee4899accf29d082fec869ce Mon Sep 17 00:00:00 2001 From: Rongsong Shen Date: Tue, 21 Jul 2026 05:16:29 +0000 Subject: [PATCH] =?UTF-8?q?feat(controller):=20clusterconfig-schema-split?= =?UTF-8?q?=20task=205.1=20=E2=80=94=20regenerate=20ha/data/cluster.bin=20?= =?UTF-8?q?fixture?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Re-encodes the checked-in cluster.bin fixture against the renumbered ClusterConfig schema (task 1.1), preserving all 13 retained fields' semantic values byte-for-byte (verified via capnp convert round-trip and independently reproduced in review) and dropping the 8 removed fields' now-discarded values. deploy-ha.sh's verbatim-copy usage needs no changes. Without this, every future /xce-deploy-ha and /xce-test-ha run would seed ctrl-1 from a blob whose retained fields silently decode to wrong bytes under the new schema. --- .../specs/clusterconfig-schema-split/tasks.md | 2 +- ha/data/cluster.bin | Bin 8704 -> 4768 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/.kiro/specs/clusterconfig-schema-split/tasks.md b/.kiro/specs/clusterconfig-schema-split/tasks.md index d0521479..a8c73582 100644 --- a/.kiro/specs/clusterconfig-schema-split/tasks.md +++ b/.kiro/specs/clusterconfig-schema-split/tasks.md @@ -70,7 +70,7 @@ - _Depends: 1.1, 1.2, 1.3, 2.1, 2.2, 2.3, 3_ - [ ] 5. Validation: Live HA Verification -- [ ] 5.1 Regenerate the `ha/data/cluster.bin` fixture against the renumbered schema +- [x] 5.1 Regenerate the `ha/data/cluster.bin` fixture against the renumbered schema - Decode the current (pre-spec) `ha/data/cluster.bin`'s retained-field values under the OLD (pre-renumbering) schema — build against a pre-1.1 checkout or otherwise capture the pre-spec field values before they become unreadable - Write and run a small throwaway capnp-encoding tool (not part of the shipped codebase — discard it after use) that constructs a `ClusterConfig` with those same retained-field values and serializes it under the NEW (post-task-1.1) schema - Overwrite `ha/data/cluster.bin` with the newly-encoded blob diff --git a/ha/data/cluster.bin b/ha/data/cluster.bin index 8260f0c17d1fe14dade77854463bdceb2eedb33c..81c33b525f69e7d24e04e95eb0a89d98d563b925 100644 GIT binary patch literal 4768 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