fix(data): bind candidate conversion recorded time to PostgreSQL transaction time - #87
fix(data): bind candidate conversion recorded time to PostgreSQL transaction time#87seonghobae wants to merge 18 commits into
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthrough후보 전환 레코드의 Changes후보 전환 기록 시간
Estimated code review effort: 3 (Moderate) | ~20 minutes Merge Risk: 🟡 Moderate · up to The database change prevents candidate conversions from backdating system-recorded time while preserving PostgreSQL transaction time as the normal path, so the functional impact is localized. Merge readiness remains moderate because the required independent non-author review is absent on the exact current head, and the test evidence still labels an event as UTC without supplied proof of the PostgreSQL session timezone. Sequence Diagram(s)sequenceDiagram
participant CI as GitHub Actions
participant Test as PostgreSQL 회귀 테스트
participant DB as PostgreSQL
participant Guard as 기록 시간 트리거
CI->>DB: PostgreSQL 16.14 서비스 시작
CI->>Test: 회귀 테스트 실행
Test->>DB: 마이그레이션 적용 및 테스트 데이터 생성
Test->>DB: 후보 전환 INSERT 실행
DB->>Guard: BEFORE INSERT 기록 시간 검사
Guard-->>Test: 불일치 시 23514 반환
Test-->>CI: 검증 결과 반환
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 2 functions across 3 files. (1 skipped: 1 unsupported.)
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
|
@coderabbitai review |
|
|
@opencode-agent Please review the current unchanged head against protected |
Current authority — 2026-09-06
Current exact head remains
0c4fe88ed0e0b1a117e1adeebe6e5aa1975e87a7on recorded old basedevelop@9e3e4847510e1e612b48474ba42b177b8ed824df. Live protected truth isdevelop@eb9757f8649aaad026a9865508d9aad50c1a7a4f. GitHub currently reports this PR open · Draft · non-mergeable. The candidate-conversion system-time repair remains valid and is not a Close candidate.Retained persistence repair
The branch makes candidate-to-worker conversion knowledge time database-authored. Forward migration
0017_candidate_conversion_system_recorded_time.sqlrequires freshcandidate_worker_conversion_record.recorded_fromto equal PostgreSQLtransaction_timestamp()and rejects caller-authored backdating while keepingeffective_fromas business-effective time. The PostgreSQL regression covers rejected backdating, server-authored transaction time, UTC event serialization, successful insertion and correction history. The branch does not rewrite already-published migration 0009.Historical exact-head repository/local evidence against the old parent remains causal only and does not transfer to a protected-parent successor. No qualifying independent approval is established for a future reconciled head.
Protected-parent semantic reconciliation finding
This branch predates protected #161 repository-quality consolidation and still adds
.github/workflows/candidate-conversion-system-time-quality.yml. That retired-style leaf runs onubuntu-latestand independently owns the candidate-conversion PostgreSQL contract. Current protected.github/workflows/foundation-ci.ymlinstead pinsubuntu-24.04and owns the canonical isolated PostgreSQL contract fleet. Mechanical conflict resolution must therefore not resurrect this leaf or its old runner selector.The protected Foundation currently runs the existing candidate-worker conversion contract but does not yet execute
tests/test_candidate_conversion_system_recorded_time_postgres.sh. The valid feature obligation must be admitted to the canonical owner rather than discarded: add that exact contract to Foundation's isolated PostgreSQL list, add migration0017and the new executable contract to both canonical required-file inventories (scripts/foundation-contract-core.mjs::REQUIRED_FILESandtests/validate_repository.py::REQUIRED), merge the candidate-conversion CHANGELOG entry with protected #161's consolidation entry, and regeneratemanifest.jsonfrom the final resolved bytes. Keep the package-local workflow deleted.docs/traceability/candidate-conversion-system-recorded-time.mdmust also stop callingdevelop@9e3e484...current protected truth. It should distinguish the vulnerable historical snapshot, the active repair, and the eventual reconciled successor without prematurely describing unmerged migration 0017 as protected capability.Required repair order
Build one ordinary non-force successor from the complete valid
0c4fe88...delta plus fresh protecteddevelop; resolve CHANGELOG/Foundation/inventory/manifest conflicts semantically; keep the retired leaf absent; preserve migration 0017, the PostgreSQL regression and its transaction-time semantics; reseal deterministic provenance from final bytes; then reacquire exact-head Foundation/PostgreSQL/SAST/Security/CodeQL/review evidence.Do not choose either stale manifest wholesale, restore package-local CI, remove the PostgreSQL regression to make the tree easier to merge, transfer old-base GREEN, self-approve, use routine administrator bypass, force-push/destructively rebase, weaken a gate, or simply Close the valid persistence delta.