Skip to content

feat(ui): add legal employer history read states - #150

Draft
seonghobae wants to merge 8 commits into
feat/hr-workspace-protected-read-statefrom
feat/hr-workspace-legal-employer-history-state
Draft

feat(ui): add legal employer history read states#150
seonghobae wants to merge 8 commits into
feat/hr-workspace-protected-read-statefrom
feat/hr-workspace-legal-employer-history-state

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Buyer-visible HRIS gap

Employee Profile needs a governed way to explain which legal employer is visible for an Employment at an explicit business-time / system-knowledge coordinate without collapsing legal employer into Position or Assignment. This dependency-first child is presentation/interaction only: it does not invent legal-employer persistence, mutate Employment or Organization truth, authorize payroll/statutory actions, or import a foreign service table.

Parent #130 owns the shared protected-read interaction state contract. Active backend PR #141 separately owns the authoritative bitemporal Employment → employing legal Organization relationship and remains unmerged; this UI child does not present #141 as protected-main truth or transfer its checks/reviews.

Contract-first RED → root repair

Contract head b954b6330f5542b8c1272d4e2317c5ebf108e990 contained the focused accessibility/privacy contract and exact-head workflow but intentionally lacked the production state module. Hosted run 33219185795, job 99009424985, checked out and proved that exact SHA, configured Node 24.19.0, then failed at the focused contract with ERR_MODULE_NOT_FOUND for apps/hr-workspace/legal-employer-history-state.js. That is the realistic RED boundary.

The smallest root repair adds the governed presentation module, matching Storybook states, existing-token CSS, traceability, and accessibility doctoring. The implementation preserves bounded idle / loading / ready / empty / denied / stale / scopeBlocked / error states; purpose-bound read-only semantics; effective-time/system-recorded-time explanation; legal-employer independence from Position/Assignment; actionable empty/stale/scope/error copy; PII/identifier/legal-tax-payroll/credential minimization; and own-key fail-closed handling for constructor, toString, and __proto__. It does not add a writer or consequential-decision authority.

Exact-current-head GREEN

Current head: cfab4d70c38eccd5fd528a2314d1346602c405f7.
Recorded base/parent: #130 feat/hr-workspace-protected-read-state@68896baa692ecf6fec8f21cfe5d981440be6071c.

HR Workspace Legal Employer History State Quality run 33286022706, job 99189253498, is terminal GREEN on this exact head. The runner proved the exact checkout, used Node 24.19.0, passed all five focused accessibility/privacy/fail-closed regressions, reported legal-employer-history-state.js and all measured production at 100.00% line / 100.00% branch / 100.00% function coverage, and proved a clean checkout.

This is focused stack-local evidence only. It does not transfer parent/backend/default-branch checks or approvals and does not make the child merge-ready before its dependency chain integrates.

Figma / Storybook authority

Fresh Figma metadata from Orgmetra Baseline (xu1ZK1zmtFcDep95R8oE9O) confirms Storybook Inventory node 1:64 still enumerates Timeline, EmptyState, ErrorState, PermissionDenied, and the required default / hover / focus / disabled / loading / validation-error / read-only / high-risk-confirmation vocabulary. The Storybook slice correlates to node 1:64, reuses existing design tokens and visible :focus-visible behavior, and preserves a 44px minimum action target rather than introducing a parallel design system.

Stack / governance

Current #130 head is c92749c (PR #130 remains open and unmerged). Keep Draft. Process #53 then #130 first. After those actually integrate, retarget/revalidate this child against fresh protected develop, reconcile intervening Employee Profile/API truth and then-current legal-employer backend truth, then rerun every applicable browser/accessibility/Foundation/Recovery/SAST/Security/central workflow on one new exact head. No predecessor evidence transfers. Do not self-approve, use routine administrator bypass, race another writer, or mutate dedicated-writer dependencies.

@coderabbitai

coderabbitai Bot commented Aug 28, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

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.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant