A local-first note taking app

Move internal-link resolution into DocumentSlotView; wire Zen master

Link-target resolution (relative-path join + building an OpenDocRequest) lived in the tiling workspace, so each workspace would have to reimplement it. Move it into a shared, pure resolveDocumentLink() and have DocumentSlotView — which already holds the open doc's path and provider — translate a workspace's onOpenEntry into the editor's onOpenLink handler. Now any workspace gets file-to-file link navigation by forwarding the onOpenEntry it already receives: Zen becomes a two-line change, and tiling drops its bespoke handleOpenLink plus the onOpenLink prop threading. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>


+92 -28
5 changed files