fix: pin current demo proof routes

This commit is contained in:
lda
2026-07-10 08:20:51 +07:00 Verified
parent 2730eea37d
commit 7d3f665808
3 changed files with 18 additions and 3 deletions
@@ -321,6 +321,20 @@ describe("PresentationRoute", () => {
expect(await screen.findByRole("region", { name: /workflow markdown output/i })).toBeInTheDocument(); expect(await screen.findByRole("region", { name: /workflow markdown output/i })).toBeInTheDocument();
}); });
it.each([
["#scene/typed-human-boundary/approval", /Typed human boundary/i],
["#scene/resume-output-evidence/resume", /Resume, output, evidence/i],
["#scene/resume-output-evidence/trace", /Resume, output, evidence/i],
])("renders current demo hash %s without falling back to title", async (hash, heading) => {
window.location.hash = hash;
const { PresentationRoute } = await import("./PresentationRoute.js");
render(<PresentationRoute />);
expect(await screen.findByRole("heading", { name: heading })).toBeInTheDocument();
expect(screen.queryByRole("heading", { name: /Design and Implementation of lda\.chat/i })).not.toBeInTheDocument();
});
it("direct trace route primes trace frames", async () => { it("direct trace route primes trace frames", async () => {
window.location.hash = "#scene/resume-output-evidence/trace"; window.location.hash = "#scene/resume-output-evidence/trace";
const { PresentationRoute } = await import("./PresentationRoute.js"); const { PresentationRoute } = await import("./PresentationRoute.js");
@@ -40,7 +40,7 @@ describe("defense storyboard catalog", () => {
expect(mainScenes.slice(3, 12).every((scene) => scene.stageTheme === "night")).toBe(true); expect(mainScenes.slice(3, 12).every((scene) => scene.stageTheme === "night")).toBe(true);
expect(mainScenes.slice(12).every((scene) => scene.stageTheme === "paper")).toBe(true); expect(mainScenes.slice(12).every((scene) => scene.stageTheme === "paper")).toBe(true);
expect(findBeat("agent-handoff", "request")?.chatMode).toBe("full"); expect(findBeat("agent-handoff", "request")?.chatMode).toBe("full");
expect(findBeat("resume-output-evidence", "trace")?.chatMode).toBe("dock"); expect(findBeat("resume-output-evidence", "trace")?.chatMode).toBe("hidden");
}); });
it("keeps chat out of the way during proof-heavy demo beats", () => { it("keeps chat out of the way during proof-heavy demo beats", () => {
@@ -51,7 +51,8 @@ describe("defense storyboard catalog", () => {
expect(findBeat("typed-human-boundary", "approval")?.chatMode).toBe("hidden"); expect(findBeat("typed-human-boundary", "approval")?.chatMode).toBe("hidden");
expect(findBeat("typed-human-boundary", "cancel")?.chatMode).toBe("hidden"); expect(findBeat("typed-human-boundary", "cancel")?.chatMode).toBe("hidden");
expect(findBeat("resume-output-evidence", "resume")?.chatMode).toBe("hidden"); expect(findBeat("resume-output-evidence", "resume")?.chatMode).toBe("hidden");
expect(findBeat("resume-output-evidence", "trace")?.chatMode).toBe("dock"); expect(findBeat("resume-output-evidence", "output")?.chatMode).toBe("hidden");
expect(findBeat("resume-output-evidence", "trace")?.chatMode).toBe("hidden");
}); });
it("splits the demo climax into lifecycle, run, interrupt, and evidence scenes", () => { it("splits the demo climax into lifecycle, run, interrupt, and evidence scenes", () => {
@@ -227,7 +227,7 @@ export const mainScenes = defineScenes([
beats: [ beats: [
sceneBeat("resume", "Resume", "The submitted payload resumes the same persisted run.", { chatMode: "hidden", chatTheme: "light" }), sceneBeat("resume", "Resume", "The submitted payload resumes the same persisted run.", { chatMode: "hidden", chatTheme: "light" }),
sceneBeat("output", "Output", "The workflow produces the report and issue-board changes.", { chatMode: "hidden", chatTheme: "light" }), sceneBeat("output", "Output", "The workflow produces the report and issue-board changes.", { chatMode: "hidden", chatTheme: "light" }),
sceneBeat("trace", "Trace evidence", "Trace frames and protocol evidence remain inspectable.", { chatMode: "dock", chatTheme: "light", evidencePresentation: "receipt" }), sceneBeat("trace", "Trace evidence", "Trace frames and protocol evidence remain inspectable.", { chatMode: "hidden", chatTheme: "light", evidencePresentation: "receipt" }),
], ],
}, },
{ {