mirror of
https://github.com/morluto/rea.git
synced 2026-10-21 21:32:26 -05:00
Add opt-in Frida session status summaries linked to complete retained Evidence. Share canonical session facts across contracts and preserve observed state, source identity and capture truncation. Validated with native SDK/client workflows, default delivery compatibility, lifecycle and provenance tests. The completed large-history task uses 50.9% fewer estimated request tokens; no general CPU or latency improvement is claimed. Fixes #5640
50 lines
2.0 KiB
TypeScript
50 lines
2.0 KiB
TypeScript
import { writeFile } from "node:fs/promises";
|
|
import { join } from "node:path";
|
|
import { expect, it, vi } from "vitest";
|
|
import {
|
|
analysisViewCaptureEvidence,
|
|
environmentManifestCaptureFixture,
|
|
} from "../fixtures/analysisView.js";
|
|
import { createTestTempDirectory } from "../fixtures/temporaryDirectory.js";
|
|
import { readEvidenceFileSource } from "../../src/application/analysisView/evidenceFileSource.js";
|
|
import { inspectAnalysisViewWithFiles } from "../../src/application/analysisView/AnalysisViewService.js";
|
|
|
|
// This module mock needs an isolated graph even if another service imports the workflow first.
|
|
vi.mock("../../src/application/analysisView/evidenceFileSource.js", {
|
|
spy: true,
|
|
});
|
|
|
|
it("prefers cancellation observed after failed Evidence-file authentication", async () => {
|
|
const controller = new AbortController();
|
|
const parent = analysisViewCaptureEvidence(
|
|
environmentManifestCaptureFixture(),
|
|
);
|
|
const root = await createTestTempDirectory("rea-analysis-view-cancel-");
|
|
const path = join(root, "parent.json");
|
|
await writeFile(
|
|
path,
|
|
JSON.stringify({ ...parent, evidence_id: `ev_${"0".repeat(64)}` }),
|
|
);
|
|
const { readEvidenceFileSource: read } = await vi.importActual<
|
|
typeof import("../../src/application/analysisView/evidenceFileSource.js")
|
|
>("../../src/application/analysisView/evidenceFileSource.js");
|
|
// Abort at the completed read boundary, before its authentication failure is delivered.
|
|
vi.mocked(readEvidenceFileSource).mockImplementationOnce(async (...args) => {
|
|
const loaded = await read(...args);
|
|
controller.abort();
|
|
return loaded;
|
|
});
|
|
expect(
|
|
await inspectAnalysisViewWithFiles(
|
|
{
|
|
source: { kind: "evidence-file", path },
|
|
view: { kind: "environment-manifest" },
|
|
},
|
|
undefined,
|
|
{ signal: controller.signal },
|
|
),
|
|
).toMatchObject({ ok: false, error: { _tag: "AnalysisCancelledError" } });
|
|
expect(readEvidenceFileSource).toHaveBeenCalledTimes(1);
|
|
expect(controller.signal.aborted).toBe(true);
|
|
});
|