A local-first note taking app

Resolve internal links from entryId, not the document handle id master

`resolveDocumentLink` was being handed `handle.id` as the source path. That is the provider's own document identity, which only coincides with a filesystem path for local vaults: `SyncedVaultDocumentsProvider` sets `id: session.uri`, an `at://` URI. Taking `dirname` of that produces a target no provider can open, so file-to-file link navigation was broken in synced vaults. `request.entryId` is the absolute path in both providers, and is already what the wikilink resolution beside it uses — having the two disagree within the same component was the confusing part. Documents the constraint on `LinkSource.path` rather than only fixing the call site, so the next caller does not reach for the handle again. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>


+14 -2
2 changed files