Problem
Scoped multi-path mounts persist a remote-path allowlist and promise that only the selected subtrees are mirrored. The canonical workspace digest is global: the renderer deliberately includes event providers even when they are absent from the supplied provider list. Pulling /digests/* into a scoped mount can therefore disclose summaries from providers outside that allowlist.
Creating an empty digests/ directory plus .skills/activity-summary.md is also unsafe: the skill promises a current digest while no scoped Syncer can maintain it. An honest absence is preferable to a stale artifact with a currency promise.
Unit B of #379 therefore omits both root-level surfaces for scoped topology. Exact mounts are unchanged.
Acceptance criteria
- Define a filtered digest whose source events are constrained to the caller’s explicit remote-path/provider scope.
- Make the visibility/consent semantics explicit; opting into a workspace-global digest is not equivalent to opting into filtered metadata.
- Permit scoped mounts to request and maintain the filtered digest without widening their persisted allowlist.
- Cover the source-event filter, generated artifact, normal file event emission, and
/digests/* non-recursion path.
- Restore the activity-summary skill only when the mounted digest is actually maintained and current.
Related: #379, split review trail #384.
Problem
Scoped multi-path mounts persist a remote-path allowlist and promise that only the selected subtrees are mirrored. The canonical workspace digest is global: the renderer deliberately includes event providers even when they are absent from the supplied provider list. Pulling
/digests/*into a scoped mount can therefore disclose summaries from providers outside that allowlist.Creating an empty
digests/directory plus.skills/activity-summary.mdis also unsafe: the skill promises a current digest while no scoped Syncer can maintain it. An honest absence is preferable to a stale artifact with a currency promise.Unit B of #379 therefore omits both root-level surfaces for scoped topology. Exact mounts are unchanged.
Acceptance criteria
/digests/*non-recursion path.Related: #379, split review trail #384.