oficina / home Public

Directory-owned schema and membership lookup store open

Implementation slice under approved directory designfa64e28/discussion24. Branchfeat/directory-store from main4d3039c. Separate directorydata Schema and read/store APIs only: opaque teams/memberships, sealed display names, live membership-derived app choices, fixed refusal errors. No runtime schema merge, routes, UI, operator bootstrap, owner write endpoint or deployment. Root approved bounded API before implementation. Tests cover raw DB/WAL privacy, team/identity isolation, stable IDs, no automatic owners, invalid app/origin/lifecycle refusal and error privacy.

Frozen candidate4c0d848 pushed. Full make test plus dedicated package race passed. Meaningful overlays removing subject predicate and ID-bound seal purpose each failed intended isolation/swap tests. API corrected following root feedback: compiled app list and injected destination policy, not mandatory duplicated per-team process pins. No runtime/config/route changes. Independent Command Code -m claude-fable-5 code review running; artifacts /tmp/oficina-directory-store-review. Actual CI pending.

Code review APPROVE for exact4c0d84811a018c53a47b604a0de5885baec0771e. Command Code explicit -m claude-fable-5 and event.model agree; exit0. Actual hub CI is success for the same SHA, saved /tmp/oficina-directory-store-review/ci.json. Full make test and focused package race passed; two meaningful negative overlays passed by failing intended tests. Reviewer verified unmounted scope, additive namespace, authenticated ID-bound sealed names, registered raw DB/WAL/SHM canary, current membership isolation/removal, no automatic owner, fixed errors and live-route whole-list refusal. Nonblocking integration notes: pending/disabled rows intentionally skip origin/consumer policy because never served; 10k overflow path not separately fixture-tested; app structural CHECK can accompany future write path; foreign_keys is inherited from rastrillo/db and exercised in test. Approval is code-only, no canary/deploy/merge. Root integration owns mounting directorySchema and future audited writers.