Skip to content

feat(api): retry analysis runs from LineageWeave and Naruon compatibility - #393

Draft
seonghobae wants to merge 1 commit into
feat/analysis-run-retry-http-gap-003afrom
feat/analysis-run-retry-consumer-parity-gap-003a
Draft

feat(api): retry analysis runs from LineageWeave and Naruon compatibility#393
seonghobae wants to merge 1 commit into
feat/analysis-run-retry-http-gap-003afrom
feat/analysis-run-retry-consumer-parity-gap-003a

Conversation

@seonghobae

Copy link
Copy Markdown
Contributor

GAP-003A consumer-parity slice stacked on #369 (retry HTTP / ADR 0032). Not a second retry DTO, not GET status, not lifecycle POST, not cancel, not collection GET, not persistence.

What this adds

  • lineageweave_analysis_run_retry_exchange reuses the Naruon retry builder and swaps only tepp-consumer.
  • NaruonLiveService serves POST /v1/analysis-runs/{run_id}/retry for Naruon only. LineageWeave remains refused there and uses AnalysisRunLiveService.
  • NaruonLiveService stays POST-only. GET remains refused.
  • tepp-loopback TCP proof: LineageWeave create → cancel → retry returns a metric-free child 202 Accepted.
  • ADR 0033 on the retry-HTTP lineage (number uniqueness is per-stack).

Fail-closed (unchanged from ADR 0032)

  • Failed and cancelled runs clone into a new metric-free 202 with a new run_id and a new idempotency key.
  • Accepted, running, succeeded, and unknown runs cannot be retried.
  • Parent-key reuse, consumer mismatch, metric keys (rmse/bias/coverage/se_gate/scientific_acceptance/report), and identity mismatch fail closed.
  • HTTP 202 is not an ADR 0014 scientific claim.

Verification

  • cargo fmt -p tepp_api
  • cargo clippy -p tepp_api --all-targets -- -D warnings
  • cargo test -p tepp_api --all-targets
  • RUSTDOCFLAGS='-D warnings' cargo doc -p tepp_api --no-deps
  • python3 scripts/validate_documentation.py
  • python3 scripts/check_docstrings.py

…lity

Add lineageweave_analysis_run_retry_exchange, NaruonLiveService POST retry
for Naruon only, and a tepp-loopback TCP create-cancel-retry proof (ADR 0033).
Metric-free child 202 receipts stay fail-closed. GET remains refused on the
compatibility listener. Stacked on the retry HTTP slice; not a second retry DTO.
@coderabbitai

coderabbitai Bot commented Aug 31, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

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.

1 participant