Skip to content

feat(api): wait for analysis-run terminal status via loopback CLI - #406

Draft
seonghobae wants to merge 1 commit into
feat/analysis-run-status-cli-gap-003afrom
feat/analysis-run-wait-cli-gap-003a
Draft

feat(api): wait for analysis-run terminal status via loopback CLI#406
seonghobae wants to merge 1 commit into
feat/analysis-run-status-cli-gap-003afrom
feat/analysis-run-wait-cli-gap-003a

Conversation

@seonghobae

Copy link
Copy Markdown
Contributor

Why

GAP-003A / issue #166 still required operators to write a poll loop after status GET. Operators cannot wait for succeeded or failed without guessing when to re-GET. Accepted/running/failed stdout stays metric-free. tepp.scientific_acceptance.v1 appears only on succeeded scientific_acceptance_v1.

Live slices that this PR does not duplicate:

What

GAP-003A wait CLI stacked on #392 over status consumer-parity #383 / GET-by-id #359 / protected main 1bc02f580cf48e1d39da239f0e818453437c31c3:

  • tepp-analysis-runs wait polls GET /v1/analysis-runs/{run_id} until succeeded or failed
  • --timeout-ms default 1000 (max 60000); 0 polls once and fails closed on accepted/running
  • --poll-interval-ms default 10 (max 1000); interval longer than a nonzero timeout fails closed
  • stdout reuses status CLI gates
  • loopback-only; unpublished consumers, credential flags, nonempty stdin, and unknown verbs fail closed
  • ADR 0030 on the GET-status lineage (distinct from scientific-acceptance CLI ADR 0030)

Not an ADR 0014 scientific claim. Not persistence.

Verification

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

Exact head: 04ea4c9431d23994c7649eae4ed69ba34a91bded

Do not merge without two independent APPROVE reviews on this exact head and current Checks. Author COMMENTED is not independent APPROVE.

GAP-003A / issue #166: operators can poll GET-by-id until succeeded or failed
through `tepp-analysis-runs wait` without writing a poll loop. Timeout 0 fails
closed on accepted/running. Metric-free accepted/running/failed stdout.
tepp.scientific_acceptance.v1 only on succeeded scientific_acceptance_v1.
Stacked on status CLI (#392). Does not duplicate status, lookup, retry-lineage,
or cancel/create CLIs.
@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.

Copy link
Copy Markdown
Contributor Author

Hour-26 exact-head: 04ea4c9431d23994c7649eae4ed69ba34a91bded. GAP-003A wait CLI tepp-analysis-runs wait stacked on #392. Polls GET-by-id until succeeded/failed; timeout 0 fails closed on accepted/running. Metric-free accepted/running/failed; tepp.scientific_acceptance.v1 only on succeeded scientific_acceptance_v1. Devin/CodeRabbit/author COMMENTED is not independent APPROVE. Ruleset 18156473 needs two independent APPROVE reviews. No self-approve.

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