Deep links: Note anchor, File Share, Search actions, Settings Passkeys don't restore #1459

Closed
opened 2026-10-08 10:15:49 +00:00 by kayg · 3 comments
Owner

The independent navigation review for #1233 (worktree tabswitch-1233, artifacts/navrev-findings.md, existing tests in apps/web/e2e/deeplinks.mjs) found these deep links failing on both the current production build and the branch:

  1. /n/<id>#<heading> (Note block anchor): the Note opens but never scrolls the heading into view (deeplinks.mjs:773 times out).
  2. /f/<id>?open=share: the File Share dialog never opens.
  3. Search: the result Actions step at deeplinks.mjs:942 is never available.
  4. /settings/account/passkeys: the Passkeys group never becomes visible (deeplinks.mjs:965–970); the admin alias and notifications checks after it never ran.
  5. Signed-out public File preview: after Preview, the file name never becomes visible.

Expected

Each link restores the exact view, cold and warm, at 390/820/1440. Fix each at its owner (one shared deep-link restore path where possible, per DESIGN §33). The existing deeplinks.mjs suite passes end to end, including the admin alias and notifications checks that never ran.

## Problem (live on production d395b6e25; owner rule: every part of the UI is deep-linkable and opening a link restores the exact view) The independent navigation review for #1233 (worktree tabswitch-1233, `artifacts/navrev-findings.md`, existing tests in `apps/web/e2e/deeplinks.mjs`) found these deep links failing on both the current production build and the branch: 1. `/n/<id>#<heading>` (Note block anchor): the Note opens but never scrolls the heading into view (deeplinks.mjs:773 times out). 2. `/f/<id>?open=share`: the File Share dialog never opens. 3. Search: the result Actions step at deeplinks.mjs:942 is never available. 4. `/settings/account/passkeys`: the Passkeys group never becomes visible (deeplinks.mjs:965–970); the admin alias and notifications checks after it never ran. 5. Signed-out public File preview: after Preview, the file name never becomes visible. ## Expected Each link restores the exact view, cold and warm, at 390/820/1440. Fix each at its owner (one shared deep-link restore path where possible, per DESIGN §33). The existing deeplinks.mjs suite passes end to end, including the admin alias and notifications checks that never ran.
Author
Owner

Starting #1459 on branch job/fix-1459, base d395b6e25. Reproducing with apps/web/e2e/deeplinks.mjs.

Starting #1459 on branch job/fix-1459, base d395b6e25. Reproducing with apps/web/e2e/deeplinks.mjs.
Author
Owner

Finished on job/fix-1459, head d4d1670cf (origin/dev merged once). bun run check exit 0; full bun run test --maxWorkers=2: 297 files / 2120 tests passed; apps/web/e2e/deeplinks.mjs: "deep links e2e: all passed" (incl. admin alias and notifications). New focused e2e: public-file-preview-1459.mjs.
Root causes: (1) Note anchor: test-only. An earlier block renamed Milestones to Deliverables and the heading now carries ^id and a Copy button, so the second block waited for stale text; the product scrolls. (2) /f/?open=share: product works; the dialog is named by stem (DESIGN 54, #606/#1034), test expected "deeplink-brief.txt". (3) Search Actions: container is now .sw-action-pills (search.mjs asserts .sw-action-bar is gone). (4) Settings Passkeys: real bug. The group scrolled once while only 3 cards were mounted (too short to reach pane top), and the 2 s pin ended before later idle slices mounted the other cards; pin now observes the stack and lasts up to 15 s until user input. (5) Public File Preview: real bug, singleItem() passed mime null and previewKind is MIME driven so Quick Look said "No preview"; also text started under the floating title band (Quick Look now publishes --ql-head-clearance). Also fixed stale/duplicate-name items found past Passkeys: Notes header Copy link now named after its view (was ambiguous with sidebar), Notes row Copy link moved into the row menu, Calendar sidebar lists area tags with ?tag= filter links; authflash-850 now lazy-loads sharp and expects /n/.
Not done: authflash-850.mjs still fails later at the post cross-tab passkey sign-in (button never appears; not in this issue's list, needs a separate look).

Finished on job/fix-1459, head d4d1670cf (origin/dev merged once). bun run check exit 0; full bun run test --maxWorkers=2: 297 files / 2120 tests passed; apps/web/e2e/deeplinks.mjs: "deep links e2e: all passed" (incl. admin alias and notifications). New focused e2e: public-file-preview-1459.mjs. Root causes: (1) Note anchor: test-only. An earlier block renamed Milestones to Deliverables and the heading now carries ^id and a Copy button, so the second block waited for stale text; the product scrolls. (2) /f/<id>?open=share: product works; the dialog is named by stem (DESIGN 54, #606/#1034), test expected "deeplink-brief.txt". (3) Search Actions: container is now .sw-action-pills (search.mjs asserts .sw-action-bar is gone). (4) Settings Passkeys: real bug. The group scrolled once while only 3 cards were mounted (too short to reach pane top), and the 2 s pin ended before later idle slices mounted the other cards; pin now observes the stack and lasts up to 15 s until user input. (5) Public File Preview: real bug, singleItem() passed mime null and previewKind is MIME driven so Quick Look said "No preview"; also text started under the floating title band (Quick Look now publishes --ql-head-clearance). Also fixed stale/duplicate-name items found past Passkeys: Notes header Copy link now named after its view (was ambiguous with sidebar), Notes row Copy link moved into the row menu, Calendar sidebar lists area tags with ?tag= filter links; authflash-850 now lazy-loads sharp and expects /n/<id>. Not done: authflash-850.mjs still fails later at the post cross-tab passkey sign-in (button never appears; not in this issue's list, needs a separate look).
kayg referenced this issue from a commit 2026-10-08 19:43:32 +00:00
Author
Owner

Deployed to calternal.cloud in merge round 35b (build 9dc65437e, live 2026-10-09 ~11:07 IST). Closing.

Deployed to calternal.cloud in merge round 35b (build 9dc65437e, live 2026-10-09 ~11:07 IST). Closing.
kayg closed this issue 2026-10-09 05:37:04 +00:00
Commenting is not possible because the repository is archived.
No labels
No milestone
No project
No assignees
1 participant
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-v0#1459
No description provided.