Skip to content

fix: fail-closed TEPP seed on the shared Demo Corp snapshot - #118

Merged
seonghobae merged 2 commits into
feat/role-responsibility-agent-ontologyfrom
cursor/bc-f2ac3ba2-2de5-4cb8-bb4a-4eb755e1790f-0e64
Aug 16, 2026
Merged

fix: fail-closed TEPP seed on the shared Demo Corp snapshot#118
seonghobae merged 2 commits into
feat/role-responsibility-agent-ontologyfrom
cursor/bc-f2ac3ba2-2de5-4cb8-bb4a-4eb755e1790f-0e64

Conversation

@cursor

@cursor cursor Bot commented Aug 16, 2026

Copy link
Copy Markdown

Repair for #111 after it was retargeted onto #74. Do not merge #111 at 34fdb892 and do not land #115 (still stacked on closed #110).

Buyer gap: home Analysis runs must show a TEPP kind without inventing a score.

  • make seed writes analysis_run_tepp through tepp_client on the shared Demo Corp snapshot (ADR 0013)
  • Missing transport or an unused accepted envelope stays Failed (tepp_not_available / tepp_result_not_persisted)
  • Re-seed skips frozen analysis_source_count inserts
  • Home list says to open the Failed row and connect TEPP; detail history keeps the machine code

Verified: tests/test_seed_tepp_run.py + tests/test_tepp_client.py (9 passed); frontend oxlint + 43 tests + production build.

Open in Web View Automation 

seonghobae and others added 2 commits August 17, 2026 00:25
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>
@cursor
cursor Bot requested a review from seonghobae August 16, 2026 15:32
@seonghobae
seonghobae marked this pull request as ready for review August 16, 2026 15:32
@cursor

cursor Bot commented Aug 16, 2026

Copy link
Copy Markdown
Author

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.

@seonghobae
seonghobae merged commit 8c3694f into feat/role-responsibility-agent-ontology Aug 16, 2026
1 check passed

@cursor cursor Bot left a comment

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale comment

Prefer #124 over this head.

The fail-closed TEPP seed is the right buyer slice: shared Demo Corp snapshot, tepp_client only, Failed for a missing transport or an unused accepted envelope, no fabricated theta. That part should land.

Do not merge this head as-is. analysisRunNextAction uses 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 by run_kind_code. It also runs GitHub Checks on stacked PRs, which this branch never received because tests.yml only triggered on PRs to main.

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 seed and connect a live TEPP transport. A failed lineage row retries reconstruction.

Open in Web View Automation 

Sent by Cursor Automation: Fix Issues

Comment thread frontend/src/App.tsx

@cursor cursor Bot left a comment

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Open in Web View Automation 

Sent by Cursor Automation: Fix Issues

Comment thread frontend/src/App.tsx
* 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") {

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

cursor Bot pushed a commit that referenced this pull request Aug 16, 2026
#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>
cursor Bot pushed a commit that referenced this pull request Aug 16, 2026
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>
cursor Bot pushed a commit that referenced this pull request Aug 16, 2026
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>
cursor Bot added a commit that referenced this pull request Aug 16, 2026
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>
cursor Bot pushed a commit that referenced this pull request Aug 17, 2026
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 <seonghobae@users.noreply.github.com>
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