fix(kpi): harden collector output authority - #521
Conversation
|
Warning Review limit reachedNext included review available in 55 minutes. View limit detailsLimit details: You’ve used the included review currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Team Run ID: 📒 Files selected for processing (5)
📝 WalkthroughWalkthroughKPI 수집기는 로그와 provenance를 배타적 owner-only 파일로 생성합니다. parent chain, 파일 identity, source ID, 스트리밍 쓰기, deadline 및 실패 정리 동작을 검증합니다. 관련 테스트와 운영 문서를 갱신합니다. ChangesKPI 출력 및 수집 검증 강화
Estimated code review effort: 4 (Complex) | ~45 minutes Merge Risk: 🟡 Moderate · up to This PR substantially hardens KPI evidence collection and source-label validation, but merge readiness remains moderate because symlinked invocation could select unauthorized helpers, log publication can expose evidence before its provenance is complete, and current-head checks are still queued; the identified path and source-label issues also require owner follow-up. Sequence Diagram(s)sequenceDiagram
participant Collector as collect-kpi-logs.sh
participant Source as curl 또는 tail command
participant LogFile as 로그 파일
participant Provenance as provenance 파일
Collector->>LogFile: 배타적 no-follow 생성
Collector->>Source: 열린 descriptor 전달
Source-->>LogFile: KPI 로그 스트리밍
Collector->>LogFile: descriptor와 parent chain 안정성 검증
Collector->>Provenance: 비대체 provenance 게시
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 5.88% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 17 functions across 8 files. (1 skipped: 1 unsupported.) ✨ Finishing Touches 💡 2📝 Generate docstrings 💡
⚔️ Resolve merge conflicts 💡
🧪 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 |
…put-authority # Conflicts: # CHANGELOG.md
…put-authority # Conflicts: # CHANGELOG.md
Scope
Harden KPI collection and provenance publication so buyer-facing operational evidence fails closed at network, pathname, inode, parent-authority, publication, descriptor-lifecycle, invocation-context, streaming, child-process lifecycle, source-identity rendering, and cross-process evidence-handoff boundaries. This branch remains Noema-only and does not synthesize production KPI evidence.
Current repair lineage
The branch owns exclusive no-follow log/provenance creation, parent and inode/version authority checks, bounded URL collection, close-failure handling, non-clobbering publication, permission restoration, helper resolution independent of caller CWD, realistic filesystem regressions, safe provenance source identifiers, descendant-aware timeout escalation, complete short-write handling, and stable provenance handoff after retained-log validation.
Historical review findings covering case-only aliases, special-file outputs, parent replacement, partial writes, late log mutation, close failures, background descendants, short writes, Unicode display controls, Windows Git Bash path conversion, and same-size mutation have been repaired on this lineage. Current review threads are resolved; predecessor evidence does not transfer to the current head.
Current protected-base convergence
Protected
mainadvanced through runner-selector repair #532 tob505cb807536e9cf2bdbfcb05ad3fefe99999a14. The previous #521 head was 2 commits behind that protected tip. This lane was therefore non-destructively converged by a two-parent merge that preserves the existing KPI semantic delta while incorporating the exact current protected-main workflow/private-vulnerability-reporting changes.Current exact head is
39f724a0401578dd1cbcd3cdd37a0e94b18f9ca6. Independent comparison against protectedmain@b505cb807536e9cf2bdbfcb05ad3fefe99999a14reportsahead / 0 behind, with the protected main commit as the merge base and only the intended nine KPI/provenance paths differing from protected truth.Fresh exact-head workflows were created after this convergence:
33551171591: queued / non-passing;ci33551171745: queued / non-passing; its current job has no assigned runner yet (runner_id=0, no executed steps);reviewer-ci33551171728: queued / non-passing;patch-validator-image33551171775: queued / non-passing.No predecessor check, review, or artifact is reused after the head/base movement. The branch remains unmergeable-by-policy until the exact current head receives all applicable terminal-success CI/security/reviewer/image/SBOM/vulnerability/provenance evidence and live mergeability/governance are freshly unchanged.
Authentic >=30-day production KPI evidence remains an external operational acceptance item; fixtures and repository tests are not production evidence.
Guardrails
.github, naruon, contextual-orchestrator, or another dedicated-writer repository from this lane.