Photos Quick Look ignores info shortcut after direct deep link #1263

Open
opened 2026-10-06 23:59:00 +00:00 by kayg · 4 comments
Owner

Steps

  1. Open /p/<photo-id> directly for a photo with GPS EXIF data in Photos.
  2. Wait for the Quick Look heading to appear.
  3. Press i to open the info inspector.

Expected

Quick Look opens the info inspector and exposes the photo's EXIF and place details.

Actual

The Quick Look remains open, but the inspector does not appear after i. In the Photos E2E flow, the accessible heading is present before the key press, then waiting for Show on a map in the inspector times out. The same i action works earlier when opening a photo from the timeline.

Evidence

artifacts/bash-files/photos/photos-inspector-place-timeout.png

Severity: major (keyboard access to Quick Look information fails on a direct photo deep link).

## Steps 1. Open `/p/<photo-id>` directly for a photo with GPS EXIF data in Photos. 2. Wait for the Quick Look heading to appear. 3. Press `i` to open the info inspector. ## Expected Quick Look opens the info inspector and exposes the photo's EXIF and place details. ## Actual The Quick Look remains open, but the inspector does not appear after `i`. In the Photos E2E flow, the accessible heading is present before the key press, then waiting for `Show on a map` in the inspector times out. The same `i` action works earlier when opening a photo from the timeline. ## Evidence `artifacts/bash-files/photos/photos-inspector-place-timeout.png` Severity: major (keyboard access to Quick Look information fails on a direct photo deep link).
Author
Owner

Confirmed after merging origin/dev (build 7e14f7181): the Photos E2E flow still opens /p/<id>, reads the accessible Quick Look heading, presses i, and times out because the inspector does not appear. The same i shortcut worked when opening from the timeline. Updated evidence: artifacts/bash-files/photos/post-merge-inspector-shortcut-timeout.png.

Confirmed after merging `origin/dev` (build `7e14f7181`): the Photos E2E flow still opens `/p/<id>`, reads the accessible Quick Look heading, presses `i`, and times out because the inspector does not appear. The same `i` shortcut worked when opening from the timeline. Updated evidence: `artifacts/bash-files/photos/post-merge-inspector-shortcut-timeout.png`.
Author
Owner

Round 2 production reproduction on 2026-10-07:

  • Built apps/web with bun run build and used the worktree-built calternal-server with a fresh Home under target/tmp.
  • Ran bun e2e/photos.mjs. The seeded 45-group library opened the normal Photos viewer and passed arrow navigation plus i Inspector handling in that flow.
  • On the cold direct link /p/<item-id>, Quick Look showed IMG_1003.JPG; pressing i did not open the Inspector. The test timed out after 30 seconds waiting for Show on a map at apps/web/e2e/photos.mjs:1118.

Production failure screenshot: artifacts/bash-files/photos/inspector-direct-link-before.png. The failure occurs because focus remains on the outer dialog while the cold-linked item is loading, and the shortcut handler is nested inside the item content.

Round 2 production reproduction on 2026-10-07: - Built `apps/web` with `bun run build` and used the worktree-built `calternal-server` with a fresh Home under `target/tmp`. - Ran `bun e2e/photos.mjs`. The seeded 45-group library opened the normal Photos viewer and passed arrow navigation plus `i` Inspector handling in that flow. - On the cold direct link `/p/<item-id>`, Quick Look showed `IMG_1003.JPG`; pressing `i` did not open the Inspector. The test timed out after 30 seconds waiting for `Show on a map` at `apps/web/e2e/photos.mjs:1118`. Production failure screenshot: `artifacts/bash-files/photos/inspector-direct-link-before.png`. The failure occurs because focus remains on the outer dialog while the cold-linked item is loading, and the shortcut handler is nested inside the item content.
Author
Owner

Fixed on job/bash-files in commit 0d991f6f3f057c1b481874ca6c84e432b7d9d5c5.

The shared Quick Look now moves focus to its Close control when a cold direct link loads its item and focus is still on the page or outer dialog. It does not take focus from a nested Inspector or another control. The Photos production run passed the new focus assertion, pressed i, and found EXIF, GPS coordinates, Paris and the camera name in the Inspector.

Verification: bun run check passed with 0 errors and 1 existing CSS warning in apps/web/src/lib/calendar/AttachmentDeck.svelte. bun run build passed. The full bun e2e/photos.mjs --screenshots ... run later stopped at an existing tag-save toast assertion: the product calls toast({ policy: 'drop' }), while the E2E waits for a success toast. I left that expectation unchanged as required.

Fixed on `job/bash-files` in commit `0d991f6f3f057c1b481874ca6c84e432b7d9d5c5`. The shared Quick Look now moves focus to its Close control when a cold direct link loads its item and focus is still on the page or outer dialog. It does not take focus from a nested Inspector or another control. The Photos production run passed the new focus assertion, pressed `i`, and found EXIF, GPS coordinates, Paris and the camera name in the Inspector. Verification: `bun run check` passed with 0 errors and 1 existing CSS warning in `apps/web/src/lib/calendar/AttachmentDeck.svelte`. `bun run build` passed. The full `bun e2e/photos.mjs --screenshots ...` run later stopped at an existing tag-save toast assertion: the product calls `toast({ policy: 'drop' })`, while the E2E waits for a success toast. I left that expectation unchanged as required.
Author
Owner

Added and passed the production regression matrix in commit 400e3dfbf..

Command: bun e2e/photos.mjs --direct-link-only --screenshots /home/kayg/Developer/calternal-wt/bash-files/artifacts/bash-files/photos.

The cold direct /p/<id> flow passed at 1440, 820 and 390 px in both light and dark themes. In each context, keyboard i opened the Inspector and the test found the EXIF date, GPS coordinates, Paris and camera name. All six screenshots use macOS platform emulation and CSS-scale 1x.

Screenshots: artifacts/bash-files/photos/photos-direct-link-inspector-{1440,820,390}-{paper-white,tokyo-night}.png.

Added and passed the production regression matrix in commit `400e3dfbf.`. Command: `bun e2e/photos.mjs --direct-link-only --screenshots /home/kayg/Developer/calternal-wt/bash-files/artifacts/bash-files/photos`. The cold direct `/p/<id>` flow passed at 1440, 820 and 390 px in both light and dark themes. In each context, keyboard `i` opened the Inspector and the test found the EXIF date, GPS coordinates, Paris and camera name. All six screenshots use macOS platform emulation and CSS-scale 1x. Screenshots: `artifacts/bash-files/photos/photos-direct-link-inspector-{1440,820,390}-{paper-white,tokyo-night}.png`.
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#1263
No description provided.