Creating a folder/file at a project-level folder-nav aggregator root (working/staging/reviewing) used to error or silently shadow — the slots are virtual and content is party-scoped. Now browse opens a party picker that targets archive/<party>/<slot>/<name>, with a "+ New party…" option (server-gated to the document_controller via the existing archive/ ACL). - events.js: aggregatorRoot detection + openPartyPicker modal (mirrors the stage.js modal), createInAggregator routes the create to the canonical archive path; rewriteAggregatorPath handles right-clicking a party row shown in an aggregator listing so it never re-prompts. - server: serveFileMkdir now 409s a mkdir inside an aggregator (rejectProjectAggregatorMkdir) with a pointer at archive/<party>/<slot>/, instead of letting the write fall through to an unreachable shadow dir. Reverts the prior session's project-level creator-owned working/ folders (per the design decision to make all three folder-nav slots uniformly party-scoped): working/ is a pure virtual aggregator again like staging/reviewing — drops the working/ history+auto_own+acl defaults, the EnsureCanonicalAncestors working exception, the working-root document- controller file gate (serveFilePut/Move) and zddc.IsRoleMemberAt. Per-party archive/<party>/working/ keeps its own history + auto-own. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| apps | ||
| archive | ||
| auth | ||
| cache | ||
| config | ||
| convert | ||
| fs | ||
| handler | ||
| jsonschema | ||
| listing | ||
| policy | ||
| tlsutil | ||
| zddc | ||
| zipfs | ||