feat: replace revision counters with domain state contracts

Use content digests, key fingerprints, binding and trust identities, immutable mutation receipts, and observation tokens instead of state-update ordinals across API, storage, Runtime, and Web contracts.

Preserve historical replay and secret material through frozen migrations; preflight uncertain removals before cutover, resume provisioning receipts, validate encrypted migration candidates, and align fresh/upgraded schemas. Include reviewed regression fixes, generated artifacts, and validation evidence.
This commit is contained in:
2026-10-10 15:55:20 +09:00
parent 72ce817de4
commit c78f7f7d80
358 changed files with 25965 additions and 12069 deletions
@@ -156,7 +156,7 @@ Deno.test("commit formats every working Decodal source without a preview roundtr
assert(
source.includes("await formatWorkingSources();") &&
source.includes("entrypoints: entrypoints()") &&
source.includes("Committed formatted revision"),
source.includes("Committed formatted source tree"),
"commit should format first and send the working changes directly to Backend authority",
);
assert(
@@ -167,7 +167,7 @@ Deno.test("commit formats every working Decodal source without a preview roundtr
);
});
Deno.test("config diagnostics analyze continuously with debounce and generation fencing", async () => {
Deno.test("config diagnostics analyze continuously with debounce and request cancellation", async () => {
const source = await Deno.readTextFile(
new URL(
"../../src/lib/workspace/config-source/ConfigSourceEditor.svelte",
@@ -179,7 +179,7 @@ Deno.test("config diagnostics analyze continuously with debounce and generation
source.includes("setTimeout(() =>") &&
source.includes("}, 250)") &&
source.includes("analyzer.analyze(path, value)") &&
source.includes("generation === analysisGeneration") &&
source.includes("!request.signal.aborted") &&
source.includes("analysisReady"),
"source changes should trigger only the latest debounced analysis after snapshot initialization",
);