Deep links: copy links to internal Share grants #880

Open
opened 2026-10-02 17:30:39 +00:00 by kayg · 0 comments
Owner

Evidence

The File route accepts /f/<item-id>?open=share but has no selected Share-grant state (apps/web/src/routes/f/[id]/+page.svelte:9-10,27-33). Each internal Share row has a stable share.id, but only an access selector and Stop sharing control (apps/web/src/lib/files/ShareDialog.svelte:301-313). It has no Copy link action. Public shares are different: they already have a /s/<slug> route and Copy link control.

Rule

CLAUDE.md, Deep links, requires every item to have Copy link and says to use stable identities. DESIGN §33 defines the Share dialog link as /f/<item-id>?open=share, but does not define a link to an individual internal Share grant.

Expected behavior

Copy link in the Share dialog opens the management view for that File. Each internal Share grant also has a Copy link action that opens the Share dialog with that grant selected, using the stable Share ID. Do not use the File path or recipient name as identity.

Test idea

Create two internal Share grants for one File. Copy each grant link, open each in a fresh page, and verify the correct File and grant are selected. Rename or move the File and verify both links still resolve.

## Evidence The File route accepts `/f/<item-id>?open=share` but has no selected Share-grant state (`apps/web/src/routes/f/[id]/+page.svelte:9-10,27-33`). Each internal Share row has a stable `share.id`, but only an access selector and Stop sharing control (`apps/web/src/lib/files/ShareDialog.svelte:301-313`). It has no Copy link action. Public shares are different: they already have a `/s/<slug>` route and Copy link control. ## Rule CLAUDE.md, Deep links, requires every item to have Copy link and says to use stable identities. DESIGN §33 defines the Share dialog link as `/f/<item-id>?open=share`, but does not define a link to an individual internal Share grant. ## Expected behavior Copy link in the Share dialog opens the management view for that File. Each internal Share grant also has a Copy link action that opens the Share dialog with that grant selected, using the stable Share ID. Do not use the File path or recipient name as identity. ## Test idea Create two internal Share grants for one File. Copy each grant link, open each in a fresh page, and verify the correct File and grant are selected. Rename or move the File and verify both links still resolve.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kayg/calternal#880
No description provided.