Skip to content

feat(people): add purpose-bound Position history read - #152

Draft
seonghobae wants to merge 17 commits into
developfrom
feat/position-history-read
Draft

seonghobae wants to merge 17 commits into
developfrom
feat/position-history-read

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 29, 2026 •

Copy link
Copy Markdown
Contributor

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@eb9757f8649aaad026a9865508d9aad50c1a7a4f
Current exact head: a54eedd10b6bf3eb55194d8a78ff882210519666
Lifecycle: 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 616ed8c8a410e4dcdf4c31d293dfb082f7ce8297 received Foundation run 34812068832, 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 in position_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 a54eedd10b6bf3eb55194d8a78ff882210519666 adds 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 34859462912 queued, Security 34859462547 queued, SAST 34859462626 queued, and CodeQL 34859462788 pending 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 at c09d2e589be3df218988e49d1803de03adcba037. 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.

@coderabbitai

coderabbitai Bot commented Aug 29, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 19 minutes.

Check out review usage here.

View limit details

Limit 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.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: aa0eb5bd-941e-440d-bef8-76f215303557

📥 Commits

Reviewing files that changed from the base of the PR and between eb9757f and a54eedd.

📒 Files selected for processing (9)
  • docs/adr/0152-purpose-bound-position-history-read.md
  • docs/doctoring/position-history-read-references.md
  • docs/traceability/position-history-read.md
  • services/people-api/src/orgmetra_people_api/__init__.py
  • services/people-api/src/orgmetra_people_api/position_history.py
  • services/people-api/tests/test_position_history_extreme_dates.py
  • services/people-api/tests/test_position_history_integrity_hardening.py
  • services/people-api/tests/test_position_history_read.py
  • services/people-api/tests/test_position_history_row_shape.py

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.



class DynamicLookupTrapPort:
def __getattribute__(self, name: str):

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

Please review exact current head a54eedd10b6bf3eb55194d8a78ff882210519666. Predecessor Foundation had a real 99.81% coverage RED; this head changes only focused Position-history fail-closed guard regressions. Do not transfer predecessor verdicts.

@coderabbitai

coderabbitai Bot commented Sep 14, 2026 •

Copy link
Copy Markdown

@seonghobae: I will review pull request #152 at exact head a54eedd10b6bf3eb55194d8a78ff882210519666. I will assess the focused regression changes independently. I will not transfer the predecessor verdicts.

⚠️ Action not completed

Review rate limited.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request priority: high

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant