feat(talent): add governed candidate offer response evidence - #80
feat(talent): add governed candidate offer response evidence#80seonghobae wants to merge 32 commits into
Conversation
📝 WalkthroughWalkthrough후보 오퍼 응답을 불변 증거 패킷으로 생성하고 검증하는 Python 패키지를 추가했다. canonical JSON, SHA-256 다이제스트, 생성 seal, UTC 시간 및 민감정보 제한을 적용한다. wheel 설치와 100% 커버리지를 검증하는 GitHub Actions 워크플로와 관련 문서도 추가했다. Changes후보 오퍼 응답 증거
Estimated code review effort: 4 (Complex) | ~45 minutes Merge Risk: 🟡 Moderate · up to The PR adds bounded candidate offer acceptance and decline evidence, but merge readiness remains affected by an incorrect failure mode for copied or deserialized packets and documentation that could imply candidate-origin authentication without authoritative identity verification. These are bounded runtime and downstream security/correctness risks requiring owner follow-up before merge. Sequence Diagram(s)sequenceDiagram
participant Builder as build_candidate_offer_response
participant Packet as CandidateOfferResponsePacket
participant Serializer as canonical_json
Builder->>Packet: 검증된 응답 필드 전달
Packet->>Serializer: 검증된 스냅샷 직렬화 요청
Serializer-->>Packet: canonical JSON과 SHA-256 다이제스트 반환
Packet->>Packet: 생성 seal과 현재 상태 비교
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches 💡 1🛠️ Fix failing CI checks 💡
📝 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 |
|
Caution Review failedAn error occurred during the review process. Please try again later. 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 |
|
Caution Review failedAn error occurred during the review process. Please try again later. 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 |
|
Caution Review failedAn error occurred during the review process. Please try again later. 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 |
|
Caution Review failedAn error occurred during the review process. Please try again later. 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 |
|
Caution Review failedAn error occurred during the review process. Please try again later. 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 |
|
Caution Review failedAn error occurred during the review process. Please try again later. 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 |
|
Caution Review failedAn error occurred during the review process. Please try again later. 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 |
1 similar comment
|
Caution Review failedAn error occurred during the review process. Please try again later. 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 |
UTC detachment in _freeze_timestamp now catches OverflowError near datetime.min/max and raises the contract ValueError instead of leaking an implementation detail. Parametrized regressions cover both governed timestamps; package suite stays at 100% statement+branch coverage (60 tests). Addresses Devin review observation on PR #80.
Preserve the complete governed candidate-offer response evidence delta from a72463a while adopting protected develop@eb9757f8649aaad026a9865508d9aad50c1a7a4f using GitHub's conflict-free exact merge tree. Preserve #161 repository-workflow consolidation and keep dependency-first child #108 unmerged until this parent integrates normally. No force-push, gate weakening, foreign-owner source copy, or release claim.
Repair the hosted Foundation RED exposed after protected-parent adoption. Retire the resurrected candidate-offer-response leaf workflow, preserve its SHA-256-bound installed-wheel and isolated-toolchain coverage contract inside canonical one-job Foundation CI, add a regression that keeps the leaf retired, update traceability/changelog, and reseal the exact Foundation manifest. No production behavior, coverage threshold, protected-parent history, or dependency boundary is weakened.
Buyer-visible scope
This Orgmetra-only PR adds value-minimized candidate offer acceptance/decline evidence without granting hire authority or mutating Keyverse. The packet binds exact approved-offer and offer-terms digests, keeps candidate identity on the released Keyverse-compatible opaque-reference boundary, excludes compensation/PII/free-form decline text, and requires authoritative identity re-resolution before consequential use.
Protected-parent adoption and causal repair
Current exact head is
c62dd2c536b8b2e10a4912e34637e8dcf0d8fdf8on protecteddevelop@eb9757f8649aaad026a9865508d9aad50c1a7a4f; the PR remains open · Draft.Predecessor
b9d09ba21cdcf7a2c5c321b92a2d13c8c8aeed6cwas the ordinary non-force protected-parent adoption. Hosted Foundation34005884590exposed the semantic adoption RED: the feature ancestry resurrected.github/workflows/candidate-offer-response-quality.ymlwithubuntu-latest, violating protected #161's canonical workflow inventory and exactubuntu-24.04runner contract.c62dd2c...repairs that cause without force update or gate weakening: it retires the leaf, moves the SHA-256-bound built-wheel test, isolated venv, hash-pinned pytest/coverage toolchain and exact 100% statement/branch threshold into canonical Foundation CI, adds a regression that keeps the leaf retired, updates traceability/changelog, and resealsmanifest.jsonagainst exact Foundation bytes (sha256=f68fecb02c7ebbd6fb4b9d4befa852645e89d32cee8ff7f767dbb97c70f9a4ea, 9936 bytes, 164 lines). No candidate-response production behavior, Keyverse boundary, protected-parent delta, coverage threshold or central gate was weakened.Current acceptance
Foundation
34009407800and SAST Semgrep34009407753are terminal SUCCESS on exactc62dd2c.... Security Scan34009407805is terminal FAILURE only because dependency-review job101428282920verifies the exact head and then fails atCheck dependency review support; the pinned Dependency Review action is skipped. The OSV and Trivy jobs complete successfully, but they do not substitute for the missing authoritative Dependency Review verdict.CodeQL PR
34009407818is also terminal FAILURE, but not from a demonstrated Orgmetra SARIF/source finding. Language detection succeeds; Python job101428342134and Actions job101428342194both successfully request the current-head CodeQL dispatch and fail only atRelease runner or enforce current-head CodeQL verdict. This remains the central verdict-production/authorization handoff. Orgmetra does not synthesize the missing verdict, weaken the gate, or add a no-op retrigger.Historical
a72463a...evidence (60 tests and then-current 100% coverage) and failedb9d09ba...evidence remain predecessor-only. The PR stays Draft while authoritative Dependency Review/CodeQL and the then-applicable review gates remain non-passing.PR #108 remains dependency-first and must not copy this mutable parent. Required order is: terminal #80 current-head gates and ordinary protected admission → #80 normal protected integration → #108 non-force adoption/retarget preserving its full valid delta → fresh descendant acceptance.
No self-approval, routine administrator bypass, no-op retrigger churn, predecessor-evidence transfer, force-push/destructive rebase, or dedicated-writer dependency mutation.