Work / Chitragupt / Wiki / Decisions
2026-05-31-owner-validation
Decisionsupersededverified 2026-07-11
DECISION.2026-05-31.OWNER-VALIDATIONOwner-validation: ask-on-mismatch, accept-grows-identity, family-transfer two-sided
Superseded by 2026-07-11-user-identity-entry-model — the accept-grows / two-sided-transfer flow is retained. Module renamed owner-validation.ts → identity-matcher.ts; the prior three "pending" statuses (pending_owner_confirmation | pending_family_transfer | pending_entity_confirmation) collapse into one pending_identity_confirmation.
Decision
Every parsed document must demonstrably belong to the uploading workspace member via PAN / IFSC / account-number / email / name / TAN matching. On mismatch, ask the user to confirm. Accept-flow grows the user's account list. Family transfer is two-sided: uploader proposes, recipient must accept.
Why
Per the source-of-truth rule and the new pricing-reset assumptions, every parsed document must demonstrably belong to the workspace member who uploaded it — otherwise rollups poison cleanly. Per-PAN matching against PAN / IFSC / account-number / email / name / TAN is the floor; user confirmation handles ambiguity.
Impact
- New module
apps/functions/src/parser/owner-validation.ts. - Identity matched against
users/{uid}profile (PAN, name, email, phone) and against every existingaccount_idthe user has previously confirmed. - New document statuses:
pending_owner_confirmation,pending_family_transfer,rejected_owner_denied,rejected_transfer_denied. - Callables
confirmOwnership,denyOwnership,requestFamilyTransfer,acceptFamilyTransfer,denyFamilyTransfer. - Accept-flow grows the user's account list with the new attributes; deny auto-deletes after a 7-day grace.
- Family transfer is two-sided — uploader proposes, recipient must accept; transfer queue lives on Pro Family workspaces.
- Affects inbox-document-types, pillar-inbox, tier-pro-family.
Status
Superseded by 2026-07-11-user-identity-entry-model.
Sources
- .context/wiki/decisions/* § "2026-05-31 — Owner-validation: ask-on-mismatch, accept-grows-identity, family-transfer two-sided"
Every project of mine is written down like this.
Read the résumé