ZDDC/zddc/internal/zddc
ZDDC 0959d57dc2 feat(zddc-server): per-user-home .zddc is fenced (inherit: false)
When a user first writes to <project>/working/<email>/, the auto-own
.zddc EnsureCanonicalAncestors seeds at that folder now sets
acl.inherit: false in addition to the rwcda grant. This makes each
user's working subtree private by default — ancestor cascade grants
(e.g. a permissive *: r at the project root) no longer let anyone
read everyone else's drafts.

Implements the user-stated sandbox model: "no automatic or default
permissions other than the user's default folder which is instantiated
on first save — users can edit the .zddc files in their subtree to
allow access to others." The owner can edit
<project>/working/<email>/.zddc to add collaborators (or set
inherit: true, or list specific email patterns).

Mechanics:
  - new WriteAutoOwnZddcFenced — same shape as WriteAutoOwnZddc plus
    acl.inherit: false. Existing WriteAutoOwnZddc unchanged.
  - autoOwnDepthMatch returns (autoOwn, fenced); idx 2 under working/
    triggers fenced=true. The other auto-own positions
    (depth 1: working/staging/, depth 3: archive/<party>/incoming/)
    stay unfenced — those are shared lanes where ancestor admin
    grants should still apply.
  - staging/ children stay unfenced because staging folders are
    date+tracking-named (shared lane), not per-user.

Tests:
  - TestEnsureCanonicalAncestors_LazyCreation now asserts the fenced
    .zddc exists at working/<email>/ with inherit: false.
  - TestEnsureCanonicalAncestors_StagingChildNotFenced new — staging
    children stay plain.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-09 22:34:11 -05:00
..
acl.go docs(zddc): tighten inherit/strict-mode docstrings + AllowedAtLevel deprecation 2026-05-07 11:10:31 -05:00
acl_test.go feat(zddc-server): delegated subtree admins + built-in .zddc editor 2026-04-29 12:52:06 -05:00
admin.go feat(zddc-server): user profile page replaces /.admin/ 2026-04-29 16:32:02 -05:00
admin_test.go feat(zddc-server): user profile page replaces /.admin/ 2026-04-29 16:32:02 -05:00
cascade.go feat(zddc): inherit:false fence + strict-mode refusal 2026-05-07 10:59:20 -05:00
cascade_mode.go feat(server): authenticated CRUD + verb-based RBAC with WORM archive folders 2026-05-05 15:58:04 -05:00
cascade_mode_test.go feat(server): authenticated CRUD + verb-based RBAC with WORM archive folders 2026-05-05 15:58:04 -05:00
cascade_test.go Initial commit 2026-04-27 11:05:47 -05:00
ensure.go feat(zddc-server): per-user-home .zddc is fenced (inherit: false) 2026-05-09 22:34:11 -05:00
ensure_test.go feat(zddc-server): per-user-home .zddc is fenced (inherit: false) 2026-05-09 22:34:11 -05:00
file.go docs(zddc): tighten inherit/strict-mode docstrings + AllowedAtLevel deprecation 2026-05-07 11:10:31 -05:00
file_test.go feat(zddc): inherit:false fence + strict-mode refusal 2026-05-07 10:59:20 -05:00
folder.go feat(zddc): add ParseTransmittalFolder + IsTrnOrSubTracking helpers 2026-05-07 09:14:19 -05:00
folder_test.go feat(zddc): add ParseTransmittalFolder + IsTrnOrSubTracking helpers 2026-05-07 09:14:19 -05:00
inherit_test.go feat(zddc): inherit:false fence + strict-mode refusal 2026-05-07 10:59:20 -05:00
roles.go feat(zddc): inherit:false fence + strict-mode refusal 2026-05-07 10:59:20 -05:00
roles_test.go feat(zddc): inherit:false fence + strict-mode refusal 2026-05-07 10:59:20 -05:00
scan.go feat: lockstep release infra + cascade/.archive fixes + profile perf + page redesign 2026-05-01 20:11:38 -05:00
scan_test.go feat: lockstep release infra + cascade/.archive fixes + profile perf + page redesign 2026-05-01 20:11:38 -05:00
special.go feat(zddc-server): per-user-home .zddc is fenced (inherit: false) 2026-05-09 22:34:11 -05:00
special_test.go feat(zddc-server): empty listing for canonical project folders 2026-05-09 20:34:53 -05:00
validate.go feat(zddc-server): apps fetch+cache subsystem with cascade overrides 2026-05-01 15:25:25 -05:00
validate_test.go feat(zddc-server): apps fetch+cache subsystem with cascade overrides 2026-05-01 15:25:25 -05:00
writer.go feat: form-data system v0 (sixth tool + zddc-server endpoints) 2026-05-02 20:12:16 -05:00
writer_test.go feat(zddc-server): delegated subtree admins + built-in .zddc editor 2026-04-29 12:52:06 -05:00