fix(kpi): restack provenance JSON byte integrity on 26de1c main - #337
fix(kpi): restack provenance JSON byte integrity on 26de1c main#337seonghobae wants to merge 4 commits into
Conversation
|
Warning Review limit reached
Next review available in: 41 minutes You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
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 (3)
📝 WalkthroughWalkthroughKPI 게이트가 provenance JSON을 fatal UTF-8로 디코딩하고 중복 키를 검사합니다. 잘못된 UTF-8과 중복 키 입력은 검증 실패를 반환합니다. 관련 테스트와 커버리지 대상도 추가되었습니다. ChangesKPI provenance 무결성
Estimated code review effort: 3 (Moderate) | ~20 minutes Merge Risk: ⚪ Minimal · up to This PR makes a localized change to preserve provenance JSON byte integrity and reject duplicate decoded names; no actionable merge-blocking risk remains after normal checks and review. Possibly related PRs
Sequence Diagram(s)sequenceDiagram
participant KPI 게이트
participant Provenance 파일
participant TextDecoder
participant 중복 키 검사기
KPI 게이트->>Provenance 파일: provenance 바이트 읽기
KPI 게이트->>TextDecoder: fatal UTF-8 디코딩
TextDecoder-->>KPI 게이트: 디코딩 결과 또는 오류
KPI 게이트->>중복 키 검사기: JSON 중복 키 검사
중복 키 검사기-->>KPI 게이트: 검사 결과
KPI 게이트-->>KPI 게이트: 오류 입력이면 검증 실패 반환
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 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 |
|
Superseded by clean current-line successor #348, which preserves the exact KPI provenance integrity implementation and current coverage inventory without replaying stale configuration. Closing this predecessor; its prior evidence does not transfer. |
Purpose
Rebuild only #335's strict production-KPI provenance byte-integrity hardening onto the current protected-main lineage after #333 advanced
main. No predecessor CI, review, scanner, coverage, model/status, production-KPI, release, deployment, legal-rights, or acquisition authority transfers.Exact construction
mainat the final pre-write refetch:26de1c3ab69106900410f6ceb18420109bfd9f8f;57f1f229c16ef845f6ad8ff943eafde3d829c06a;a05ae76ada81db78278309aedbc2bdf09101fa41;scripts/kpi-gate.mjsandtest/kpi-provenance-json-integrity.test.ts;2ce57ef368f36a196645c94948dad3f2476ca5a0andc8a072efd12f86c826c0b6d98b506ecee9817c76.The only protected-main movement since #335's base is #333's coverage-truthfulness slice (
src/index.tsplus two focused coverage tests), with no overlap on this KPI provenance slice. Immediately before construction the protectedscripts/kpi-gate.mjsblob remained12363af16b4168efef2fd0e45bae6086d968bdf2, and the focused provenance-integrity test path remained absent.KPI provenance integrity contract
Strict provenance remains raw bytes until fatal UTF-8 decoding and rejects escape-equivalent duplicate decoded JSON object names before
JSON.parseor production-source identity, collection timestamp, record count, SHA-256/byte-size, verified snapshot, final identity, and least-authority KPI child-process decisions. Existing production-source/provenance binding remains unchanged.This hardens evidence parsing only. It does not synthesize or claim a real 30-day production KPI window.
Evidence boundary
Keep Draft until this unchanged exact head receives fresh terminal-success application
ci,reviewer-ci, protected-base-eligible centralSecurity Scan, configured exact 100% owned production statement/branch/function/line coverage with realistic tests, and zero valid unresolved findings. Pending, queued, skipped, absent, neutral, failed, cancelled, stale, predecessor, status-only, model-only, or rate-limited evidence is non-passing.Immediately before Ready or merge, independently re-resolve protected main, exact head/base/ancestry, workflow checkout SHAs, formal reviews/threads, live rulesets, exact central Security Scan revision/triggers/base filters/thresholds, releases, and active-writer state.
No force update, gate weakening, synthetic KPI/release/deployment/legal evidence, reviewer/secret invention, outbound-license choice, repair/self-modifying workflow, or acquisition-ready claim is introduced.
Supersedes #335 only after fresh exact-head verification and protected integration. Related: #3, #84.
Summary by CodeRabbit
버그 수정
테스트