fix: seed TEPP on the shared snapshot and prove the client (v0.84.0) - #115
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.
Keep the missing TEPP transport as Failed / tepp_not_available, reuse the Demo Corp capture for both run kinds, skip frozen count inserts on re-seed, and show the next action plus detail history so operators can tell a dropped channel from a calibrated miss. Co-authored-by: Seongho Bae <seonghobae@users.noreply.github.com>
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.
Review of aa20be0 (COMMENT, not merge-ready)
The TEPP contract on this head is sound: tepp_client is called, a missing transport stays Failed / tepp_not_available, a live unused envelope stays Failed / tepp_result_not_persisted, and no theta is invented. #111's must-fix items from this lane (top-level imports, shared snapshot digest, freeze-safe count skip, client spy, Failed-row click-through, list vs detail split) are addressed.
Do not merge this PR. It is still stacked on feat/analysis-run-cutoff-posts (#110). Prefer #118 (934e6e0 on #74) as the TEPP-seed landing. Do not merge #111. Do not invent a local psychometric model.
Residual (copy and insert-path coverage, not fabricated-measurement bugs)
analysisRunNextActionuses TEPP-only copy for every failed run. Gate onanalysis_run_teppor use generic copy, and add a failed-lineage fixture.analysisRunCorpusHintalways says "replace Failed". Keep the measurement-bag sentence; condition the re-run clause on failed status.tests/test_seed_tepp_run.pyspiestepp_seed_outcomeand the count helper, but never drives_seed_demo_tepp_run. A hardcoded Succeeded insert would still pass.
Dummy d*64 / e*40 match lineage b*64 / c*40 and satisfy NOT NULL hex checks. Do not invent a real measurement digest.
Product CI (.github/workflows/tests.yml) only runs on PRs to main. This stacked base has no product check runs. That is not a reason to merge.
Independent review still required. This automation will not approve or merge #115.
Sent by Cursor Automation: Fix Issues
| * list tells the operator to open the run, then reconnect the service. | ||
| */ | ||
| export function analysisRunNextAction(run: AnalysisRun): string | null { | ||
| if (run.status_code === "analysis_status_failed") { |
There was a problem hiding this comment.
analysisRunNextAction treats every analysis_status_failed row as a TEPP reconnect. After make seed only the TEPP row is Failed, so the list is correct today. A later failed lineage run would tell the operator to connect the measurement service.
Gate on run.run_kind_code === "analysis_run_tepp", or use generic copy such as "Open this run to see why it failed." Add a failed-lineage fixture that expects null or the generic string.
| export function analysisRunCorpusHint(run: AnalysisRun): string | null { | ||
| if (run.run_kind_code !== "analysis_run_tepp") return null; | ||
| return ( | ||
| "These posts are the cutoff corpus TEPP would measure. Connect a TEPP " + |
There was a problem hiding this comment.
This sentence always says "replace Failed". True for the seeded row. A later Succeeded TEPP run would make that clause false.
Keep the measurement-bag sentence. Condition the Failed / re-run clause on status_code === "analysis_status_failed".
| assert request.output_profile == "calibrated_event_measurement" | ||
|
|
||
|
|
||
| def test_tepp_seed_outcome_calls_client_and_does_not_invent_a_score() -> None: |
There was a problem hiding this comment.
This spies tepp_seed_outcome and the count helper. It never drives _seed_demo_tepp_run. A hardcoded Succeeded insert in the seed helper would still pass.
Add a cursor/spy around the insert helper, or an authz_db case that the Demo TEPP run exists with Failed / tepp_not_available and no measurement payload.
|
Stack is now #74 → this work, not closed #110. Verified on current #74 (
This PR cannot be reopened after its head branch was force-pushed onto current #74. Continuation is #242 ( #111 stays draft/closed. Do not merge this work onto Local tests on #242: |


Stack
#74 (
feat/role-responsibility-agent-ontology) → this PR. Do not merge ontomainbefore #74. Prefer this over closed draft #111.What is already on #74
source_post.created_at <= knowledge_cutoff) landed on Role, responsibility, and agent ontology (v2.10.0) #74 at88a1a0fand later slices.tepp_clienton the shared Demo Corp snapshot landed as fix: fail-closed TEPP seed on the shared Demo Corp snapshot #118 (8c3694f): Failed /tepp_not_available, no fabricated theta, re-seed skips frozen counts, home list showsTEPP measurement · Failed · Demo Corpplus next action.What this PR adds
The remaining #110 seed counter-example, replayed onto current #74 (
017f580):make seedinserts Late Demo public post (2026-01-13).Verification
pytest tests/test_seed_late_demo_post.py tests/test_seed_tepp_run.py tests/test_tepp_client.py— 11 passedSame commits also live on
cursor/tepp-seed-on-74-6733.