Skip to content

fix(config): canonicalize typed configuration values - #86

Closed
seonghobae wants to merge 30 commits into
mainfrom
fix/config-boolean-fallback
Closed

fix(config): canonicalize typed configuration values#86
seonghobae wants to merge 30 commits into
mainfrom
fix/config-boolean-fallback

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

Superseded by protected-main integration

This historical Draft is closed unmerged. Its typed boolean fallback, declared collection-shape, canonical-write, mutable-default isolation, and defensive-cache semantics are present on protected main through later reviewed integration, alongside newer deterministic cleanup and encryption-policy behavior.

The retained branch ref has been reconciled to exact protected main after fresh comparison so it no longer represents an active competing writer. Historical commits remain reachable from this closed PR and commit URLs; no review, check, or approval evidence transfers to new work.

Do not reopen or revive this stale ancestry. Future configuration changes must start from a freshly read protected-main commit and reacquire all evidence.

@coderabbitai

coderabbitai Bot commented Aug 9, 2026

Copy link
Copy Markdown

Review Change Stack

Important

Review skipped

Draft detected.

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: b5964043-77a6-4f56-8e4f-bf828bc2f193

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
📝 Walkthrough

Walkthrough

설정 역직렬화에 잘못된 불리언 및 JSON 컨테이너 형태의 기본값 폴백을 추가했습니다. 저장값과 캐시값은 정규화하며, mutable 기본값과 캐시 결과는 방어적으로 복사합니다. 관련 문서와 회귀 테스트를 추가했습니다.

Changes

구성 처리 안정성

Layer / File(s) Summary
역직렬화 및 기본값 격리
pg_llm_batch/config.py, tests/test_config_boolean_fallback.py, tests/test_config_collection_type_fallback.py
잘못된 불리언과 선언된 컬렉션 형태가 다른 JSON 값을 선언된 기본값으로 대체합니다. mutable 기본값은 복사해 반환합니다.
저장 및 캐시 정규화
pg_llm_batch/config.py, tests/test_config_write_normalization.py
설정 입력을 선언된 타입으로 정규화한 뒤 PostgreSQL과 캐시에 기록합니다. mutable 캐시 및 데이터베이스 결과를 복사해 반환합니다.
문서 계약 및 검증
docs/doctoring/config-boolean-defaults.md, CHANGELOG.md, tests/test_config_boolean_documentation.py
타입 변환, canonical write, 캐시 격리, fallback identity, 운영 절차와 롤백 계약을 문서화하고 필수 문구를 검증합니다.

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

Sequence Diagram(s)

sequenceDiagram
  participant 호출자
  participant PostgresConfigStore
  participant PostgreSQL
  participant ConfigCache
  호출자->>PostgresConfigStore: set(key, raw_value)
  PostgresConfigStore->>PostgresConfigStore: 선언된 타입으로 정규화
  PostgresConfigStore->>PostgreSQL: 정규화된 값 저장
  PostgresConfigStore->>ConfigCache: 정규화된 값 기록
  호출자->>PostgresConfigStore: 설정 조회
  PostgresConfigStore->>ConfigCache: 캐시 값 요청
  ConfigCache-->>PostgresConfigStore: mutable 값 복사본 반환
  PostgresConfigStore-->>호출자: 격리된 설정값 반환
Loading
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
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 제목은 타입이 지정된 구성값의 정규화라는 주요 변경 사항을 간결하고 정확하게 설명합니다.
✨ 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/config-boolean-fallback

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 changed the title fix(config): preserve declared boolean defaults fix(config): canonicalize typed configuration values Aug 9, 2026

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

Please review exact current head 18b06aeefc539c7a42dfc8834e1e87dccc18742a while the PR remains dependency-gated Draft. Focus on the typed configuration, canonical write/read, and mutable default/cache isolation contracts; predecessor-head evidence is historical.

@coderabbitai

coderabbitai Bot commented Aug 9, 2026

Copy link
Copy Markdown

@seonghobae I will review exact head 18b06aeefc539c7a42dfc8834e1e87dccc18742a. I will treat predecessor evidence as historical and focus on the requested configuration contracts.

✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

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