Skip to content

fix(durable): bound lifecycle failure evidence - #146

Merged
seonghobae merged 6 commits into
mainfrom
fix/lifecycle-failure-evidence-confidentiality
Aug 12, 2026
Merged

fix(durable): bound lifecycle failure evidence#146
seonghobae merged 6 commits into
mainfrom
fix/lifecycle-failure-evidence-confidentiality

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Issue

Test-first repair for #125. Durable lifecycle reservation/persistence currently exports dynamic exception class names and retains generic lower-layer exceptions in GatewayError chains.

RED boundary

Current head adds focused regressions for standalone and tenant-qualified clients. They require finite package-owned lifecycle failure categories, preservation of trusted recovery fields, and no retained dynamic class/message through str, repr, response_data, __cause__, or __context__.

This is intentionally RED until the protected-main defect is reproduced by exact-head CI. No predecessor checks or reviews transfer.

Scope

The eventual production fix is limited to the durable lifecycle recovery evidence boundary. It will not change provider transport, tenant/RLS persistence, schema, credentials, release authority, or recorder/reserver seams.

Refs #125.

Summary by CodeRabbit

  • 새로운 기능

    • 수명 주기 실패 시 안전하고 일관된 복구 증거를 제공합니다.
    • 예약 및 영속화 단계와 제한된 오류 유형을 구분해 표시합니다.
    • 민감한 예외 정보와 예외 체인이 외부에 노출되지 않습니다.
  • 버그 수정

    • 기본 및 테넌트 범위 클라이언트에서 예외 정보가 오류 응답에 누출되는 문제를 방지했습니다.
  • 문서

    • 수명 주기 실패 처리 및 복구 증거 계약을 문서화했습니다.

@coderabbitai

coderabbitai Bot commented Aug 12, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: db63d57c-cb9e-4446-aa18-134169ba06a3

📥 Commits

Reviewing files that changed from the base of the PR and between b31c6ee and 82b7546.

📒 Files selected for processing (3)
  • docs/doctoring/durable-lifecycle-failure-evidence.md
  • pg_llm_batch/durable_client.py
  • tests/test_lifecycle_failure_confidentiality.py

📝 Walkthrough

Walkthrough

예약 및 스냅샷 영속성 실패를 제한된 오류 유형으로 변환합니다. GatewayError에서 예외 체인을 제거하고 신뢰된 복구 메타데이터를 보존합니다. 기본 및 테넌트 클라이언트의 기밀성 회귀 테스트와 계약 문서를 추가합니다.

Changes

수명 주기 실패 증거

Layer / File(s) Summary
오류 정규화 및 재발생
pg_llm_batch/durable_client.py
구현 예외를 ValidationError, ValueError, OSError, RuntimeError 중 하나로 정규화합니다. 예외 컨텍스트 없는 GatewayError를 생성합니다.
예약 및 영속성 실패 경로
pg_llm_batch/durable_client.py
예약 및 스냅샷 영속성 실패에 제한된 오류 정보와 단계별 복구 컨텍스트를 기록합니다.
기밀성 계약 및 회귀 검증
tests/test_lifecycle_failure_confidentiality.py, docs/doctoring/durable-lifecycle-failure-evidence.md
기본 및 테넌트 클라이언트에서 예외 타입·메시지와 예외 체인이 외부 증거에 노출되지 않는지 검증하고 계약을 문서화합니다.

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

Possibly related issues

Possibly related PRs

Sequence Diagram(s)

sequenceDiagram
  participant DurableBatchAPIClient
  participant LifecycleCallback
  participant GatewayError

  DurableBatchAPIClient->>LifecycleCallback: 예약 또는 스냅샷 영속성 수행
  LifecycleCallback-->>DurableBatchAPIClient: Exception 발생
  DurableBatchAPIClient->>GatewayError: 제한된 오류 유형과 복구 컨텍스트 전달
  GatewayError-->>DurableBatchAPIClient: 예외 체인 없는 오류 반환
Loading
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/lifecycle-failure-evidence-confidentiality

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.

@seonghobae
seonghobae marked this pull request as ready for review August 12, 2026 04:47
@seonghobae
seonghobae merged commit 6badf0c into main Aug 12, 2026
32 of 33 checks passed
@seonghobae
seonghobae deleted the fix/lifecycle-failure-evidence-confidentiality branch August 12, 2026 04:47
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