Skip to content

feat(tepp): add terminal status read boundary - #662

Closed
seonghobae wants to merge 5 commits into
mainfrom
feat/tepp-terminal-status-client
Closed

feat(tepp): add terminal status read boundary#662
seonghobae wants to merge 5 commits into
mainfrom
feat/tepp-terminal-status-client

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

Summary

Evidence

  • exact head: 9253411
  • uv run --extra dev --extra backend pytest tests/test_tepp_client.py -q (9 passed)
  • git diff --check

Boundary

TEPP PR #157 publishes Rust wire types but no executable HTTP status route. This PR therefore does not derive a URL, attach credentials, poll, persist a terminal result, or treat accepted/running as measurement.

Refs #277

@seonghobae
seonghobae enabled auto-merge (squash) August 25, 2026 19:18
@coderabbitai

coderabbitai Bot commented Aug 25, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

TEPP 제출과 상태 조회 transport를 분리했습니다. 실행 ID를 검증하고 URL 경로로 인코딩합니다. 공통 계약 헤더와 인증 헤더를 전송합니다. 상태 조회 오류는 TeppNotAvailable로 변환합니다. 영속화와 polling은 포함하지 않습니다.

Changes

TEPP 상태 조회

Layer / File(s) Summary
상태 조회 클라이언트 계약
lineageweave/tepp_client.py, tests/test_tepp_client.py, docs/adr/0217-tepp-terminal-status-read-boundary.md
TeppClient가 별도 status_transport를 사용합니다. 비어 있지 않은 문자열 run_id만 허용합니다. 상태 transport가 없으면 TeppNotAvailable을 발생시킵니다.
구성된 HTTP 상태 transport
backend/app/analysis_run_start.py, tests/test_tepp_client.py, CHANGELOG.d/2.20.0-tepp-status-read-client.md, docs/product-technical-gap-baseline.md
configured_tepp_client가 인코딩된 실행 ID로 GET 요청을 보냅니다. TEPP 헤더와 선택적 인증 헤더를 포함합니다. transport, HTTP, 응답 형식 오류를 TeppNotAvailable로 변환합니다. 테스트가 URL, 헤더, timeout, peer 전달을 검증합니다.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Merge Risk: 🔵 Low · up to 7388e

The change adds terminal-status reads, but trimming opaque run identifiers can make some valid status lookups fail, and the ADR records a future date. These are localized issues requiring owner awareness or follow-up; no broader merge-blocking risk is indicated.

Sequence Diagram(s)

sequenceDiagram
  participant Caller
  participant TeppClient
  participant configured_tepp_client
  participant TEPPEndpoint
  Caller->>TeppClient: get_analysis_run_status(run_id)
  TeppClient->>TeppClient: run_id 검증 및 trim
  TeppClient->>configured_tepp_client: 상태 조회 요청
  configured_tepp_client->>TEPPEndpoint: 인코딩된 run_id로 GET 요청
  TEPPEndpoint-->>configured_tepp_client: 상태 JSON envelope
  configured_tepp_client-->>TeppClient: 상태 envelope 또는 TeppNotAvailable
  TeppClient-->>Caller: 상태 조회 결과
Loading
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 16 functions across 3 files. (3 skipped: … Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed 제목은 TEPP 분석 실행의 terminal status read boundary를 추가하는 주요 변경 사항을 정확하고 간결하게 설명합니다.
Full details: Docstring Coverage

Explanation

Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 16 functions across 3 files. (3 skipped: 3 unsupported.)

✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/tepp-terminal-status-client

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[bot]

This comment was marked as resolved.

@seonghobae

Copy link
Copy Markdown
Contributor Author

Reviewed exact head 7388e183: the status/read transport remains separate from submit, opaque run IDs are percent-encoded, provider failures fail closed, and no terminal envelope is interpreted as measurement. Verification: uv run --extra dev --extra backend pytest -q tests/test_tepp_client.py → 9 passed; compileall and diff check passed. Hosted checks and independent review remain pending.

@seonghobae

Copy link
Copy Markdown
Contributor Author

Rechecked current exact head 10bee7d0: the published TEPP contract-version constant is now shared by submit and status-read headers, resolving the prior hardcoded-version drift finding. tests/test_tepp_client.py remains 9 passed.

coderabbitai[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

chatgpt-codex-connector[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

@seonghobae

Copy link
Copy Markdown
Contributor Author

Rechecked exact head 92534118d2f202c59518092664a872260d5d8d8a: configured TEPP status remains fail-closed until the upstream status route is published; the opaque injected transport contract is preserved. Focused tests/test_tepp_client.py passed (9 passed). Hosted checks are pending, with no failed conclusion observed; independent review and required ruleset gates remain outstanding.

@seonghobae

Copy link
Copy Markdown
Contributor Author

PR #657이 동일한 TEPP 상태 조회 책임을 더 강한 request/snapshot/cutoff/output 결합 검증과 함께 소유합니다. 이 PR의 검증 없는 별도 get_analysis_run_status 경계는 그 계약을 우회할 수 있어 중복 구현을 병합하지 않습니다. #657로 대체 종료합니다.

@seonghobae seonghobae closed this Aug 25, 2026
auto-merge was automatically disabled August 25, 2026 20:19

Pull request was closed

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