Repository navigation
Open
Labels
area: apibugSomething isn't workingSomething isn't workingpriority: highscope: product-gapstatus: blockedtype: bug
Description
Dependency
Blocked on ContextualWisdomLab/TEPP#156, which must publish a versioned completed analysis-run result/read contract. TEPP's current AnalysisRunAccepted is a durable submission receipt, not a temporal measurement.
Current defect
LineageWeave's TEPP start path accepts only an immediate completed / succeeded envelope with a result. A normal TEPP accepted response therefore becomes tepp_result_not_persisted and the local run fails. Treating accepted as a measurement would be worse: it would manufacture a scientific result from transport evidence.
Required lifecycle
- Submit the immutable snapshot-bound request.
- Validate and persist the accepted receipt as transport evidence: remote
run_id, idempotency key, request digest, accepted state, provider/model contract, snapshot, cutoff, and received time. - Keep the local analysis run
Runningwhile the remote run is accepted/running. - Poll/read TEPP's versioned result contract with bounded timeout/backoff and durable outbox/inbox semantics.
- Revalidate tenant/workspace, idempotency key, snapshot identity, knowledge cutoff, model contract, output profile, remote run identity, result schema version, canonical digest, and terminal state.
- In one transaction, persist the validated completed result and append local
Succeeded; terminal remote failure appends a typed localFailedevent. - Replays must be idempotent. A changed result for the same remote run/digest identity fails closed.
Global Ask boundary
- TEPP accepted receipts never enter answer claims.
- Completed TEPP artifacts are versioned measurement evidence, not public-web truth.
- SearXNG verification may not receive TEPP source text, result payloads, respondent/item information, latent scores, or protected identities.
- Global Ask may cite a TEPP artifact only with its model/result schema/provenance and an explicit
measurement_evidencetruth status; it may not label itweb_verifiedorauthoritative_real_world_fact.
TDD acceptance
- accepted response persists and leaves the local run Running;
- accepted response cannot create
analysis_run_tepp_result; - result polling is bounded and crash-resumable;
- completed result with any request-binding mismatch fails closed;
- duplicate accepted/result deliveries do not duplicate status or result rows;
- changed digest for the same completed remote run is rejected;
- terminal provider failure becomes a typed local failure;
- hidden/cross-tenant runs remain 404/denied without leaking existence;
- Global Ask cannot external-search or truth-promote TEPP artifacts;
- migration clean install/rollback, full integration tests, production statement/branch coverage 100%, and public docstrings 100%.
Scope boundary
Do not mix Global Ask SearXNG UI work, fast-mlsirm estimator changes, new TEPP estimators, or unrelated stack repairs into this PR.
Metadata
Metadata
Assignees
Labels
area: apibugSomething isn't workingSomething isn't workingpriority: highscope: product-gapstatus: blockedtype: bug
Activity
seonghobae commentedon Aug 20, 2026
Upstream completed-result contract is implemented on TEPP #157 exact current head 0cb9ff6b32afb56849214bbe464ea39004c1e106. Its current checks are terminal-success and formal current-head approval is still required. Keep this consumer issue open until #157 merges and LineageWeave persists accepted receipts separately, polls the versioned terminal result, and proves the lifecycle end to end.
seonghobae commentedon Aug 23, 2026
Unblocked accepted-receipt slice is in #496 (
5c0de352a4186d0ae8f22af476a6e87b3584a3f3, v2.12.11).analysis_run_tepp_accepted_receiptas transport evidence.tepp_not_available.Independent exact-head APPROVE is still required; author will not self-approve. This issue stays open until the completed-result half lands.
seonghobae commentedon Aug 25, 2026
Upstream terminal status/result contract is now on ContextualWisdomLab/TEPP protected main through merged PR #157 (merge recorded 2026-08-25). The LineageWeave consumer half is no longer contract-blocked: next implementation must persist accepted transport receipts, keep the local run Running, poll GET /v1/analysis-runs/{run_id}, validate every request/receipt binding and canonical digest, and atomically persist only a terminal measurement result. No accepted envelope may become a score.
seonghobae commentedon Aug 25, 2026
Correction to the prior dependency update: TEPP PR #157 merged the Rust status/result wire types and validation contract, but TEPP's API contract still marks GET /v1/analysis-runs/{run_id} as a target shape without an executable HTTP status route. Consumer schema work is unblocked; durable HTTP polling remains route-blocked. LineageWeave PR #662 therefore keeps the injected status client fail-closed and does not derive or call an unpublished URL.
seonghobae commentedon Aug 31, 2026
Cycle 2026-09-01: consumer steps 1–2 (strict accepted v1 →
analysis_run_tepp_receipt, local run stays Running, outbox stays claimed) are on protectedmain(ADR 0219 / v2.20.0). Remaining: seed a Demo Corp Running receipt somake seedshows the buyer copy, and TEPP producer status HTTP (TEPP #249) before polling. Do not invent a GET URL, retry interval, or theta. This issue stays OPEN until the full lifecycle is protected-main.seonghobae commentedon Aug 31, 2026
Follow-up for seed visibility is #897 (v2.29.0):
make seednow writes a Running TEPP accepted receipt as transport evidence while the missing-transport TEPP row stays Failed. Polling remains blocked on TEPP #249. This issue stays OPEN.