Skip to content

feat(api): POST retry from published tepp-retry CLI - #394

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

feat(api): POST retry from published tepp-retry CLI#394
seonghobae wants to merge 1 commit into
feat/analysis-run-retry-consumer-parity-gap-003afrom
feat/analysis-run-retry-cli-gap-003a

Conversation

@seonghobae

Copy link
Copy Markdown
Contributor

Why

GAP-003A / issue #166 still has no published CLI that POSTs /retry from the typed naruon/LineageWeave retry exchange onto spawned tepp-loopback TCP. ADR 0032 / #369 owns retry HTTP. ADR 0033 / #393 owns consumer-parity exchanges. Operators still had to embed the library or invent HTTP. analysis_engine cannot own this CLI: retry glue lives in tepp_api, and tepp_api cannot depend on analysis_engine. tepp-analysis-runs lives on the diverged #385 stack that lacks retry HTTP.

Live slices that this PR does not duplicate:

What

Unique GAP-003A retry CLI slice stacked on #393 over protected main 1bc02f580cf48e1d39da239f0e818453437c31c3:

  • published tepp-retry retry mints naruon_analysis_run_retry_exchange or lineageweave_analysis_run_retry_exchange and renders through loopback_http1_from_retry_exchange
  • --origin stays the published HTTPS origin; only --host is the loopback bind address printed by tepp-loopback
  • empty stdin is admitted; typed retry JSON must match --run-id and the new --idempotency-key
  • success stdout is a metric-free child 202 Accepted with a new run_id (not the parent) and matching new idempotency key
  • public bind hosts, localhost, unpublished consumers, credential-shaped flags, metric keys, http:// origins, and retry of accepted/running/succeeded/unknown parents fail closed
  • ADR 0043

Not an ADR 0014 scientific claim. Not retry HTTP. Not retry consumer-parity. Not execute CLI. Not cancel/create/status/collection/lifecycle CLI. Persistence remains GAP-003B.

Verification

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

Stacking

Base is feat/analysis-run-retry-consumer-parity-gap-003a (#393). Merge #393 first or retarget onto main after #393 lands. No force-push.

GAP-003A operator-visible retry CLI stacked on the typed
naruon/LineageWeave retry consumer-parity exchanges. tepp-retry mints
the published retry exchange and POSTs it onto spawned tepp-loopback.
Public bind, localhost, credential flags, metric keys, and http origins
fail closed. Child 202 Accepted stays metric-free. ADR 0043.
@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