From df247372e9f6e8b92a7da50cd84e85fd6702dc32 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Mon, 17 Aug 2026 16:36:59 +0000 Subject: [PATCH] fix: seed Late Demo public post after the analysis-run cutoff (v2.9.1) TEPP seed already landed on #74 through #118. Replay the remaining #110 counter-example: Late Demo public post (2026-01-13) stays off the January 12 Demo Corp run. No second cutoff filter. No fabricated theta. Co-authored-by: Seongho Bae --- CHANGELOG.d/2.9.1-late-demo-cutoff-post.md | 5 +++++ CHANGELOG.md | 10 ++++++++++ ...0016-analysis-run-knowledge-cutoff-posts.md | 5 +++-- frontend/package.json | 2 +- lineageweave/__init__.py | 2 +- pyproject.toml | 2 +- scripts/seed_demo_data.py | 18 ++++++++++++++++++ tests/test_seed_late_demo_post.py | 13 +++++++++++++ uv.lock | 2 +- 9 files changed, 53 insertions(+), 6 deletions(-) create mode 100644 CHANGELOG.d/2.9.1-late-demo-cutoff-post.md create mode 100644 tests/test_seed_late_demo_post.py diff --git a/CHANGELOG.d/2.9.1-late-demo-cutoff-post.md b/CHANGELOG.d/2.9.1-late-demo-cutoff-post.md new file mode 100644 index 000000000..d952a59c4 --- /dev/null +++ b/CHANGELOG.d/2.9.1-late-demo-cutoff-post.md @@ -0,0 +1,5 @@ +# 2.9.1 Late Demo public post + +Seed inserts Late Demo public post after the January 12 knowledge +cutoff so the ADR 0016 list filter has a falsifiable own-corp +counter-example. No second cutoff implementation. diff --git a/CHANGELOG.md b/CHANGELOG.md index b6cc075de..d9ac19189 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.1] - 2026-08-17 + +### Added + +- `make seed` inserts Late Demo public post (2026-01-13) so the + January 12 Demo Corp run's knowledge cutoff is falsifiable: Demo + public post still opens; Late Demo does not. The cutoff filter + itself already lives on this stack (ADR 0016). TEPP seed already + landed through `tepp_client` (#118). + ## [2.9.0] - 2026-08-17 ### Added diff --git a/docs/adr/0016-analysis-run-knowledge-cutoff-posts.md b/docs/adr/0016-analysis-run-knowledge-cutoff-posts.md index 373c783ac..a0c53e1bc 100644 --- a/docs/adr/0016-analysis-run-knowledge-cutoff-posts.md +++ b/docs/adr/0016-analysis-run-knowledge-cutoff-posts.md @@ -45,8 +45,9 @@ run. ## Consequences - After `make seed`, the Demo Corp lineage run lists Demo public post - and other in-cutoff Demo Corp titles. The later fixture account-review - post (2026-02-10) does not appear. + and other in-cutoff Demo Corp titles. Late Demo public post + (2026-01-13) and the later fixture account-review post (2026-02-10) + do not appear. - Open the run: Demo public post is marked updated after cutoff (`updated_at` 2026-01-13). Demo private post is not. - Open a marked title: the popup shows **Body this run knew** from diff --git a/frontend/package.json b/frontend/package.json index c15e3db5c..92f5c8303 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,7 +1,7 @@ { "name": "frontend", "private": true, - "version": "2.9.0", + "version": "2.9.1", "type": "module", "scripts": { "dev": "vite", diff --git a/lineageweave/__init__.py b/lineageweave/__init__.py index ec76789c6..00fbafda0 100644 --- a/lineageweave/__init__.py +++ b/lineageweave/__init__.py @@ -55,4 +55,4 @@ "sentence_excerpts", ] -__version__ = "2.9.0" +__version__ = "2.9.1" diff --git a/pyproject.toml b/pyproject.toml index 3dcf9a7eb..13b8245cc 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "lineageweave" -version = "2.9.0" +version = "2.9.1" 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" } diff --git a/scripts/seed_demo_data.py b/scripts/seed_demo_data.py index e1f4b336f..c2e915d2b 100644 --- a/scripts/seed_demo_data.py +++ b/scripts/seed_demo_data.py @@ -309,6 +309,24 @@ def seed( "updated_at = '2026-01-10T12:00:00Z' " "where post_title = 'Demo private post'" ) + # #110 counter-example: a later own-corp public post stays off + # the January 12 run list (created_at after knowledge_cutoff). + late_demo_post_created_at = "2026-01-13T09:00:00Z" + cur.execute("select post_id from source_post where post_title = 'Late Demo public post'") + if cur.fetchone() is None: + cur.execute( + "insert into source_post (author_account_id, corporate_entity_id, process_unit_id, post_title, post_body, voc_type_code, visibility_code, created_at, updated_at) " + "values (%s, %s, %s, 'Late Demo public post', " + "'Written after the Demo Corp lineage-run knowledge cutoff.', " + "'voc', 'public', %s, %s)", + ( + account_ids["demo.analyst"], + corporate_entity_id, + process_units["DEMO-PU-A"], + late_demo_post_created_at, + late_demo_post_created_at, + ), + ) cur.execute( "insert into post_counterparty_entity (post_id, counterparty_entity_name, relationship_type_code) " "values (%s, 'Northridge Grid', 'rel_voc'), (%s, 'Demo Corp', 'rel_voc') " diff --git a/tests/test_seed_late_demo_post.py b/tests/test_seed_late_demo_post.py new file mode 100644 index 000000000..949abd46f --- /dev/null +++ b/tests/test_seed_late_demo_post.py @@ -0,0 +1,13 @@ +"""#110 cutoff counter-example stays in the Demo Corp seed.""" + +from pathlib import Path + +_SEED_SCRIPT = Path(__file__).resolve().parents[1] / "scripts" / "seed_demo_data.py" + + +def test_seed_includes_late_demo_public_post_after_cutoff() -> None: + """Late Demo public post is dated after the January 12 knowledge cutoff.""" + seed = _SEED_SCRIPT.read_text(encoding="utf-8") + assert "Late Demo public post" in seed + assert 'late_demo_post_created_at = "2026-01-13T09:00:00Z"' in seed + assert "2026-01-12T12:00:00Z" in seed diff --git a/uv.lock b/uv.lock index c12c6964e..360749b19 100644 --- a/uv.lock +++ b/uv.lock @@ -454,7 +454,7 @@ wheels = [ [[package]] name = "lineageweave" -version = "2.9.0" +version = "2.9.1" source = { virtual = "." } dependencies = [ { name = "certifi" },