Skip to content

feat: warn that cutoff-rewritten titles open the live body (v0.88.0) - #162

Closed
seonghobae wants to merge 1 commit into
feat/analysis-run-live-write-clockfrom
feat/analysis-run-cutoff-body-warning
Closed

feat: warn that cutoff-rewritten titles open the live body (v0.88.0)#162
seonghobae wants to merge 1 commit into
feat/analysis-run-live-write-clockfrom
feat/analysis-run-cutoff-body-warning

Conversation

@seonghobae

Copy link
Copy Markdown
Contributor

Buyer gap

#150 marks analysis-run titles rewritten after the cutoff, but opening one still showed the live body with no popup honesty. After make seed, Demo public post looked like reconstructed evidence.

What the operator sees

Stacked on #150 (feat/analysis-run-live-write-clock). Do not merge before #74.

  • Opening Updated after cutoff from an analysis-run detail shows a popup status: this is the live body, not a cutoff snapshot. The earlier text is not stored, so the popup does not invent it.
  • After make seed, open Lineage reconstruction · Succeeded · Demo Corp, click Demo public post: the warning is above the live body.
  • Demo private post and the home post list do not show the warning.
  • Cutoff body versioning stays a later slice (ADR 0016).

Boundaries

  • Synthetic fixtures only. No real-org names or records.
  • TEPP stays behind tepp_client. This write does not invent a theta.
  • Null channels stay dropped. Reconstruct grouping keys are unchanged.
  • No AGENTS.md rewrite. No admin merge retry.

Tests

  • frontend/src/App.test.tsx — marked title shows the live-body status; unmarked run title and the home post list do not.

Supersedes competing 0.87.0 drafts that invent later slices on a stale #74 base.

Opening a marked analysis-run title still shows the live post. The
popup now says so instead of inventing a cutoff snapshot.
@cursor

cursor Bot commented Aug 16, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

@coderabbitai

coderabbitai Bot commented Aug 16, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 72e4bf36-0b80-4681-93ec-e47c3630af32

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review

Do not merge this head. The popup warning is the right slice on #150, but the status tells the operator what the product does not store instead of the next action required by ADR 0016.

analysisRunLivePostWarning on the run list already says to compare marked bodies with this run. analysisRunOpenedBodyWarning switches to “the earlier text is not stored, so this popup does not invent it.” That is developer honesty. The operator is looking at the live body and needs to compare it with this run before treating the text as reconstructed evidence.

A successor on cursor/bc-482049cd-0dc4-4e6a-b4e1-acd8b86c8202-4a5e will keep this warning, name that next action, give the status a stable AccName, extract the amber token, and lock related-post clear. Prefer that landing. Do not merge this before #150 and #74. Do not invent a cutoff snapshot or a TEPP theta.

CodeRabbit skipped this base (not the default branch). CLI agent auth is not available in this environment.

Open in Web View Automation 

Sent by Cursor Automation: Fix Issues

Comment thread frontend/src/App.tsx
const when = cutoffDate ? `the ${cutoffDate} ` : "";
return (
`This is the live body, not the version known at ${when}analysis-run cutoff. ` +
"The earlier text is not stored, so this popup does not invent it."

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This sentence is developer honesty, not the next action. The run-list helper already tells the operator to compare marked bodies with this run. The popup should continue that action, for example: “This is the live body, not a cutoff snapshot. Compare it with this 2026-01-12 run before you treat it as reconstructed evidence.” Do not invent the earlier text.

Comment thread frontend/src/App.tsx
{new Date(post.created_at).toLocaleString()}
</p>
{liveBodyWarning ? (
<p className="popup-live-body-warning" role="status">

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the only status today, so uniqueness holds. AccName is name-from-content only, and the new test queries the unnamed role. Add a stable name such as aria-label="Live body warning" and query that name so a second live region cannot steal the assertion.

Comment thread frontend/src/App.test.tsx
);
await waitFor(() => expect(screen.getByText("The full body text.")).toBeInTheDocument());
expect(screen.getByRole("status")).toHaveTextContent(
"This is the live body, not the version known at the 2026-01-12 analysis-run cutoff. The earlier text is not stored, so this popup does not invent it.",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This locks the honesty sentence. After the copy change, assert the compare-with-this-run action. Also walk Open post: Linked post after a marked open and assert the status is gone — selectPost without options already clears the flag, but no test covers that path.

Comment thread frontend/src/App.css
.popup-live-body-warning {
margin: 0.75rem 0 1rem;
padding: 0.65rem 0.75rem;
border-left: 3px solid #b45309;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

New amber hex. --lw-font-size-meta already exists for 0.85rem. Add --lw-color-warning beside the existing --lw-* tokens and use it here. Do not install Storybook on this slice.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do not merge #162 at 296fa30.

This popup-warning increment is the right buyer next action, but it stacks on dirty #150 (b4e6d2b) against a stale #74 base. Current #74 is 69c035b (already v0.87.0 retention purge and tokens).

Use #176 (7e4a4b0) instead: write-clock marks plus this live-body popup status, rebased onto current #74 as v0.88.0. After make seed, open the Demo Corp lineage run, click Demo public post, and read the live-body status above the text. Demo private post and the home list stay quiet.

#167 still stacks on this dirty head. Rebase it onto #176 after #74, or close it in favor of a #176-based successor.

Queued or predecessor-head gates are non-passing. This automation cannot merge.

View PR

Open in Web View Automation 

Sent by Cursor Automation: Fix Issues

@seonghobae

Copy link
Copy Markdown
Contributor Author

Superseded by #194, which squash-merged the cutoff live-body warning onto live #74 (ba5b8c14, v0.90.0). Do not merge this head.

@seonghobae seonghobae closed this Aug 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant