feat: start a pending lineage reconstruction (v0.87.0) - #142
Conversation
POST /api/analysis-runs/{id}/start runs ThreadWeave on the authorized
cutoff bag and persists run-scoped edges. The home detail starts that
row so a buyer can confirm the designed A-100 fork. TEPP start stays
422 — this path never invents a theta.
Co-authored-by: Seongho Bae <seonghobae@users.noreply.github.com>
|
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. |
There was a problem hiding this comment.
Stale comment
Prefer this head for the post-#125 buyer gap.
POST /api/analysis-runs/{id}/startreconstructs the authorized cutoff bag through ThreadWeave, persists run-scoped edges, and rejects TEPP so this path cannot invent a theta. The A-100 fork test is the right accuracy contract.Do not merge before #74. Do not land #133 (competing create) or #147 (same slice, wrong base
main). A durable outbox/Valkey worker can follow this in-process start; do not open a third start PR.Before merge, confirm a second click on Start while the first request is in flight cannot append a second Running event (no lease yet). After start succeeds, open the run and match the titled parent→child edges to the designed pricing-follow-up fork.
Sent by Cursor Automation: Fix Issues
There was a problem hiding this comment.
Do not merge this head. Start reconstructs a live cutoff re-query, a double-click can 500, the Result digest is persisted but not shown, and CI never calls records_from_source_posts.
Landing vehicle is #152 (8ff0fee): lock before Running, freeze analysis_source_snapshot_member at create, show the Result prefix, keep edge titles public-or-affiliated, and check the A-100 fork in CI. TEPP start stays 422.
Retarget #152 onto feat/role-responsibility-agent-ontology if it opened against main. Do not merge before #74. Do not land #133. Do not mix #129/#134.
Next action: Open #152, start reconstruction on the Pending Demo Corp row, hover the Result prefix, and confirm the designed A-100 fork.
Sent by Cursor Automation: Fix Issues
There was a problem hiding this comment.
Verdict
Do not merge. This head is dirty against the current ontology tip.
Why
Base is still ca9bd82 (pre-#148 / pre-#154 / pre-#168). The ontology branch is now 69c035b (v0.87.0 retention purge) and the requester-cutoff landing is #168 6266dc5 (v0.87.1). A Start button on a stale create/list stack will fight those clocks.
What still belongs here
POST /api/analysis-runs/{id}/starton a Pending lineage run, ThreadWeave on the authorized cutoff bag, persist reconstruction + lineage edges, TEPP stays 422. That is still the buyer gap after Request.- Do not invent a theta. Do not wipe live
post_lineage_edge.
Next action
Rebase this slice onto #168 (or #178 if that 404 follow-up lands first). Keep TEPP at 422. Do not open a third start PR — update this head. Concurrent Start still needs no new PR for the missing lease.
Sent by Cursor Automation: Fix Issues


Buyer gap: after #125 an operator could record a Pending lineage run, then could not start reconstruction. Seed still owned the only Succeeded Demo Corp tree.
This is ADR 0013 follow-up 3 (in-process start) / ADR 0019 on the live #74 stack (
3c17fd3, includes #125 and #122). Do not merge before #74. Do not land competing create rewrite #133. Do not reuse ADR 0018 / 0.86.0 (#122). Do not mix Storybook/purge (#129/#134).POST /api/analysis-runs/{id}/startruns ThreadWeave on the authorized cutoff baganalysis_run_reconstruction+analysis_run_lineage_edge(3NF, immutable, two-or-more-word names)Verified:
tests/test_analysis_run_start.py+ reconstruction schema (17 passed, 1 skipped without Postgres); frontend 49 tests + oxlint. Livetest_start_analysis_run_recovers_the_a100_forkself-skips withoutmake up.Next action: Request a lineage reconstruction, open the Pending Demo Corp row, start reconstruction, and confirm the designed A-100 fork (revised quote + delivery question under the pricing follow-up).