Implement CE-WP-0009: wire umbrella to @citation-evidence/engine

Add link: dependency on citation-engine, retarget @shared/@engine aliases,
remove in-repo shared/engine copies. ADR-0002 accepted (option B).
172 tests, typecheck, and lint pass.
This commit is contained in:
tegwick 2026-06-22 19:45:11 +02:00
parent bb911eef37
commit dd2f2115bd
60 changed files with 93 additions and 3942 deletions

View file

@ -172,14 +172,20 @@ function SessionScopedTree({ mode }: { mode: AppMode }) {
return (
<BinderProvider
bus={engine.bus}
initialLinks={restoredCapture?.evidenceLinks}
{...(restoredCapture?.evidenceLinks
? { initialLinks: restoredCapture.evidenceLinks }
: {})}
>
<CaptureLinkPersister sessionId={sessionId} />
{mode === "forms" ? (
<FormsApp
sessionId={sessionId}
initialSchema={restoredCapture?.formSchema}
initialFieldValues={restoredCapture?.fieldValues}
{...(restoredCapture?.formSchema
? { initialSchema: restoredCapture.formSchema }
: {})}
{...(restoredCapture?.fieldValues
? { initialFieldValues: restoredCapture.fieldValues }
: {})}
/>
) : (
<ReviewLayout upload={<UploadDropzone />} />

View file

@ -4,7 +4,8 @@
import { describe, expect, it } from "vitest";
import type { SessionId } from "@shared/ids";
import type { EvidenceLink } from "@shared/evidence-link";
import type { EvidenceItemId, EvidenceLinkId, SessionId } from "@shared/ids";
import {
CAPTURE_STATE_VERSION,
@ -47,17 +48,17 @@ describe("capture-persistence", () => {
fieldValues: { summary: "Tenant owes arrears", deadline: "2026-12-15" },
evidenceLinks: [
{
id: "evlink_1",
evidenceItemId: "evi_1",
id: "evlink_1" as EvidenceLinkId,
evidenceItemId: "evi_1" as EvidenceItemId,
targetType: "form-field",
targetId: "summary",
relation: "supports",
status: "candidate",
createdAt: "2026-06-08T00:00:00.000Z",
updatedAt: "2026-06-08T00:00:00.000Z",
},
} satisfies EvidenceLink,
],
} as const;
};
saveCaptureState(SESSION, withData, storage);
const loaded = loadCaptureState(SESSION, storage);