feat(people): add purpose-bound Position history read - #152
seonghobae wants to merge 17 commits into
Conversation
|
Warning Review limit reachedNext included review available in 19 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: Advanced Run ID: 📒 Files selected for processing (9)
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 Please review exact current head |
|
|
Purpose
Add the buyer-visible, purpose-bound bitemporal Position-history application boundary without collapsing Job, Position, Assignment, Employment, or Person truth.
Current authority
Protected base:
develop@eb9757f8649aaad026a9865508d9aad50c1a7a4fCurrent exact head:
a54eedd10b6bf3eb55194d8a78ff882210519666Lifecycle: Draft; ADR 0152 remains Proposed. Consolidated Foundation CI is the repository acceptance owner.
Retained-authority repair
The current branch preserves the earlier Position-history repairs: trust-bearing UUIDs are reduced to exact built-in integer authority; record identity returns fresh UUID views; request tenant/Position identity is frozen before authorization/persistence; the concrete repository class function is captured inertly before authorization and invoked after the decision; authorized response schema is validated before protected retrieval; returned persistence rows are reconstructed and revalidated before scope/time/overlap/disclosure checks.
#338 real Foundation RED -> focused coverage repair
Exact predecessor
616ed8c8a410e4dcdf4c31d293dfb082f7ce8297received Foundation run34812068832, which failed at the owned unit/service contract step. All 161 People API tests passed, but owned statement/branch coverage was 99.81%. The only uncovered Position-history guards were the defense-in-depth unsupported-field serializer rejection and the fail-closed non-concrete repository-capability rejection inposition_history.py(reported as lines 288 and 357). This is a real exact-head RED, not runner noise.Issue #338 records the finding. Ordinary-forward test repair
a54eedd10b6bf3eb55194d8a78ff882210519666adds focused regressions for the unsupported serializer guard and for both missing/non-function and inherited Protocol-placeholder repository capabilities. Production semantics are unchanged; the 100% coverage gate was not weakened and the failed head was not blindly rerun.Fresh exact-head workflows are Foundation
34859462912queued, Security34859462547queued, SAST34859462626queued, and CodeQL34859462788pending at the latest read. Predecessor SAST success and all predecessor reviews do not transfer; no GREEN is claimed yet.Descendants and merge gate
#153 ordinary-forward adopted only the parent-owned coverage regression at
fc40199352a578340e0fde92ca398c034723a68a; #154 followed atc09d2e589be3df218988e49d1803de03adcba037. Their PostgreSQL/HTTP feature deltas remain child-owned. Keep Draft until the current exact head has fresh Foundation/Security/SAST/CodeQL terminal evidence and qualifying independent review. No force-push, destructive rebase, self/model approval, routine bypass, no-op retrigger, predecessor-evidence transfer, gate weakening, or simple Close.