Explain background execution beside the task activity indicator #7

Closed
opened 2026-10-24 13:26:30 +00:00 by jchapman · 5 comments
Owner

Users should not have to close a tab experimentally to discover that server-side work continues.

Use one consistent activity panel for analysis, preview and import, following the pilot UX concept: completed/current stages, followed immediately by background-execution reassurance.

Suggested preview copy: “Running on your server. You can close this page. Your preview will continue, and its status and results will be here when you return.”

Acceptance criteria:

  • Put this explanation beside activity feedback, not in a distant help section.
  • Distinguish server work from browser uploads: closing a browser stops sending new upload bytes, although accepted bytes remain resumable.
  • Do not promise uninterrupted execution across server restarts or automatic import retry.
  • Reconcile the panel with persisted state after reconnecting, including on another device.
  • Show a step number only when the sequence is actually defined.
Users should not have to close a tab experimentally to discover that server-side work continues. Use one consistent activity panel for analysis, preview and import, following the pilot UX concept: completed/current stages, followed immediately by background-execution reassurance. Suggested preview copy: “Running on your server. You can close this page. Your preview will continue, and its status and results will be here when you return.” Acceptance criteria: - Put this explanation beside activity feedback, not in a distant help section. - Distinguish server work from browser uploads: closing a browser stops sending new upload bytes, although accepted bytes remain resumable. - Do not promise uninterrupted execution across server restarts or automatic import retry. - Reconcile the panel with persisted state after reconnecting, including on another device. - Show a step number only when the sequence is actually defined.
Author
Owner

Starting implementation together with #4 and #8 after reading #14 and all current comments. Scope: a shared activity panel for analysis, preview and import, with stage/activity information immediately followed by background-execution guidance. Browser-upload guidance will explain that closing the page stops new bytes while accepted bytes remain resumable. Reconnects will use persisted server state; no uninterrupted-restart or automatic-import-retry promise.

Starting implementation together with #4 and #8 after reading #14 and all current comments. Scope: a shared activity panel for analysis, preview and import, with stage/activity information immediately followed by background-execution guidance. Browser-upload guidance will explain that closing the page stops new bytes while accepted bytes remain resumable. Reconnects will use persisted server state; no uninterrupted-restart or automatic-import-retry promise.
Author
Owner

Implementation now uses a shared activity panel with server-work guidance directly below the stage list, plus separate browser-upload close/resume guidance. Persisted job/import status is polled on return and in simultaneous sessions. UI production build has passed; focused reconnect/multiple-session browser checks are being added.

Implementation now uses a shared activity panel with server-work guidance directly below the stage list, plus separate browser-upload close/resume guidance. Persisted job/import status is polled on return and in simultaneous sessions. UI production build has passed; focused reconnect/multiple-session browser checks are being added.
Author
Owner

Implemented and published for review in commit e980c3778a76c66c280234e29a3c324f5e7ae56c, branch codex/issues-4-7-8-activity, PR #17: #17 . The working tree is clean. This supersedes the earlier tooling/validation limitations.

VALIDATION

  • Local Linux AMD64 Docker backend tests and vet, including the pinned real importer fixtures; focused API cancellation/authorization/completion-race checks under the race detector and the complete runner race suite.
  • Real Docker isolation: fixed verification/analysis stage messages, persistent inputs, container removal, and actual importer cancellation/final private-log transfer.
  • UI lint/build; focused two-owner-browser synthetic activity tests for missing/stale status, stage transitions, offline/reconnect restoration, repeated navigation without cancellation, stage-specific Stop confirmation, Stopping/Stopped, explicit analysis retry and completion winning a late stop. Mobile screenshot inspected.
  • Disposable complete browser/queue/SQLite walkthrough, upload interruption/reselection/resume, history, protected diagnostics and administrator settings. App/runner/processor were rebuilt from the committed source and the final full smoke check passed. HTTPS proxy/upload-resume/readiness smoke also passed during implementation. Only disposable test containers were restarted; no real Immich/media/email was used.
  • Nine CI contract/policy tests, source-tree/document checks, staged diff checks, tracked-source and full-history secret scans (no leaks). Source gosec: 35 production files, 29 previously reviewed findings, no loading errors or suppressions; source govulncheck passed the existing policy. No baseline exceptions or dependency changes were added. The existing UI large-bundle advisory remains.

STATE / LIMITS / HANDOFF
Source is committed and pushed for review; not merged, release-image-published or deployed. Forgejo run https://git.sharedroot.net/jchapman/Immich-Bridge/actions/runs/5 is waiting for the AMD64/ARM64 source jobs, with dependent gates blocked. No native release CI pass or native ARM64 execution is claimed. Real large-library performance and deployed pilot behavior remain unverified.

Review #17. It is stacked on #16, which itself follows #15; after those merge, retarget #17 to main and verify the diff and required gates. Coordinate an idle installation of app, runner and processor together, then run an owner pilot preview and check the task lifecycle before closing this issue. Do not interrupt active uploads/tasks for deployment. No automatic import replay, rollback or unsupported mid-import resume is promised.

ISSUE #7 CHANGES
Analysis, preview and import share the same stage/activity panel. Background-execution reassurance is immediately below the stage list, including that closing the page does not request cancellation. It explains that server restarts can interrupt tasks and imports never restart automatically. Stopping has separate wording so it does not promise that a cancelled task will keep running.

Browser-upload guidance explicitly says closing the page stops new bytes, accepted bytes remain resumable, and returning requires selecting the same original ZIPs. Activity reconciles with saved state across reconnects and another owner browser/device. The stage sequences are defined per mode; no invented wizard step number is displayed. See docs/results.md.

Implemented and published for review in commit `e980c3778a76c66c280234e29a3c324f5e7ae56c`, branch `codex/issues-4-7-8-activity`, PR #17: https://git.sharedroot.net/jchapman/Immich-Bridge/pulls/17 . The working tree is clean. This supersedes the earlier tooling/validation limitations. VALIDATION - Local Linux AMD64 Docker backend tests and vet, including the pinned real importer fixtures; focused API cancellation/authorization/completion-race checks under the race detector and the complete runner race suite. - Real Docker isolation: fixed verification/analysis stage messages, persistent inputs, container removal, and actual importer cancellation/final private-log transfer. - UI lint/build; focused two-owner-browser synthetic activity tests for missing/stale status, stage transitions, offline/reconnect restoration, repeated navigation without cancellation, stage-specific Stop confirmation, Stopping/Stopped, explicit analysis retry and completion winning a late stop. Mobile screenshot inspected. - Disposable complete browser/queue/SQLite walkthrough, upload interruption/reselection/resume, history, protected diagnostics and administrator settings. App/runner/processor were rebuilt from the committed source and the final full smoke check passed. HTTPS proxy/upload-resume/readiness smoke also passed during implementation. Only disposable test containers were restarted; no real Immich/media/email was used. - Nine CI contract/policy tests, source-tree/document checks, staged diff checks, tracked-source and full-history secret scans (no leaks). Source gosec: 35 production files, 29 previously reviewed findings, no loading errors or suppressions; source govulncheck passed the existing policy. No baseline exceptions or dependency changes were added. The existing UI large-bundle advisory remains. STATE / LIMITS / HANDOFF Source is committed and pushed for review; not merged, release-image-published or deployed. Forgejo run https://git.sharedroot.net/jchapman/Immich-Bridge/actions/runs/5 is waiting for the AMD64/ARM64 source jobs, with dependent gates blocked. No native release CI pass or native ARM64 execution is claimed. Real large-library performance and deployed pilot behavior remain unverified. Review #17. It is stacked on #16, which itself follows #15; after those merge, retarget #17 to main and verify the diff and required gates. Coordinate an idle installation of app, runner and processor together, then run an owner pilot preview and check the task lifecycle before closing this issue. Do not interrupt active uploads/tasks for deployment. No automatic import replay, rollback or unsupported mid-import resume is promised. ISSUE #7 CHANGES Analysis, preview and import share the same stage/activity panel. Background-execution reassurance is immediately below the stage list, including that closing the page does not request cancellation. It explains that server restarts can interrupt tasks and imports never restart automatically. Stopping has separate wording so it does not promise that a cancelled task will keep running. Browser-upload guidance explicitly says closing the page stops new bytes, accepted bytes remain resumable, and returning requires selecting the same original ZIPs. Activity reconciles with saved state across reconnects and another owner browser/device. The stage sequences are defined per mode; no invented wizard step number is displayed. See docs/results.md.
Author
Owner

Integration handoff: PR #17 is merged into main in 8230741. The final combined source passed local backend/vet/race, UI/browser, container/isolation/HTTPS, source/image policy and secret checks. Detailed merge/conflict evidence and limitations: #14 (comment). Native Forgejo AMD64/ARM64 release validation remains queued; no release images or deployment are claimed. This issue remains open for its pilot checkpoint. Verify background-execution guidance and restored status in the deployed owner workflow. No active upload/task or pilot service was interrupted.

Integration handoff: PR #17 is merged into main in `8230741`. The final combined source passed local backend/vet/race, UI/browser, container/isolation/HTTPS, source/image policy and secret checks. Detailed merge/conflict evidence and limitations: https://git.sharedroot.net/jchapman/Immich-Bridge/issues/14#issuecomment-175. Native Forgejo AMD64/ARM64 release validation remains queued; no release images or deployment are claimed. This issue remains open for its pilot checkpoint. Verify background-execution guidance and restored status in the deployed owner workflow. No active upload/task or pilot service was interrupted.
Author
Owner

Final development handoff: PR #17 is merged into main in 8230741, preserving feature commit(s) e980c37.

Background-execution guidance is beside the activity stages. Closing a page does not cancel server work. Browser uploads require continued sending; accepted bytes remain resumable. Server restarts may interrupt tasks and imports do not replay automatically.

Validation: Two-owner-browser checks passed background/upload guidance, reconnect restoration, navigation without cancellation and mobile layout. The disposable upload-reselection/recovery walkthrough passed. The combined application also passed backend/vet/race, UI lint/build, container/HTTPS, source/image policies and secret checks; integration evidence.

Documentation is updated on main through PR #21, merge 5ed7191: feature guide, merged scope/evidence, and remaining pilot checks. All nine documentation/policy tests and link/anchor/workflow checks passed.

Closing at the owner's explicit request after merge, local validation and documentation review. This supersedes the earlier request to keep this development issue open through deployment. Native Forgejo AMD64/ARM64 release gates, coordinated idle installation and applicable real-provider/owner pilot checks remain in the release checklist and coordination issue #14. No deployment, native ARM64 pass, real-library capacity result or gate waiver is claimed. PR #19 and scanning remain on hold.

Final development handoff: [PR #17](https://git.sharedroot.net/jchapman/Immich-Bridge/pulls/17) is merged into main in `8230741`, preserving feature commit(s) `e980c37`. Background-execution guidance is beside the activity stages. Closing a page does not cancel server work. Browser uploads require continued sending; accepted bytes remain resumable. Server restarts may interrupt tasks and imports do not replay automatically. Validation: Two-owner-browser checks passed background/upload guidance, reconnect restoration, navigation without cancellation and mobile layout. The disposable upload-reselection/recovery walkthrough passed. The combined application also passed backend/vet/race, UI lint/build, container/HTTPS, source/image policies and secret checks; [integration evidence](https://git.sharedroot.net/jchapman/Immich-Bridge/issues/14#issuecomment-175). Documentation is updated on main through [PR #21](https://git.sharedroot.net/jchapman/Immich-Bridge/pulls/21), merge `5ed7191`: [feature guide](https://git.sharedroot.net/jchapman/Immich-Bridge/src/branch/main/docs/results.md#task-activity-and-stopping), [merged scope/evidence](https://git.sharedroot.net/jchapman/Immich-Bridge/src/branch/main/docs/integration-status.md), and [remaining pilot checks](https://git.sharedroot.net/jchapman/Immich-Bridge/src/branch/main/docs/deployment.md#merged-pilot-feature-checks). All nine documentation/policy tests and link/anchor/workflow checks passed. Closing at the owner's explicit request after merge, local validation and documentation review. This supersedes the earlier request to keep this development issue open through deployment. Native Forgejo AMD64/ARM64 release gates, coordinated idle installation and applicable real-provider/owner pilot checks remain in the release checklist and coordination issue #14. No deployment, native ARM64 pass, real-library capacity result or gate waiver is claimed. PR #19 and scanning remain on hold.
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
jchapman/Immich-Bridge#7
No description provided.