Skip to content

feat: apply analysis-run knowledge cutoff to visible posts (v0.83.0) - #108

Closed
cursor[bot] wants to merge 22 commits into
feat/role-responsibility-agent-ontologyfrom
cursor/bc-4e088f14-f62b-4ed5-90d0-2167410c4cda-226d
Closed

feat: apply analysis-run knowledge cutoff to visible posts (v0.83.0)#108
cursor[bot] wants to merge 22 commits into
feat/role-responsibility-agent-ontologyfrom
cursor/bc-4e088f14-f62b-4ed5-90d0-2167410c4cda-226d

Conversation

@cursor

@cursor cursor Bot commented Aug 16, 2026

Copy link
Copy Markdown
Contributor

Buyer impact

Open an analysis run and you now see only posts that existed at that run's knowledge cutoff. A later own-corp post no longer appears inside a historical reconstruction. The detail also shows revision and configuration digest prefixes so you can confirm the run matches the code you approved. If the list is empty, open a later run or ask an administrator to capture a newer snapshot.

What changed

  • GET /api/analysis-runs/{id} applies source_post.created_at <= knowledge_cutoff on top of the existing ABAC scope filter (ADR 0016).
  • Home detail shows Revision / Config prefixes from code_revision_sha and configuration_sha256.
  • AnalysisRunsPanel is extracted from App.tsx and inventoried for Storybook.
  • Frontend lint, 46 tests, and production build pass. The real-PostgreSQL API case is in backend/tests/test_api.py (self-skips without a live DSN).

Stack

Draft-stacked on PR #89 / #74 (feat/role-responsibility-agent-ontology). Includes the #89 registry commits plus this v0.83.0 slice. Do not merge before #74 reaches protected main and #89's exact-head evidence is regenerated.

Refs #79.

Open in Web View Automation 

seonghobae and others added 22 commits August 16, 2026 14:42
The fail-closed rollback script starts an explicit transaction. On an
autocommit connection a RAISE left that transaction aborted, so the
empty-registry cleanup could not run.
#95)

Port the #77 analysis-run evidence surface onto the #89 registry without
a second app or raw source. GET /api/analysis-runs is SQL-scoped; hidden
tenant runs 404. After make seed, Demo Corp shows Lineage reconstruction
as Succeeded with the synthetic document count.
Buyer gap: after #95 the home Analysis runs row was inert text.
Clicking the seeded Demo Corp lineage run now loads
GET /api/analysis-runs/{id} and shows cutoff, requested date, and
document count. Hidden runs stay not-visible. Synthetic aggregates
only -- never a DSN or source SQL.
Buyer gap: after #100 the detail showed cutoff and counts but not the
legal lifecycle the registry already stored.

GET /api/analysis-runs/{id} now returns labeled status_history
(Pending → Running → Succeeded with occurrence times). The list stays
latest-status only. Hidden runs still 404 and never leak events.
Failure codes stay machine tokens. Synthetic Demo Corp seed only.
Buyer gap: after #102 the run detail showed history but no way to
open a post. Detail now lists ABAC-visible titles in the run's
scope. Other-corp private posts stay hidden. List payloads stay
aggregates-only. Synthetic titles only.
PR #91 landed an adaptive-orchestration ADR 0013 on the #74 base after
this slice already used 0013 for the normalized analysis-run registry.
Renumber the adaptive record to 0015 so ADR numbers stay unique.

Co-authored-by: Seongho Bae <[email protected]>
The #74 changelog fold still called that decision ADR 0013. This stack
keeps the analysis-run registry as ADR 0013, so the adaptive record is
0015.

Co-authored-by: Seongho Bae <[email protected]>
A later own-corp post no longer appears inside a historical run.
Detail shows revision and configuration digest prefixes so an
operator can confirm the run they approved. AnalysisRunsPanel is
extracted for the Storybook inventory.

Co-authored-by: Seongho Bae <[email protected]>
@seonghobae

Copy link
Copy Markdown
Contributor

Review: this draft is the right v0.83.0 buyer slice (cutoff-scoped posts + digest prefixes + AnalysisRunsPanel), but two gaps would empty make seed and fail tsc -b:

  1. Seeded Demo public/private posts used default created_at=now(), so the January 12 run would render "No posts were available at this cutoff."
  2. AnalysisRunsPanel used AnalysisRun without importing it (verbatimModuleSyntax).

PR #110 (feat/analysis-run-cutoff-posts) replays this commit onto current #74 (f27ecfb, includes #107) and applies those fixes. This draft can stay closed or open; do not merge it in parallel.

@seonghobae

Copy link
Copy Markdown
Contributor

Superseded by #110 (cutoff posts, seed created_at fix) and #111 (TEPP seed). This draft should stay closed/not merged.

@seonghobae

Copy link
Copy Markdown
Contributor

Draft duplicate of #110. Cutoff work continues on #110/#114 or already on #74 (88a1a0f).

@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.

2 participants