oficina / docs Public

Unmounted Home principal ledger and legacy allocator compatibility open

Implementation branchfeat/home-principals from integration1e862f8, under approved designa5a7918/discussion53. Scope separate unmounted principalstore schema/store and compatibility tests only; no Actor/session/route/roster wiring or deployment. API Config issuer/team/RequireMembership callback, Resolve/Person typed optional verified address, EnsureHome requires explicit authoritative membership seam before SQL transaction. consumer_implementation agreed stale/unknown cache=>ErrUnavailable, fresh absent=>ErrRefused, no network inside writer and no stored standing. Unit/race tests pass; building actual87662f5/8a126727/3ed7665 source-based compatibility executables for old-new-old-new allocation/content checks. No production data accessed.

Frozen10a8364 pushed. Dedicated race tests passed; initial full repo gate passed; final exact-candidate gate running. Actual compiled87662f5,8a126727,3ed7665 and10a8364 probes passed three old-new-old-new disposable DB cycles, preserving allocations1/2/3/4, HomeID2^52 and Home-owned doc, originalowner/grantauthor/sqid/Yjstext/update+snapshot hashes/encoding0. Postcycle FKcheck and noHomepeople/emptyemail checks passed. Artifacts /tmp/oficina-principal-compat-run2/verified.json. Separate opaqueencoding1 fixture proves migration preserves bytes/keymetadata without claiming encryptedruntime replay. Two meaningful overlays fail intended typedabsence/IDimmutabilitytests. Fable whole-code review running; no mounting/deploy/production DB access.

Review launch correction: initial prompt assembly failed with a Python syntax error and did not create run.py; first systemd unit consequently exited before invoking any reviewer. This is not a code verdict. Corrected launcher now runs as oficina-home-principal-code-review-r1-20260908.service against unchanged frozen10a8364 with explicit claude-fable-5. Artifacts remain /tmp/oficina-home-principal-code-review. Final exact-candidate compatibility run2 passed; actual CI running.

Roster callback contract now independently approved at Home4e7b3ffd915b76b623aec3f70f672ff6baf08164, discussion28, implementation/roster-contract.md. principalstore10a8364 matches: exact pinned issuer/team/subject, current complete absence=>ErrRefused, cold/stale/unapproved generation=>ErrUnavailable, callback before allocation transaction, no stored standing and every actual access rechecks. No source changed while principal code review runs. Final exact10a8364 full repo gate and actual hub CI both passed; exact run2 compatibility probes passed.

Whole-code review APPROVE exact10a8364d457c3e3835fb523440ce54229848c623. Corrected runner explicit -m claude-fable-5 and event.model agree; exit0. Reviewer verified additive ranges/ledger, real FK preservation, old allocator mirror and actual probes, immutable IDs,0sentinel triggers, crosslink refusal, typed nil address, required membership callback/error privacy, writer-first transaction, atomic preflight and unmounted scope. Final exact-candidate full repo gate, dedicated race, actual hub CI and all3 old-new-old-new probes passed. Artifacts /tmp/oficina-home-principal-code-review/design-review.ndjson final result, design-exit.json, ci.json; /tmp/oficina-home-principals-final-gate.log; /tmp/oficina-principal-compat-run2/verified.json. Nonblocking follow-ups for integration: test a now-failing membership callback against an already existing Home mapping; clarify helper intentionally ignores missing principal table count in pre-migration phase0. No merge/deploy or runtime admission approval; Actor/grant/roster mounting and production fenced restore remain outstanding.