feat(api): POST retry from published tepp-retry CLI - #394
Conversation
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.
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueThanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
seonghobae
left a comment
There was a problem hiding this comment.
Exact-head COMMENT on deef33b (draft). Unique occupied: tepp-retry retry minting POST /v1/analysis-runs/{run_id}/retry (ADR 0043). Stdout is metric-free child 202 Accepted. tepp.scientific_acceptance.v1 never appears. Supports naruon and LineageWeave typed exchanges. Do not un-draft. Zero reviews on this SHA before this COMMENT. Never self-approve. Persistence remains GAP-003B. Do not weaken fail-closed. No Buyer language. No PII in LineageWeave.
Why
GAP-003A / issue #166 still has no published CLI that POSTs
/retryfrom the typed naruon/LineageWeaveretry exchange onto spawnedtepp-loopbackTCP. ADR 0032 / #369 owns retry HTTP. ADR 0033 / #393 owns consumer-parity exchanges. Operators still had to embed the library or invent HTTP.analysis_enginecannot own this CLI: retry glue lives intepp_api, andtepp_apicannot depend onanalysis_engine.tepp-analysis-runslives on the diverged #385 stack that lacks retry HTTP.Live slices that this PR does not duplicate:
analysis_enginescientific-acceptance library520f1a4e9fc73c274201d89a9857b8d0b5d8353d)What
Unique GAP-003A retry CLI slice stacked on #393 over protected main
1bc02f580cf48e1d39da239f0e818453437c31c3:tepp-retry retrymintsnaruon_analysis_run_retry_exchangeorlineageweave_analysis_run_retry_exchangeand renders throughloopback_http1_from_retry_exchange--originstays the published HTTPS origin; only--hostis the loopback bind address printed bytepp-loopback--run-idand the new--idempotency-key202 Acceptedwith a newrun_id(not the parent) and matching new idempotency keylocalhost, unpublished consumers, credential-shaped flags, metric keys,http://origins, and retry of accepted/running/succeeded/unknown parents fail closedNot 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 warningscargo test -p tepp_api --test analysis_run_retry_cli_contractcargo test -p tepp_apicargo doc -p tepp_api --no-depspython3 scripts/validate_documentation.pypython3 scripts/check_docstrings.pyStacking
Base is
feat/analysis-run-retry-consumer-parity-gap-003a(#393). Merge #393 first or retarget onto main after #393 lands. No force-push.