diff --git a/CHANGELOG.d/2.9.0-name-evidence-lineage-after-cited.md b/CHANGELOG.d/2.9.0-name-evidence-lineage-after-cited.md new file mode 100644 index 000000000..c41af2d62 --- /dev/null +++ b/CHANGELOG.d/2.9.0-name-evidence-lineage-after-cited.md @@ -0,0 +1,5 @@ +# 2.9.0 Name Event Lineage after landed cited evidence + +Open Public post from the landed Demo Corp members and the popup names +Event Lineage after Linked post evidence is current. Home list opens +do not. diff --git a/CHANGELOG.md b/CHANGELOG.md index a8bb0771a..b6cc075de 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,16 @@ All notable changes to this project are documented here. Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); versioning follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [2.9.0] - 2026-08-17 + +### Added + +- Opening Public post from the landed Demo Corp members now names the + next action after landed cited evidence: Linked post evidence is + current, then read Event Lineage on that post. Home list opens do + not add that copy. No TEPP theta is invented. No cutoff body is + invented (ADR 0016). + ## [2.8.0] - 2026-08-17 ### Added diff --git a/frontend/package.json b/frontend/package.json index 641d14d81..c15e3db5c 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,7 +1,7 @@ { "name": "frontend", "private": true, - "version": "2.8.0", + "version": "2.9.0", "type": "module", "scripts": { "dev": "vite", diff --git a/frontend/src/App.test.tsx b/frontend/src/App.test.tsx index 16891e3bb..ca589cdfc 100644 --- a/frontend/src/App.test.tsx +++ b/frontend/src/App.test.tsx @@ -1504,6 +1504,7 @@ describe("App, authenticated", () => { expect(screen.queryByRole("status", { name: "Ask next action" })).not.toBeInTheDocument(); expect(screen.queryByRole("status", { name: "Ask seed next action" })).not.toBeInTheDocument(); expect(screen.queryByRole("status", { name: "Ask citation next action" })).not.toBeInTheDocument(); + expect(screen.queryByRole("status", { name: "Evidence next action" })).not.toBeInTheDocument(); expect(screen.queryByRole("complementary", { name: "Evidence" })).not.toBeInTheDocument(); expect(screen.queryByText("Related to Ada West")).not.toBeInTheDocument(); expect(screen.queryByText("Related to Priya Nair")).not.toBeInTheDocument(); @@ -2478,6 +2479,16 @@ describe("App, authenticated", () => { expect( citedEvidence.compareDocumentPosition(askInput) & Node.DOCUMENT_POSITION_FOLLOWING, ).not.toBe(0); + const evidenceNext = await screen.findByRole("status", { name: "Evidence next action" }); + expect(evidenceNext).toHaveTextContent( + "Linked post evidence is current. Read Event Lineage on that post next.", + ); + expect( + citedEvidence.compareDocumentPosition(evidenceNext) & Node.DOCUMENT_POSITION_FOLLOWING, + ).not.toBe(0); + expect(evidenceNext.compareDocumentPosition(askInput) & Node.DOCUMENT_POSITION_FOLLOWING).not.toBe( + 0, + ); await waitFor(() => expect(document.getElementById("post-ask")).toHaveFocus()); } finally { HTMLElement.prototype.scrollIntoView = originalScrollIntoView; @@ -2850,6 +2861,9 @@ describe("App, authenticated", () => { expect( citedEvidence.compareDocumentPosition(affiliate) & Node.DOCUMENT_POSITION_FOLLOWING, ).not.toBe(0); + expect(await screen.findByRole("status", { name: "Evidence next action" })).toHaveTextContent( + "Linked post evidence is current. Read Event Lineage on that post next.", + ); await waitFor(() => expect(document.getElementById("post-ask")).toHaveFocus()); }); diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 55d27c59f..afb493fd1 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -262,6 +262,11 @@ function ChatPanel({ } /> ) : null} + {nameFirstAsk && firstCitedTitle && landedEvidencePostId ? ( +
+ {landedEvidenceNextAction(firstCitedTitle)} +
+ ) : null} {!seededOnly && (