fix: fail-closed TEPP seed on the shared Demo Corp snapshot - #118
Conversation
Buyer gap: home Analysis runs only showed lineage reconstruction. make seed now records a Demo Corp TEPP measurement via tepp_client. The default transport is unavailable, so the row is Failed / tepp_not_available -- never a fabricated theta. TEPP stays a wire client, not a local psychometric engine.
#111 still marked a live unused envelope Succeeded, named a different capture than the registry row, and re-inserted frozen counts. Seed now reuses the lineage snapshot (ADR 0013), skips count inserts after the first run, and keeps missing or unused TEPP Failed. The home list tells the operator to open the run and connect TEPP; detail history keeps tepp_not_available. 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. |
8c3694f
into
feat/role-responsibility-agent-ontology
There was a problem hiding this comment.
Stale comment
Prefer #124 over this head.
The fail-closed TEPP seed is the right buyer slice: shared Demo Corp snapshot,
tepp_clientonly, Failed for a missing transport or an unused accepted envelope, no fabricated theta. That part should land.Do not merge this head as-is.
analysisRunNextActionuses TEPP copy for every failed run, so a failed lineage row would tell the operator to connect the measurement service. #124 keeps the seed and splits the list next-action byrun_kind_code. It also runs GitHub Checks on stacked PRs, which this branch never received becausetests.ymlonly triggered on PRs tomain.Do not merge #111 at
34fdb892(separate snapshot, invented Succeeded if a transport accepted). Do not land #115 (still stacked on closed #110). Do not merge #118 or #124 before #74.Next buyer action: review #124, then open a Failed TEPP row after
make seedand connect a live TEPP transport. A failed lineage row retries reconstruction.Sent by Cursor Automation: Fix Issues
There was a problem hiding this comment.
Review of 934e6e0 (COMMENT — preferred TEPP-seed landing, not merge-ready yet)
This is the right stack: base is #74 (feat/role-responsibility-agent-ontology), not the closed #110 cutoff branch. Prefer this head over #111 (34fdb892) and #115 (aa20be0).
The fail-closed TEPP contract matches AGENTS.md: tepp_client is called, missing transport / unused accepted envelope stay Failed (tepp_not_available / tepp_result_not_persisted), and no theta is invented.
Do not merge before #74. Do not self-approve. Independent review still required.
Same residual copy bugs as #115
analysisRunNextAction / analysisRunCorpusHint live inline in App.tsx on this head and have the same issues: TEPP-only next-action copy on every failed run, and a corpus hint that always says "replace Failed". Gate those strings. Also drive _seed_demo_tepp_run in tests so a hardcoded Succeeded insert cannot pass.
Frontend verification on this head was 43 tests; #115's extracted AnalysisRunsPanel suite is 53. Keep the fail-closed seed; do not open a fourth TEPP-seed PR — apply the copy/insert-path repair here.
Sent by Cursor Automation: Fix Issues
| * list tells the operator to open the run, then reconnect the service. | ||
| */ | ||
| function analysisRunNextAction(run: AnalysisRun): string | null { | ||
| if (run.status_code === "analysis_status_failed") { |
There was a problem hiding this comment.
Same residual as #115: this next-action string is TEPP-only ("connect the measurement service") but the predicate is any analysis_status_failed row. Gate on analysis_run_tepp or use generic copy, and add a failed-lineage fixture.
#118 landed on the role-responsibility branch. Keep the TEPP seed and the failed-lineage / succeeded-TEPP copy split. Co-authored-by: Seongho Bae <seonghobae@users.noreply.github.com>
POST /api/analysis-runs records snapshot, counts, run, scope, and Pending in one transaction. The home button opens that row so a buyer can confirm the cutoff corpus. Reconstruction and TEPP stay later slices — this write never invents a theta. Rebased onto the live #74 head (includes #118, #121, and #124). Failed lineage copy stays kind-specific and does not mention TEPP; only Failed TEPP mentions the measurement service. Seed insert now asserts Failed / tepp_not_available. Co-authored-by: Seongho Bae <seonghobae@users.noreply.github.com>
POST /api/analysis-runs records snapshot, counts, run, scope, and Pending in one transaction. The home button opens that row so a buyer can confirm the cutoff corpus. Reconstruction and TEPP stay later slices — this write never invents a theta. Rebased onto the live #74 head (includes #118, #121, and #124). Failed lineage copy stays kind-specific and does not mention TEPP; only Failed TEPP mentions the measurement service. Seed insert now asserts Failed / tepp_not_available. Co-authored-by: Seongho Bae <seonghobae@users.noreply.github.com>
POST /api/analysis-runs records snapshot, counts, run, scope, and Pending in one transaction. The home button opens that row so a buyer can confirm the cutoff corpus. Reconstruction and TEPP stay later slices — this write never invents a theta. Rebased onto the live #74 head (includes #118, #121, and #124). Failed lineage copy stays kind-specific and does not mention TEPP; only Failed TEPP mentions the measurement service. Seed insert now asserts Failed / tepp_not_available. Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: Seongho Bae <seonghobae@users.noreply.github.com>


Repair for #111 after it was retargeted onto #74. Do not merge #111 at
34fdb892and do not land #115 (still stacked on closed #110).Buyer gap: home Analysis runs must show a TEPP kind without inventing a score.
make seedwritesanalysis_run_teppthroughtepp_clienton the shared Demo Corp snapshot (ADR 0013)tepp_not_available/tepp_result_not_persisted)analysis_source_countinsertsVerified:
tests/test_seed_tepp_run.py+tests/test_tepp_client.py(9 passed); frontend oxlint + 43 tests + production build.