Skip to content

feat(api): cancel analysis runs from LineageWeave and Naruon compatibility - #373

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

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

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Why

GAP-003A / issue #166 still has no LineageWeave cancel-exchange builder, no Naruon compatibility-listener cancel, and no tepp-loopback TCP proof. ADR 0029 / #361 added POST /v1/analysis-runs/{run_id}/cancel on AnalysisRunLiveService and the Naruon cancel builder only. A published LineageWeave consumer would have to mint a Naruon-labelled cancel. NaruonLiveService still refused every cancel path.

Live slices that this PR does not duplicate:

What

Unique GAP-003A consumer-parity cancel slice stacked on #361 over protected main 1bc02f580cf48e1d39da239f0e818453437c31c3:

  • lineageweave_analysis_run_cancel_exchange reuses the Naruon cancel builder and replaces only tepp-consumer
  • NaruonLiveService serves metric-free cancel for Naruon only; LineageWeave remains refused there
  • accepted and running → cancelled (200); already-cancelled is idempotent
  • succeeded, failed, unknown, wrong idempotency, and metric keys fail closed
  • tepp-loopback create-then-cancel over loopback TCP
  • ADR 0030 on the cancel-HTTP lineage (other live PRs may reuse 0030 on unrelated stacks)

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

Verification

  • 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
  • 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-cancel-consumer-parity.md

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


Devin Review

…ility

Add lineageweave_analysis_run_cancel_exchange, NaruonLiveService cancel,
and a tepp-loopback TCP proof stacked on the ADR 0029 cancel path.
@coderabbitai

coderabbitai Bot commented Aug 31, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 83c6ea39-72e1-4dc0-9f3e-a43b11196be1

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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.

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no bugs or issues to report.

Devin Review

This was referenced Aug 31, 2026

Copy link
Copy Markdown
Contributor Author

Closing with replacement mapping to #174. This consumer-parity cancellation stack inherits #361's unauthenticated destructive-operation boundary; swapping tepp-consumer values or proving loopback TCP does not prove caller authorization. Preserve the Naruon/LineageWeave parity and metric-refusal tests as fixtures for the authenticated operations landing vehicle.

@seonghobae seonghobae closed this Sep 1, 2026
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