From 20b6f902d18e8cd0e628cc00139328a9c2120a49 Mon Sep 17 00:00:00 2001 From: Chris George Date: Sun, 13 Sep 2026 14:13:01 +0000 Subject: [PATCH 1/7] chore(contracts): CHAOS-5672 Re-derive the ACR contract mirror for the semantic reading disclosure --- scripts/sync-acr-contracts.mjs | 2 +- .../DeterministicAnswerView.test.tsx | 39 +++++++++++ src/components/DeterministicAnswerView.tsx | 2 + src/components/SemanticReadingNotice.tsx | 31 +++++++++ src/contracts/generated/error.ts | 2 +- .../generated/investigation-request.ts | 2 +- .../generated/investigation-result.ts | 9 ++- src/contracts/manifest.json | 4 +- ...fabric_investigation_result.v1.schema.json | 24 +++++++ src/lib/acr/validate.test.ts | 64 +++++++++++++++++++ 10 files changed, 173 insertions(+), 6 deletions(-) create mode 100644 src/components/SemanticReadingNotice.tsx diff --git a/scripts/sync-acr-contracts.mjs b/scripts/sync-acr-contracts.mjs index 15d3bfc..c7d299e 100644 --- a/scripts/sync-acr-contracts.mjs +++ b/scripts/sync-acr-contracts.mjs @@ -305,7 +305,7 @@ const ARTIFACT_ROOT = path.join(ROOT, "src/contracts"); // WIDENING ONLY, and load-bearing: acr main mints this claim, so without the // bump a response carrying it is rejected whole as `acr_contract_violation` // instead of rendering. -export const SOURCE_COMMIT = "74d8fc4c32a288fcb5b20fbeac335e17cf642be9"; +export const SOURCE_COMMIT = "7930f68ac98f1778d87c97dc8873099883959b6f"; const PRETTIER_OPTIONS = Object.freeze({ parser: "typescript", diff --git a/src/components/DeterministicAnswerView.test.tsx b/src/components/DeterministicAnswerView.test.tsx index 136aa95..0a04e0b 100644 --- a/src/components/DeterministicAnswerView.test.tsx +++ b/src/components/DeterministicAnswerView.test.tsx @@ -415,3 +415,42 @@ describe("DeterministicAnswerView: an organization-scope refusal shows what is a expect(screen.getByRole("heading", { name: "Limitations" })).toBeInTheDocument(); }); }); + +/** + * CHAOS-5672: a stored clarification read back without its stored reading of + * the question carries `semantic_reading`, and the workbench says beside the + * options that the service could not check them. Without the field, no notice. + */ +describe("DeterministicAnswerView: a stored clarification whose reading was unavailable says so", () => { + function storedClarification(semanticReading?: unknown): InvestigationResult { + const base = structureMockScenarios()[0]!.result; + const clone = structuredClone(base) as unknown as Record; + clone.status = "clarification_required"; + if (semanticReading === undefined) delete clone.semantic_reading; + else clone.semantic_reading = semanticReading; + return clone as unknown as InvestigationResult; + } + + it("renders a visible note for each reason", () => { + for (const [reason, phrase] of [ + ["semantic_state_absent", "no stored reading of the question is available"], + ["semantic_state_unreadable", "its stored reading of the question could not be read"], + ] as const) { + const view = render( + , + ); + const note = view.container.querySelector(`[data-semantic-reading="${reason}"]`); + expect(note).not.toBeNull(); + expect(visibleText(note!)).toContain(phrase); + expect(visibleText(note!)).toContain("Ask the question again"); + view.unmount(); + } + }); + + it("renders nothing without the field", () => { + const view = render(); + expect(view.container.querySelector("[data-semantic-reading]")).toBeNull(); + }); +}); diff --git a/src/components/DeterministicAnswerView.tsx b/src/components/DeterministicAnswerView.tsx index 5764208..8c41c3e 100644 --- a/src/components/DeterministicAnswerView.tsx +++ b/src/components/DeterministicAnswerView.tsx @@ -14,6 +14,7 @@ import { EvidenceReferences } from "@/components/EvidenceReferences"; import { FactRowsPanels } from "@/components/FactRowsPanel"; import { FindingsPanel } from "@/components/FindingsPanel"; import { LimitationsPanel } from "@/components/LimitationsPanel"; +import { SemanticReadingNotice } from "@/components/SemanticReadingNotice"; import { PriorSubjectReceiptDisclosure } from "@/components/PriorSubjectReceiptDisclosure"; import { StructureConfirmationNotice } from "@/components/StructureConfirmationNotice"; import { StructureNeedsPanel } from "@/components/StructureNeedsPanel"; @@ -346,6 +347,7 @@ export function DeterministicAnswerView({ /> ); })()} + diff --git a/src/components/SemanticReadingNotice.tsx b/src/components/SemanticReadingNotice.tsx new file mode 100644 index 0000000..f4eb425 --- /dev/null +++ b/src/components/SemanticReadingNotice.tsx @@ -0,0 +1,31 @@ +import type { InvestigationResult } from "@/lib/contracts"; + +/** + * CHAOS-5672: renders ACR's `semantic_reading` disclosure on a STORED + * clarification read back by id. + * + * ACR checks a stored clarification against the reading of the question it was + * produced under. When that reading cannot be loaded, the row is served as it + * was stored and the check could not be made, so this workbench says so beside + * the options: they may not answer the question, and asking again starts a + * fresh investigation. Absent field, no notice -- ACR sets it only when the + * check was needed and could not run. + */ +export function SemanticReadingNotice({ + semanticReading, +}: { + semanticReading: InvestigationResult["semantic_reading"]; +}) { + if (semanticReading === undefined || semanticReading.status !== "unavailable") return null; + const cause = + semanticReading.reason === "semantic_state_absent" + ? "no stored reading of the question is available for it" + : "its stored reading of the question could not be read"; + return ( +

+ This clarification was stored earlier, and {cause}, so the service could not check + whether these options still answer the question. Ask the question again to start a fresh + investigation. +

+ ); +} diff --git a/src/contracts/generated/error.ts b/src/contracts/generated/error.ts index 9ba8348..461467a 100644 --- a/src/contracts/generated/error.ts +++ b/src/contracts/generated/error.ts @@ -1,7 +1,7 @@ /* eslint-disable */ /** * GENERATED by scripts/sync-acr-contracts.mjs. DO NOT EDIT. - * Source: full-chaos/dev-health-acr @ 74d8fc4c32a288fcb5b20fbeac335e17cf642be9 + * Source: full-chaos/dev-health-acr @ 7930f68ac98f1778d87c97dc8873099883959b6f * Regenerate with `pnpm acr:contracts:generate --source `. */ diff --git a/src/contracts/generated/investigation-request.ts b/src/contracts/generated/investigation-request.ts index 9ebb4f0..e60f62c 100644 --- a/src/contracts/generated/investigation-request.ts +++ b/src/contracts/generated/investigation-request.ts @@ -1,7 +1,7 @@ /* eslint-disable */ /** * GENERATED by scripts/sync-acr-contracts.mjs. DO NOT EDIT. - * Source: full-chaos/dev-health-acr @ 74d8fc4c32a288fcb5b20fbeac335e17cf642be9 + * Source: full-chaos/dev-health-acr @ 7930f68ac98f1778d87c97dc8873099883959b6f * Regenerate with `pnpm acr:contracts:generate --source `. */ diff --git a/src/contracts/generated/investigation-result.ts b/src/contracts/generated/investigation-result.ts index e5ae491..c371235 100644 --- a/src/contracts/generated/investigation-result.ts +++ b/src/contracts/generated/investigation-result.ts @@ -1,7 +1,7 @@ /* eslint-disable */ /** * GENERATED by scripts/sync-acr-contracts.mjs. DO NOT EDIT. - * Source: full-chaos/dev-health-acr @ 74d8fc4c32a288fcb5b20fbeac335e17cf642be9 + * Source: full-chaos/dev-health-acr @ 7930f68ac98f1778d87c97dc8873099883959b6f * Regenerate with `pnpm acr:contracts:generate --source `. */ @@ -148,6 +148,13 @@ export type ACRContextFabricInvestigationResultV1 = { | "continuation_context_unverifiable" | "declared_kind_unmatched" | "organization_scope_unsupported"; + /** + * CHAOS-5672: present only on a read of a stored clarification whose answerability needed the stored accepted reading and could not load it. Absent means the read did not need the reading or had it. semantic_state_absent: the row carries no reading; semantic_state_unreadable: the row carries a reading this build cannot read. Fresh composition never sets it. + */ + semantic_reading?: { + status: "unavailable"; + reason: "semantic_state_absent" | "semantic_state_unreadable"; + }; }; export type InterpretedQuestion = { [k: string]: unknown | undefined; diff --git a/src/contracts/manifest.json b/src/contracts/manifest.json index 3b71d5c..24f592a 100644 --- a/src/contracts/manifest.json +++ b/src/contracts/manifest.json @@ -1,5 +1,5 @@ { - "source_commit": "74d8fc4c32a288fcb5b20fbeac335e17cf642be9", + "source_commit": "7930f68ac98f1778d87c97dc8873099883959b6f", "source_repository": "full-chaos/dev-health-acr", "files": [ { @@ -36,7 +36,7 @@ }, { "path": "schemas/context_fabric_investigation_result.v1.schema.json", - "sha256": "47d6dd017133b29db1d11775d99b8e6d08614c7d759c112f5899eb1a63b65c86" + "sha256": "fa6a4d159a0bd54ecf71ef1a58ad6a86206ee02ad56d0bfd1c2d371e6ce64499" }, { "path": "schemas/error.v1.schema.json", diff --git a/src/contracts/schemas/context_fabric_investigation_result.v1.schema.json b/src/contracts/schemas/context_fabric_investigation_result.v1.schema.json index 6190435..1588a40 100644 --- a/src/contracts/schemas/context_fabric_investigation_result.v1.schema.json +++ b/src/contracts/schemas/context_fabric_investigation_result.v1.schema.json @@ -223,6 +223,30 @@ "organization_scope_unsupported" ], "description": "CHAOS-5442: names WHY the server refused to act on this question's frame, over a closed vocabulary. ABSENT on every turn that was not refused -- absence means \"not refused\", never \"refused for a reason nobody recorded\" (that state is the `unspecified` member). Orthogonal to terminal_reason, which names the CHANNEL an explanation travelled through rather than the decision taken: a refused frame carries both. `continuation_context_unverifiable` refuses a window-only continuation whose prior semantic context the server could not verify; it is not a frame refusal, and the document carries its own fixed limitation sentence." + }, + "semantic_reading": { + "type": "object", + "additionalProperties": false, + "required": [ + "status", + "reason" + ], + "properties": { + "status": { + "type": "string", + "enum": [ + "unavailable" + ] + }, + "reason": { + "type": "string", + "enum": [ + "semantic_state_absent", + "semantic_state_unreadable" + ] + } + }, + "description": "CHAOS-5672: present only on a read of a stored clarification whose answerability needed the stored accepted reading and could not load it. Absent means the read did not need the reading or had it. semantic_state_absent: the row carries no reading; semantic_state_unreadable: the row carries a reading this build cannot read. Fresh composition never sets it." } }, "required": [ diff --git a/src/lib/acr/validate.test.ts b/src/lib/acr/validate.test.ts index 09c6ec8..975acbc 100644 --- a/src/lib/acr/validate.test.ts +++ b/src/lib/acr/validate.test.ts @@ -1594,6 +1594,70 @@ describe("investigation result contract — the organization-scope refusal basis }); }); +/** + * The investigation result gains an optional `semantic_reading` object: ACR + * sets it on a result-by-id read of a stored clarification whose check against + * its stored reading of the question could not run, because that reading could + * not be loaded. `status` is `unavailable`; `reason` is `semantic_state_absent` + * or `semantic_state_unreadable`. Additive: every document the prior pin + * accepted still validates, and the object stays closed. + */ +describe("investigation result contract — the semantic_reading disclosure (consumer pin)", () => { + const RESULT = "context_fabric_investigation_result.v1.schema.json"; + + function withSemanticReading(value: unknown): Record { + return { ...structuredClone(canonicalResult), semantic_reading: value }; + } + + it("GREEN: both reasons validate at this pin", () => { + for (const reason of ["semantic_state_absent", "semantic_state_unreadable"]) { + const validation = validateContract( + RESULT, + withSemanticReading({ status: "unavailable", reason }), + ); + expect(validation.errors).toEqual([]); + expect(validation.valid).toBe(true); + } + }); + + it("a result without the field still validates", () => { + expect(validateContract(RESULT, structuredClone(canonicalResult)).valid).toBe(true); + }); + + it("the object stays CLOSED: bad members, missing members and extra keys are rejected", () => { + for (const value of [ + { status: "available", reason: "semantic_state_absent" }, + { status: "unavailable", reason: "pre_semantic_state" }, + { status: "unavailable" }, + { reason: "semantic_state_absent" }, + { status: "unavailable", reason: "semantic_state_absent", note: "x" }, + "unavailable", + ]) { + expect(validateContract(RESULT, withSemanticReading(value)).valid).toBe(false); + } + }); + + it("EXECUTED repro: the prior pin's own schema rejects the field", () => { + const priorResult = structuredClone(investigationResultSchema) as unknown as { + properties: Record; + }; + expect(priorResult.properties).toHaveProperty("semantic_reading"); + delete priorResult.properties.semantic_reading; + + const ajv = new Ajv2020({ allErrors: true, strictSchema: false, strictTypes: false }); + ajv.addSchema(commonSchema, "context_fabric_common.v1.schema.json"); + const validate = ajv.compile(priorResult); + + expect( + validate( + withSemanticReading({ status: "unavailable", reason: "semantic_state_absent" }), + ), + ).toBe(false); + // The stand-in still accepts a document without it, so it is faithful. + expect(validate(structuredClone(canonicalResult))).toBe(true); + }); +}); + /** * `CoverageDetail.code` gains a 17th closed-vocabulary member, * `fact_read_origin_state`: the code the service publishes when a requirement's From 144afbfa55fa69ed75d4a71d8bf090800edcad64 Mon Sep 17 00:00:00 2001 From: Chris George Date: Sun, 13 Sep 2026 14:58:04 +0000 Subject: [PATCH 2/7] chore(contracts): CHAOS-5672 Pin the ACR contract mirror to the producer's current tip --- scripts/sync-acr-contracts.mjs | 2 +- src/contracts/generated/error.ts | 2 +- src/contracts/generated/investigation-request.ts | 2 +- src/contracts/generated/investigation-result.ts | 2 +- src/contracts/manifest.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/scripts/sync-acr-contracts.mjs b/scripts/sync-acr-contracts.mjs index c7d299e..a823fe6 100644 --- a/scripts/sync-acr-contracts.mjs +++ b/scripts/sync-acr-contracts.mjs @@ -305,7 +305,7 @@ const ARTIFACT_ROOT = path.join(ROOT, "src/contracts"); // WIDENING ONLY, and load-bearing: acr main mints this claim, so without the // bump a response carrying it is rejected whole as `acr_contract_violation` // instead of rendering. -export const SOURCE_COMMIT = "7930f68ac98f1778d87c97dc8873099883959b6f"; +export const SOURCE_COMMIT = "61e2d3f766b03c0cd59c22cb27490f43b3f150ff"; const PRETTIER_OPTIONS = Object.freeze({ parser: "typescript", diff --git a/src/contracts/generated/error.ts b/src/contracts/generated/error.ts index 461467a..9897c8b 100644 --- a/src/contracts/generated/error.ts +++ b/src/contracts/generated/error.ts @@ -1,7 +1,7 @@ /* eslint-disable */ /** * GENERATED by scripts/sync-acr-contracts.mjs. DO NOT EDIT. - * Source: full-chaos/dev-health-acr @ 7930f68ac98f1778d87c97dc8873099883959b6f + * Source: full-chaos/dev-health-acr @ 61e2d3f766b03c0cd59c22cb27490f43b3f150ff * Regenerate with `pnpm acr:contracts:generate --source `. */ diff --git a/src/contracts/generated/investigation-request.ts b/src/contracts/generated/investigation-request.ts index e60f62c..d760dc5 100644 --- a/src/contracts/generated/investigation-request.ts +++ b/src/contracts/generated/investigation-request.ts @@ -1,7 +1,7 @@ /* eslint-disable */ /** * GENERATED by scripts/sync-acr-contracts.mjs. DO NOT EDIT. - * Source: full-chaos/dev-health-acr @ 7930f68ac98f1778d87c97dc8873099883959b6f + * Source: full-chaos/dev-health-acr @ 61e2d3f766b03c0cd59c22cb27490f43b3f150ff * Regenerate with `pnpm acr:contracts:generate --source `. */ diff --git a/src/contracts/generated/investigation-result.ts b/src/contracts/generated/investigation-result.ts index c371235..07cfb39 100644 --- a/src/contracts/generated/investigation-result.ts +++ b/src/contracts/generated/investigation-result.ts @@ -1,7 +1,7 @@ /* eslint-disable */ /** * GENERATED by scripts/sync-acr-contracts.mjs. DO NOT EDIT. - * Source: full-chaos/dev-health-acr @ 7930f68ac98f1778d87c97dc8873099883959b6f + * Source: full-chaos/dev-health-acr @ 61e2d3f766b03c0cd59c22cb27490f43b3f150ff * Regenerate with `pnpm acr:contracts:generate --source `. */ diff --git a/src/contracts/manifest.json b/src/contracts/manifest.json index 24f592a..fde8cc3 100644 --- a/src/contracts/manifest.json +++ b/src/contracts/manifest.json @@ -1,5 +1,5 @@ { - "source_commit": "7930f68ac98f1778d87c97dc8873099883959b6f", + "source_commit": "61e2d3f766b03c0cd59c22cb27490f43b3f150ff", "source_repository": "full-chaos/dev-health-acr", "files": [ { From 73813d1aa84fb9fce05c91f3317261d704a62923 Mon Sep 17 00:00:00 2001 From: Chris George Date: Sun, 13 Sep 2026 17:12:21 +0000 Subject: [PATCH 3/7] chore(contracts): CHAOS-5672 Pin the ACR contract mirror to the producer tip rebased onto the role-decision fix --- scripts/sync-acr-contracts.mjs | 2 +- src/contracts/generated/error.ts | 2 +- src/contracts/generated/investigation-request.ts | 2 +- src/contracts/generated/investigation-result.ts | 2 +- src/contracts/manifest.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/scripts/sync-acr-contracts.mjs b/scripts/sync-acr-contracts.mjs index a823fe6..1d3226a 100644 --- a/scripts/sync-acr-contracts.mjs +++ b/scripts/sync-acr-contracts.mjs @@ -305,7 +305,7 @@ const ARTIFACT_ROOT = path.join(ROOT, "src/contracts"); // WIDENING ONLY, and load-bearing: acr main mints this claim, so without the // bump a response carrying it is rejected whole as `acr_contract_violation` // instead of rendering. -export const SOURCE_COMMIT = "61e2d3f766b03c0cd59c22cb27490f43b3f150ff"; +export const SOURCE_COMMIT = "7c69705b70c1965b5ba5f02d8a49c86ddbd464ad"; const PRETTIER_OPTIONS = Object.freeze({ parser: "typescript", diff --git a/src/contracts/generated/error.ts b/src/contracts/generated/error.ts index 9897c8b..d686cd8 100644 --- a/src/contracts/generated/error.ts +++ b/src/contracts/generated/error.ts @@ -1,7 +1,7 @@ /* eslint-disable */ /** * GENERATED by scripts/sync-acr-contracts.mjs. DO NOT EDIT. - * Source: full-chaos/dev-health-acr @ 61e2d3f766b03c0cd59c22cb27490f43b3f150ff + * Source: full-chaos/dev-health-acr @ 7c69705b70c1965b5ba5f02d8a49c86ddbd464ad * Regenerate with `pnpm acr:contracts:generate --source `. */ diff --git a/src/contracts/generated/investigation-request.ts b/src/contracts/generated/investigation-request.ts index d760dc5..5cd161c 100644 --- a/src/contracts/generated/investigation-request.ts +++ b/src/contracts/generated/investigation-request.ts @@ -1,7 +1,7 @@ /* eslint-disable */ /** * GENERATED by scripts/sync-acr-contracts.mjs. DO NOT EDIT. - * Source: full-chaos/dev-health-acr @ 61e2d3f766b03c0cd59c22cb27490f43b3f150ff + * Source: full-chaos/dev-health-acr @ 7c69705b70c1965b5ba5f02d8a49c86ddbd464ad * Regenerate with `pnpm acr:contracts:generate --source `. */ diff --git a/src/contracts/generated/investigation-result.ts b/src/contracts/generated/investigation-result.ts index 07cfb39..4e7b83b 100644 --- a/src/contracts/generated/investigation-result.ts +++ b/src/contracts/generated/investigation-result.ts @@ -1,7 +1,7 @@ /* eslint-disable */ /** * GENERATED by scripts/sync-acr-contracts.mjs. DO NOT EDIT. - * Source: full-chaos/dev-health-acr @ 61e2d3f766b03c0cd59c22cb27490f43b3f150ff + * Source: full-chaos/dev-health-acr @ 7c69705b70c1965b5ba5f02d8a49c86ddbd464ad * Regenerate with `pnpm acr:contracts:generate --source `. */ diff --git a/src/contracts/manifest.json b/src/contracts/manifest.json index fde8cc3..a9facfa 100644 --- a/src/contracts/manifest.json +++ b/src/contracts/manifest.json @@ -1,5 +1,5 @@ { - "source_commit": "61e2d3f766b03c0cd59c22cb27490f43b3f150ff", + "source_commit": "7c69705b70c1965b5ba5f02d8a49c86ddbd464ad", "source_repository": "full-chaos/dev-health-acr", "files": [ { From e438e0cffa783ffa8f7afc96c459cf9b0bd1a945 Mon Sep 17 00:00:00 2001 From: Chris George Date: Sun, 13 Sep 2026 17:36:33 +0000 Subject: [PATCH 4/7] chore(contracts): CHAOS-5672 Pin the ACR contract mirror to the producer tip rebased onto main --- scripts/sync-acr-contracts.mjs | 2 +- src/contracts/generated/error.ts | 2 +- src/contracts/generated/investigation-request.ts | 2 +- src/contracts/generated/investigation-result.ts | 2 +- src/contracts/manifest.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/scripts/sync-acr-contracts.mjs b/scripts/sync-acr-contracts.mjs index 1d3226a..d7f2664 100644 --- a/scripts/sync-acr-contracts.mjs +++ b/scripts/sync-acr-contracts.mjs @@ -305,7 +305,7 @@ const ARTIFACT_ROOT = path.join(ROOT, "src/contracts"); // WIDENING ONLY, and load-bearing: acr main mints this claim, so without the // bump a response carrying it is rejected whole as `acr_contract_violation` // instead of rendering. -export const SOURCE_COMMIT = "7c69705b70c1965b5ba5f02d8a49c86ddbd464ad"; +export const SOURCE_COMMIT = "1e50a2f05a50e91038b0d2980dc31a0c0040c2cf"; const PRETTIER_OPTIONS = Object.freeze({ parser: "typescript", diff --git a/src/contracts/generated/error.ts b/src/contracts/generated/error.ts index d686cd8..ee81240 100644 --- a/src/contracts/generated/error.ts +++ b/src/contracts/generated/error.ts @@ -1,7 +1,7 @@ /* eslint-disable */ /** * GENERATED by scripts/sync-acr-contracts.mjs. DO NOT EDIT. - * Source: full-chaos/dev-health-acr @ 7c69705b70c1965b5ba5f02d8a49c86ddbd464ad + * Source: full-chaos/dev-health-acr @ 1e50a2f05a50e91038b0d2980dc31a0c0040c2cf * Regenerate with `pnpm acr:contracts:generate --source `. */ diff --git a/src/contracts/generated/investigation-request.ts b/src/contracts/generated/investigation-request.ts index 5cd161c..c8769b8 100644 --- a/src/contracts/generated/investigation-request.ts +++ b/src/contracts/generated/investigation-request.ts @@ -1,7 +1,7 @@ /* eslint-disable */ /** * GENERATED by scripts/sync-acr-contracts.mjs. DO NOT EDIT. - * Source: full-chaos/dev-health-acr @ 7c69705b70c1965b5ba5f02d8a49c86ddbd464ad + * Source: full-chaos/dev-health-acr @ 1e50a2f05a50e91038b0d2980dc31a0c0040c2cf * Regenerate with `pnpm acr:contracts:generate --source `. */ diff --git a/src/contracts/generated/investigation-result.ts b/src/contracts/generated/investigation-result.ts index 4e7b83b..acd8a79 100644 --- a/src/contracts/generated/investigation-result.ts +++ b/src/contracts/generated/investigation-result.ts @@ -1,7 +1,7 @@ /* eslint-disable */ /** * GENERATED by scripts/sync-acr-contracts.mjs. DO NOT EDIT. - * Source: full-chaos/dev-health-acr @ 7c69705b70c1965b5ba5f02d8a49c86ddbd464ad + * Source: full-chaos/dev-health-acr @ 1e50a2f05a50e91038b0d2980dc31a0c0040c2cf * Regenerate with `pnpm acr:contracts:generate --source `. */ diff --git a/src/contracts/manifest.json b/src/contracts/manifest.json index a9facfa..928736b 100644 --- a/src/contracts/manifest.json +++ b/src/contracts/manifest.json @@ -1,5 +1,5 @@ { - "source_commit": "7c69705b70c1965b5ba5f02d8a49c86ddbd464ad", + "source_commit": "1e50a2f05a50e91038b0d2980dc31a0c0040c2cf", "source_repository": "full-chaos/dev-health-acr", "files": [ { From 2d1b4cf6c981dbd96bd0655c48b8436090e5cbe0 Mon Sep 17 00:00:00 2001 From: Chris George Date: Sun, 13 Sep 2026 19:34:35 +0000 Subject: [PATCH 5/7] chore(contracts): CHAOS-5672 Pin the ACR contract mirror to the producer tip with the read side's precedence fix --- scripts/sync-acr-contracts.mjs | 2 +- src/contracts/generated/error.ts | 2 +- src/contracts/generated/investigation-request.ts | 2 +- src/contracts/generated/investigation-result.ts | 2 +- src/contracts/manifest.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/scripts/sync-acr-contracts.mjs b/scripts/sync-acr-contracts.mjs index d7f2664..b6c6232 100644 --- a/scripts/sync-acr-contracts.mjs +++ b/scripts/sync-acr-contracts.mjs @@ -305,7 +305,7 @@ const ARTIFACT_ROOT = path.join(ROOT, "src/contracts"); // WIDENING ONLY, and load-bearing: acr main mints this claim, so without the // bump a response carrying it is rejected whole as `acr_contract_violation` // instead of rendering. -export const SOURCE_COMMIT = "1e50a2f05a50e91038b0d2980dc31a0c0040c2cf"; +export const SOURCE_COMMIT = "548607119ed4f7691f8ef1e9ed5a8cc41d28273f"; const PRETTIER_OPTIONS = Object.freeze({ parser: "typescript", diff --git a/src/contracts/generated/error.ts b/src/contracts/generated/error.ts index ee81240..474a819 100644 --- a/src/contracts/generated/error.ts +++ b/src/contracts/generated/error.ts @@ -1,7 +1,7 @@ /* eslint-disable */ /** * GENERATED by scripts/sync-acr-contracts.mjs. DO NOT EDIT. - * Source: full-chaos/dev-health-acr @ 1e50a2f05a50e91038b0d2980dc31a0c0040c2cf + * Source: full-chaos/dev-health-acr @ 548607119ed4f7691f8ef1e9ed5a8cc41d28273f * Regenerate with `pnpm acr:contracts:generate --source `. */ diff --git a/src/contracts/generated/investigation-request.ts b/src/contracts/generated/investigation-request.ts index c8769b8..1f1267c 100644 --- a/src/contracts/generated/investigation-request.ts +++ b/src/contracts/generated/investigation-request.ts @@ -1,7 +1,7 @@ /* eslint-disable */ /** * GENERATED by scripts/sync-acr-contracts.mjs. DO NOT EDIT. - * Source: full-chaos/dev-health-acr @ 1e50a2f05a50e91038b0d2980dc31a0c0040c2cf + * Source: full-chaos/dev-health-acr @ 548607119ed4f7691f8ef1e9ed5a8cc41d28273f * Regenerate with `pnpm acr:contracts:generate --source `. */ diff --git a/src/contracts/generated/investigation-result.ts b/src/contracts/generated/investigation-result.ts index acd8a79..e8f2299 100644 --- a/src/contracts/generated/investigation-result.ts +++ b/src/contracts/generated/investigation-result.ts @@ -1,7 +1,7 @@ /* eslint-disable */ /** * GENERATED by scripts/sync-acr-contracts.mjs. DO NOT EDIT. - * Source: full-chaos/dev-health-acr @ 1e50a2f05a50e91038b0d2980dc31a0c0040c2cf + * Source: full-chaos/dev-health-acr @ 548607119ed4f7691f8ef1e9ed5a8cc41d28273f * Regenerate with `pnpm acr:contracts:generate --source `. */ diff --git a/src/contracts/manifest.json b/src/contracts/manifest.json index 928736b..810ed4c 100644 --- a/src/contracts/manifest.json +++ b/src/contracts/manifest.json @@ -1,5 +1,5 @@ { - "source_commit": "1e50a2f05a50e91038b0d2980dc31a0c0040c2cf", + "source_commit": "548607119ed4f7691f8ef1e9ed5a8cc41d28273f", "source_repository": "full-chaos/dev-health-acr", "files": [ { From 37c171a22e6250c9c8d144fcc65007dda8d8cc16 Mon Sep 17 00:00:00 2001 From: Chris George Date: Sun, 13 Sep 2026 19:50:21 +0000 Subject: [PATCH 6/7] chore(contracts): CHAOS-5672 Pin the ACR contract mirror to the producer tip with the re-anchored result route --- scripts/sync-acr-contracts.mjs | 2 +- src/contracts/generated/error.ts | 2 +- src/contracts/generated/investigation-request.ts | 2 +- src/contracts/generated/investigation-result.ts | 2 +- src/contracts/manifest.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/scripts/sync-acr-contracts.mjs b/scripts/sync-acr-contracts.mjs index b6c6232..d8a8b65 100644 --- a/scripts/sync-acr-contracts.mjs +++ b/scripts/sync-acr-contracts.mjs @@ -305,7 +305,7 @@ const ARTIFACT_ROOT = path.join(ROOT, "src/contracts"); // WIDENING ONLY, and load-bearing: acr main mints this claim, so without the // bump a response carrying it is rejected whole as `acr_contract_violation` // instead of rendering. -export const SOURCE_COMMIT = "548607119ed4f7691f8ef1e9ed5a8cc41d28273f"; +export const SOURCE_COMMIT = "fbe5ef2362cdb061fbad3ff422df35b6543398f4"; const PRETTIER_OPTIONS = Object.freeze({ parser: "typescript", diff --git a/src/contracts/generated/error.ts b/src/contracts/generated/error.ts index 474a819..64c8dbd 100644 --- a/src/contracts/generated/error.ts +++ b/src/contracts/generated/error.ts @@ -1,7 +1,7 @@ /* eslint-disable */ /** * GENERATED by scripts/sync-acr-contracts.mjs. DO NOT EDIT. - * Source: full-chaos/dev-health-acr @ 548607119ed4f7691f8ef1e9ed5a8cc41d28273f + * Source: full-chaos/dev-health-acr @ fbe5ef2362cdb061fbad3ff422df35b6543398f4 * Regenerate with `pnpm acr:contracts:generate --source `. */ diff --git a/src/contracts/generated/investigation-request.ts b/src/contracts/generated/investigation-request.ts index 1f1267c..0c1e83f 100644 --- a/src/contracts/generated/investigation-request.ts +++ b/src/contracts/generated/investigation-request.ts @@ -1,7 +1,7 @@ /* eslint-disable */ /** * GENERATED by scripts/sync-acr-contracts.mjs. DO NOT EDIT. - * Source: full-chaos/dev-health-acr @ 548607119ed4f7691f8ef1e9ed5a8cc41d28273f + * Source: full-chaos/dev-health-acr @ fbe5ef2362cdb061fbad3ff422df35b6543398f4 * Regenerate with `pnpm acr:contracts:generate --source `. */ diff --git a/src/contracts/generated/investigation-result.ts b/src/contracts/generated/investigation-result.ts index e8f2299..a8f92d4 100644 --- a/src/contracts/generated/investigation-result.ts +++ b/src/contracts/generated/investigation-result.ts @@ -1,7 +1,7 @@ /* eslint-disable */ /** * GENERATED by scripts/sync-acr-contracts.mjs. DO NOT EDIT. - * Source: full-chaos/dev-health-acr @ 548607119ed4f7691f8ef1e9ed5a8cc41d28273f + * Source: full-chaos/dev-health-acr @ fbe5ef2362cdb061fbad3ff422df35b6543398f4 * Regenerate with `pnpm acr:contracts:generate --source `. */ diff --git a/src/contracts/manifest.json b/src/contracts/manifest.json index 810ed4c..358a3db 100644 --- a/src/contracts/manifest.json +++ b/src/contracts/manifest.json @@ -1,5 +1,5 @@ { - "source_commit": "548607119ed4f7691f8ef1e9ed5a8cc41d28273f", + "source_commit": "fbe5ef2362cdb061fbad3ff422df35b6543398f4", "source_repository": "full-chaos/dev-health-acr", "files": [ { From b20e9ca2c18341dc8b548a86fabd839059e9bd70 Mon Sep 17 00:00:00 2001 From: Chris George Date: Sun, 13 Sep 2026 20:04:17 +0000 Subject: [PATCH 7/7] chore(contracts): CHAOS-5672 Pin the ACR contract mirror to the producer's merge commit --- scripts/sync-acr-contracts.mjs | 2 +- src/contracts/generated/error.ts | 2 +- src/contracts/generated/investigation-request.ts | 2 +- src/contracts/generated/investigation-result.ts | 2 +- src/contracts/manifest.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/scripts/sync-acr-contracts.mjs b/scripts/sync-acr-contracts.mjs index d8a8b65..4bf3ab0 100644 --- a/scripts/sync-acr-contracts.mjs +++ b/scripts/sync-acr-contracts.mjs @@ -305,7 +305,7 @@ const ARTIFACT_ROOT = path.join(ROOT, "src/contracts"); // WIDENING ONLY, and load-bearing: acr main mints this claim, so without the // bump a response carrying it is rejected whole as `acr_contract_violation` // instead of rendering. -export const SOURCE_COMMIT = "fbe5ef2362cdb061fbad3ff422df35b6543398f4"; +export const SOURCE_COMMIT = "9e35fe9405d70879ed41600f3e4f484aea6411b2"; const PRETTIER_OPTIONS = Object.freeze({ parser: "typescript", diff --git a/src/contracts/generated/error.ts b/src/contracts/generated/error.ts index 64c8dbd..420e847 100644 --- a/src/contracts/generated/error.ts +++ b/src/contracts/generated/error.ts @@ -1,7 +1,7 @@ /* eslint-disable */ /** * GENERATED by scripts/sync-acr-contracts.mjs. DO NOT EDIT. - * Source: full-chaos/dev-health-acr @ fbe5ef2362cdb061fbad3ff422df35b6543398f4 + * Source: full-chaos/dev-health-acr @ 9e35fe9405d70879ed41600f3e4f484aea6411b2 * Regenerate with `pnpm acr:contracts:generate --source `. */ diff --git a/src/contracts/generated/investigation-request.ts b/src/contracts/generated/investigation-request.ts index 0c1e83f..1ecfc79 100644 --- a/src/contracts/generated/investigation-request.ts +++ b/src/contracts/generated/investigation-request.ts @@ -1,7 +1,7 @@ /* eslint-disable */ /** * GENERATED by scripts/sync-acr-contracts.mjs. DO NOT EDIT. - * Source: full-chaos/dev-health-acr @ fbe5ef2362cdb061fbad3ff422df35b6543398f4 + * Source: full-chaos/dev-health-acr @ 9e35fe9405d70879ed41600f3e4f484aea6411b2 * Regenerate with `pnpm acr:contracts:generate --source `. */ diff --git a/src/contracts/generated/investigation-result.ts b/src/contracts/generated/investigation-result.ts index a8f92d4..0353e57 100644 --- a/src/contracts/generated/investigation-result.ts +++ b/src/contracts/generated/investigation-result.ts @@ -1,7 +1,7 @@ /* eslint-disable */ /** * GENERATED by scripts/sync-acr-contracts.mjs. DO NOT EDIT. - * Source: full-chaos/dev-health-acr @ fbe5ef2362cdb061fbad3ff422df35b6543398f4 + * Source: full-chaos/dev-health-acr @ 9e35fe9405d70879ed41600f3e4f484aea6411b2 * Regenerate with `pnpm acr:contracts:generate --source `. */ diff --git a/src/contracts/manifest.json b/src/contracts/manifest.json index 358a3db..370bf92 100644 --- a/src/contracts/manifest.json +++ b/src/contracts/manifest.json @@ -1,5 +1,5 @@ { - "source_commit": "fbe5ef2362cdb061fbad3ff422df35b6543398f4", + "source_commit": "9e35fe9405d70879ed41600f3e4f484aea6411b2", "source_repository": "full-chaos/dev-health-acr", "files": [ {