Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions CHANGELOG.d/1.9.0-ask-after-related-nodes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# 1.9.0 Ask after current related nodes

Opening Public post from the landed Demo Corp members now names
related nodes as current and offers **Ask about this lineage** next.
Home list opens do not add that copy.
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,15 @@ 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).

## [1.9.0] - 2026-08-17

### Added

- Opening Public post from the landed Demo Corp members now names the
next action after Ada West related nodes are current: **Ask about
this lineage**. Home list opens do not add that copy. No TEPP theta
is invented. No cutoff body is invented (ADR 0016).

## [1.8.0] - 2026-08-17

### Added
Expand Down
2 changes: 2 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,5 +53,7 @@ Event Lineage, Keyman, and evaluation on that post. The popup Event
Lineage DAG marks that post current. After that current node, the
popup names Keyman and evaluation as the next read. After landed
evaluation, the popup names the first Keyman as the next read.
After that person's related nodes land, the popup names Ask about
this lineage as the next read.
Changing the week first still focuses the report period field. Mean θ
stays on the period-report panel.
2 changes: 1 addition & 1 deletion frontend/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "frontend",
"private": true,
"version": "1.8.0",
"version": "1.9.0",
"type": "module",
"scripts": {
"dev": "vite",
Expand Down
13 changes: 12 additions & 1 deletion frontend/src/App.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -1475,6 +1475,7 @@ describe("App, authenticated", () => {
screen.queryByRole("status", { name: "Event Lineage next action" }),
).not.toBeInTheDocument();
expect(screen.queryByRole("status", { name: "Keyman next action" })).not.toBeInTheDocument();
expect(screen.queryByRole("status", { name: "Related-nodes next action" })).not.toBeInTheDocument();
expect(screen.queryByText("Related to Ada West")).not.toBeInTheDocument();
const popup = document.querySelector(".popup-panel");
expect(popup).not.toBeNull();
Expand Down Expand Up @@ -2328,7 +2329,14 @@ describe("App, authenticated", () => {
expect(keymanNext.compareDocumentPosition(related) & Node.DOCUMENT_POSITION_FOLLOWING).not.toBe(
0,
);
expect(related.compareDocumentPosition(affiliate) & Node.DOCUMENT_POSITION_FOLLOWING).not.toBe(
const relatedNext = screen.getByRole("status", { name: "Related-nodes next action" });
expect(relatedNext).toHaveTextContent(
"Related nodes for Ada West are current. Ask about this lineage next.",
);
expect(related.compareDocumentPosition(relatedNext) & Node.DOCUMENT_POSITION_FOLLOWING).not.toBe(
0,
);
expect(relatedNext.compareDocumentPosition(affiliate) & Node.DOCUMENT_POSITION_FOLLOWING).not.toBe(
0,
);
} finally {
Expand Down Expand Up @@ -2602,6 +2610,9 @@ describe("App, authenticated", () => {
"Ada West is the first Keyman. Read that person next.",
);
expect(await screen.findByRole("heading", { name: "Related to Ada West" })).toBeInTheDocument();
expect(screen.getByRole("status", { name: "Related-nodes next action" })).toHaveTextContent(
"Related nodes for Ada West are current. Ask about this lineage next.",
);
});

it("lets post_admin rebuild the period report", async () => {
Expand Down
13 changes: 12 additions & 1 deletion frontend/src/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -202,7 +202,9 @@ function ChatPanel({ postId, accessToken }: { postId: string; accessToken: strin

return (
<section className="popup-section chat-section">
<h3>Ask about this lineage</h3>
<h3 id="post-ask" tabIndex={-1}>
Ask about this lineage
</h3>
{!seededOnly && (
<div className="chat-input-row">
<input
Expand Down Expand Up @@ -279,6 +281,10 @@ function firstKeymanNextAction(personName: string): string {
return `${personName} is the first Keyman. Read that person next.`;
}

function relatedNodesCurrentNextAction(personName: string): string {
return `Related nodes for ${personName} are current. Ask about this lineage next.`;
}

function EventLineageSection({
lineage,
graph,
Expand Down Expand Up @@ -847,6 +853,11 @@ function KeymanPanel({
</section>
{afterList}
{afterList && relatedBlock}
{afterList && landFirstKeyman && selectedName && related !== null ? (
<p className="post-meta" role="status" aria-label="Related-nodes next action">
{relatedNodesCurrentNextAction(selectedName)}
</p>
) : null}
</>
);
}
Expand Down
2 changes: 1 addition & 1 deletion lineageweave/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,4 +55,4 @@
"sentence_excerpts",
]

__version__ = "1.8.0"
__version__ = "1.9.0"
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "lineageweave"
version = "1.8.0"
version = "1.9.0"
description = "Reconstructs git-branch-style lineage DAGs from scattered short records using multi-channel score fusion and LLM adjudication."
readme = "README.md"
license = { text = "MIT" }
Expand Down