From 1f1bb95d5355d4c87330085aa305fe52e7348b9b Mon Sep 17 00:00:00 2001 From: REA Maintainers Date: Tue, 13 Oct 2026 21:32:35 +0800 Subject: [PATCH] fix(setup): align activation schemas and approval disclosure --- src/application/ClientRegistrationShape.ts | 10 +++++++++- src/application/DshCordisPatch.ts | 2 +- .../filesystem/clientConfigurationTransactions.test.ts | 1 + 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/application/ClientRegistrationShape.ts b/src/application/ClientRegistrationShape.ts index 46740ae3e..cb6b601b8 100644 --- a/src/application/ClientRegistrationShape.ts +++ b/src/application/ClientRegistrationShape.ts @@ -26,9 +26,17 @@ const codexRegistrationSchema = registrationSchema.extend({ disabled_tools: z.array(z.string()).optional(), }); +const zcodeRegistrationSchema = registrationSchema.extend({ + enable: z.boolean().optional(), +}); + /** Client-specific parsing is shared by retention and registration diagnostics. */ export const registrationSchemaFor = (dialect: ClientRegistrationDialect) => - dialect === "toml" ? codexRegistrationSchema : registrationSchema; + dialect === "toml" + ? codexRegistrationSchema + : dialect === "zcode" + ? zcodeRegistrationSchema + : registrationSchema; /** Whether a retained field satisfies the selected client's known contract. */ export const registrationFieldAccepted = ( diff --git a/src/application/DshCordisPatch.ts b/src/application/DshCordisPatch.ts index f15d27809..580351783 100644 --- a/src/application/DshCordisPatch.ts +++ b/src/application/DshCordisPatch.ts @@ -413,7 +413,7 @@ export const describeDshRegistrationRetention = ( .filter((key) => Object.hasOwn(entry, key)) .sort((left, right) => left.localeCompare(right)) .map((key) => `${key} with ${JSON.stringify(entry[key])}`); - return `Other fields on the existing Cordis server are kept. Setup replaces ${replaced.join(", ")}. Environment overrides are merged.`; + return `Other fields on the existing Cordis server are kept, except the row-level disabled flag is removed to activate the registration. Setup replaces ${replaced.join(", ")}. Environment overrides are merged.`; }; export const dshClientRegistrationEntry = ( diff --git a/tests/boundary/filesystem/clientConfigurationTransactions.test.ts b/tests/boundary/filesystem/clientConfigurationTransactions.test.ts index 507b7137e..311f54399 100644 --- a/tests/boundary/filesystem/clientConfigurationTransactions.test.ts +++ b/tests/boundary/filesystem/clientConfigurationTransactions.test.ts @@ -46,6 +46,7 @@ it("previews and creates a current recovery backup while preserving the first ba expect(await inspectClientConfiguration(client, {}, ["rea", "mcp"])).toEqual({ status: "update", backupPath: recoveryPath, + dialect: "json", }); expect(