Skip to content

feat(api): inspect analysis-run retry parent from LineageWeave and Naruon - #396

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

feat(api): inspect analysis-run retry parent from LineageWeave and Naruon#396
seonghobae wants to merge 1 commit into
feat/analysis-run-retry-parent-get-gap-003afrom
feat/analysis-run-retry-parent-consumer-parity-gap-003a

Conversation

@seonghobae

Copy link
Copy Markdown
Contributor

Why

GAP-003A / issue #166 still has no LineageWeave retry-parent exchange builder, no Naruon compatibility-listener inspect, and no tepp-loopback TCP proof of a non-null parent. ADR 0038 / #384 added GET /v1/analysis-runs/{run_id}/parent on AnalysisRunLiveService and the Naruon inspect builder only. A published LineageWeave consumer would have to mint a Naruon-labelled inspect. NaruonLiveService still refused every GET path.

Live slices that this PR does not duplicate:

What

Unique GAP-003A retry-parent consumer-parity slice stacked on #384 over protected main 1bc02f580cf48e1d39da239f0e818453437c31c3:

  • lineageweave_analysis_run_retry_parent_exchange reuses the Naruon inspect builder and replaces only tepp-consumer
  • NaruonLiveService serves metric-free retry-parent GET for Naruon only; LineageWeave remains refused there
  • accepted inspect returns "parent": null (200) because that listener does not retry; unknown, consumer mismatch, nonempty body, and metric keys fail closed
  • tepp-loopback create-cancel-retry-inspect over loopback TCP proves a non-null parent on AnalysisRunLiveService
  • ADR 0044 on the retry-parent GET lineage (0043 is feat(api): POST retry from published tepp-retry CLI #394 retry CLI)

Not an ADR 0014 scientific claim. Not GET status. Not lifecycle POST. Not collection GET. Not retry POST. Not retry-lineage. Not persistence. Does not open NaruonLiveService to LineageWeave. Does not add retry to NaruonLiveService.

Verification

  • cargo clippy -p tepp_api --all-targets -- -D warnings
  • cargo test -p tepp_api --lib --tests
  • cargo doc -p tepp_api --no-deps
  • python3 scripts/validate_documentation.py
  • python3 scripts/check_docstrings.py
  • crates/tepp_api/tests/lineageweave_http_contract.rs
  • crates/tepp_api/tests/naruon_live_http_contract.rs
  • crates/tepp_api/tests/loopback_binary_contract.rs
  • doctoring: docs/research/analysis-run-retry-parent-consumer-parity.md

Exact-head Checks on 02eee9f07f58dd6dee5396c36cfcd0a0b228d199 are required before merge. Two independent current-head APPROVEs are required. Author cannot self-approve. Merge #384 before this stacked PR, or retarget onto protected main after #384 lands. No force-push.

…ruon

LineageWeave can GET /v1/analysis-runs/{run_id}/parent without a Naruon-labelled
exchange. NaruonLiveService serves the same metric-free inspect for Naruon only
and returns parent null on accepted creates. tepp-loopback proves a non-null
parent over TCP after create, cancel, and retry (ADR 0044).
@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