Make every ZIP reachable on mobile #24

Merged
jchapman merged 1 commit from codex/issue-5-mobile-file-list into main 2026-10-27 11:55:34 +00:00
Owner

A phone can report three received ZIPs while the sidebar height limit clips the last entry, especially with upload help expanded. This gives the ZIP list its own labelled native scroll region and lets the mobile controls grow above it, with the selected status panel below.

  • Wrap long names, expose selection through real buttons with pressed state/status-panel association, and provide separate 44px remove controls and visible keyboard focus.
  • Preserve selection during scrolling, resizing and task-status refreshes. Add a scroll hint and keyboard-accessible empty-state action.
  • Add the focused file-list regression to the existing CI browser gate, update the full walkthrough selectors, and wait for its initial collection redirect before navigating to Administration.
  • Document the behavior, test scope and remaining physical-device installation checks.

Closes #5; coordination follows #14. Source-development closure retains the documented native release and actual-device/installation checks. Based on merged main 44c36de10d3c4c8a4a72c01750e20bd2e88ab969; feature commit e274c617aa64ace46a6a53a558de717083f37545. Held #12/PR #19 are unchanged.

Validation passed:

  • Reproduced third-ZIP clipping on the original 320px UI with expanded help, then passed the focused regression on the fixed UI.
  • npm --prefix ui run lint, npm --prefix ui run build, and full npm --prefix ui audit (zero reported vulnerabilities).
  • node ui/tests/mobile-file-list.mjs: 3/16 ZIPs, long names, expanded help, 320/390/760/761/1280px, selection/remove hit targets, emulated touch drag/tap, keyboard scrolling/Enter/Space/Tab, selection retention, local removal, independent owner-session monitoring and outage/reconnect.
  • Existing task-activity.mjs, task-email.mjs and advanced-import.mjs browser suites.
  • Fresh local runtime image and full disposable tests/container_smoke.py --skip-build --image immich-bridge:issue-5-app --runner-image immich-bridge:issue-13-runner --processor-image immich-bridge:issue-13-processor --browser: real uploads, replacement/resume/SHA-256, queue/SQLite, UI pause/stop/reselection, reports, settings and redaction. Backend/runner/processor/importer source is unchanged from merged #13; its runner/processor images were reused. Disposable containers/volumes were removed.
  • All nine CI policy tests, documentation/workflow/tracked-file contracts, diff checks, and redacted full-history/staged secret scans.

The existing UI bundle-size advisory remains. Local Chrome/Chromium with emulated touch does not certify physical devices, Safari, native ARM64 or the Forgejo release gate. No release images were published and no deployed service or active upload/task was interrupted. Next: review, satisfy native CI, then coordinate installation and the recorded device/pilot checks.

A phone can report three received ZIPs while the sidebar height limit clips the last entry, especially with upload help expanded. This gives the ZIP list its own labelled native scroll region and lets the mobile controls grow above it, with the selected status panel below. - Wrap long names, expose selection through real buttons with pressed state/status-panel association, and provide separate 44px remove controls and visible keyboard focus. - Preserve selection during scrolling, resizing and task-status refreshes. Add a scroll hint and keyboard-accessible empty-state action. - Add the focused file-list regression to the existing CI browser gate, update the full walkthrough selectors, and wait for its initial collection redirect before navigating to Administration. - Document the behavior, test scope and remaining physical-device installation checks. Closes #5; coordination follows #14. Source-development closure retains the documented native release and actual-device/installation checks. Based on merged main `44c36de10d3c4c8a4a72c01750e20bd2e88ab969`; feature commit `e274c617aa64ace46a6a53a558de717083f37545`. Held #12/PR #19 are unchanged. Validation passed: - Reproduced third-ZIP clipping on the original 320px UI with expanded help, then passed the focused regression on the fixed UI. - `npm --prefix ui run lint`, `npm --prefix ui run build`, and full `npm --prefix ui audit` (zero reported vulnerabilities). - `node ui/tests/mobile-file-list.mjs`: 3/16 ZIPs, long names, expanded help, 320/390/760/761/1280px, selection/remove hit targets, emulated touch drag/tap, keyboard scrolling/Enter/Space/Tab, selection retention, local removal, independent owner-session monitoring and outage/reconnect. - Existing `task-activity.mjs`, `task-email.mjs` and `advanced-import.mjs` browser suites. - Fresh local runtime image and full disposable `tests/container_smoke.py --skip-build --image immich-bridge:issue-5-app --runner-image immich-bridge:issue-13-runner --processor-image immich-bridge:issue-13-processor --browser`: real uploads, replacement/resume/SHA-256, queue/SQLite, UI pause/stop/reselection, reports, settings and redaction. Backend/runner/processor/importer source is unchanged from merged #13; its runner/processor images were reused. Disposable containers/volumes were removed. - All nine CI policy tests, documentation/workflow/tracked-file contracts, diff checks, and redacted full-history/staged secret scans. The existing UI bundle-size advisory remains. Local Chrome/Chromium with emulated touch does not certify physical devices, Safari, native ARM64 or the Forgejo release gate. No release images were published and no deployed service or active upload/task was interrupted. Next: review, satisfy native CI, then coordinate installation and the recorded device/pilot checks.
Make every ZIP reachable in the mobile file list
Some checks failed
Bridge validation / source (amd64) (push) Has been cancelled
Bridge validation / source (arm64) (push) Has been cancelled
Bridge validation / backend (amd64) (push) Has been cancelled
Bridge validation / backend (arm64) (push) Has been cancelled
Bridge validation / isolation (amd64) (push) Has been cancelled
Bridge validation / isolation (arm64) (push) Has been cancelled
Bridge validation / browser (amd64) (push) Has been cancelled
Bridge validation / browser (arm64) (push) Has been cancelled
Bridge validation / production (amd64) (push) Has been cancelled
Bridge validation / production (arm64) (push) Has been cancelled
Bridge validation / supply_chain (amd64) (push) Has been cancelled
Bridge validation / supply_chain (arm64) (push) Has been cancelled
Bridge validation / release-gate (push) Has been cancelled
e274c617aa
jchapman changed title from WIP: Make every ZIP reachable on mobile to Make every ZIP reachable on mobile 2026-10-27 11:55:08 +00:00
Author
Owner

Independent merge-readiness review completed for e274c617aa against main 44c36de. No blocking findings in the application, CSS, regression harness or documentation diff. Re-ran UI lint/build, full dependency audit (zero vulnerabilities), mobile-file-list, task-activity, task-email and advanced-import browser suites; all pass. All nine CI policy tests plus source/workflow/document contracts, clean-tree and diff checks pass. Fresh synthetic 320px status and long-list screenshots were inspected. The merge is conflict-free and its calculated tree equals the validated feature tree; backend/importer/runtime build sources are unchanged. Earlier full disposable container/upload evidence remains documented in #5 comment 370 and was not rerun during this source review.

Native Forgejo run 23 is waiting; it is not a successful native AMD64/ARM64 or release-gate result. No branch-protection rules were changed, no force merge is requested, and release/actual-device/installation checks remain required. The owner requested this source merge; the draft marker has been removed. Held #12/PR #19 is excluded. No deployment, release-image publication or active-work interruption is authorized or performed.

Independent merge-readiness review completed for e274c617aa64ace46a6a53a558de717083f37545 against main 44c36de. No blocking findings in the application, CSS, regression harness or documentation diff. Re-ran UI lint/build, full dependency audit (zero vulnerabilities), mobile-file-list, task-activity, task-email and advanced-import browser suites; all pass. All nine CI policy tests plus source/workflow/document contracts, clean-tree and diff checks pass. Fresh synthetic 320px status and long-list screenshots were inspected. The merge is conflict-free and its calculated tree equals the validated feature tree; backend/importer/runtime build sources are unchanged. Earlier full disposable container/upload evidence remains documented in #5 comment 370 and was not rerun during this source review. Native Forgejo run 23 is waiting; it is not a successful native AMD64/ARM64 or release-gate result. No branch-protection rules were changed, no force merge is requested, and release/actual-device/installation checks remain required. The owner requested this source merge; the draft marker has been removed. Held #12/PR #19 is excluded. No deployment, release-image publication or active-work interruption is authorized or performed.
Sign in to join this conversation.
No reviewers
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
jchapman/Immich-Bridge!24
No description provided.