Problem
Setting up a remote target so that chained import → process → move-to-NAS works requires the user to complete three separate things, and only one of them exists in the UI:
- The form — nine fields, six of which are typed absolute paths or SSH connection details.
- SSH key setup — generating a keypair and installing it on the NAS (
ssh-keygen + ssh-copy-id). Nothing in the app mentions this; the only signal is a failed connection test.
- A GNU rsync install — a Homebrew package on macOS (see the rsync hint issue).
A walkthrough of a real first-time setup hit all three, plus two smaller snags (no save affordance, an unvalidated archive root that failed later with a message blaming a different field).
Observation motivating this
Of the nine form fields, essentially all were mechanically discoverable from the machine:
| Field |
Discoverable from |
| User |
the SMB mount (//julius_admin@10.x.x.x/Photography) |
| Host |
reverse lookup / Tailscale MagicDNS name for the mount's IP |
| Port |
probe 22 |
| Remote path |
Synology convention /volume1/<share>, verifiable over SSH once connected |
| Local mount path |
the mount table |
| Name |
derivable from the share name |
| Port / bandwidth |
sane defaults |
The only genuinely user-supplied secret was the NAS password, needed once for ssh-copy-id.
Proposal
An "Add from mounted volume…" flow that:
- Lists currently-mounted network volumes (SMB/AFP/NFS) with their server and share.
- Pre-fills name, user, host, mount path, and a best-guess remote path from vendor conventions.
- Detects whether an SSH key exists; offers to generate one if not.
- Prompts once for the NAS password to install the key (equivalent of
ssh-copy-id), so the user never sees a terminal.
- Verifies the remote path over SSH and offers alternatives if the guess is wrong (
ls -d /volume*/<share>).
- Checks GNU rsync availability and surfaces the install command if missing.
- Ends on a green connection test.
Also: replace typed absolute paths with folder pickers
Independently of the wizard, the path fields should be pickers:
- Local mount path and Local archive root in the remote-target form
- Destination on the Import page
These fields are currently too narrow to display a typical absolute path, which actively hides typos — a space-vs-underscore mismatch in an archive root went unnoticed through several screenshots because the visible text was truncated to /Users/julius/Pictures/Virec…. A picker makes that class of error structurally impossible, and would have prevented the archive-root issue outright.
Scope note
This is deliberately written as one umbrella issue because the pieces share a user journey, but they're independently shippable — the folder pickers and the mounted-volume prefill deliver most of the value without the SSH automation, which is the largest and riskiest part.
Problem
Setting up a remote target so that chained import → process → move-to-NAS works requires the user to complete three separate things, and only one of them exists in the UI:
ssh-keygen+ssh-copy-id). Nothing in the app mentions this; the only signal is a failed connection test.A walkthrough of a real first-time setup hit all three, plus two smaller snags (no save affordance, an unvalidated archive root that failed later with a message blaming a different field).
Observation motivating this
Of the nine form fields, essentially all were mechanically discoverable from the machine:
//julius_admin@10.x.x.x/Photography)/volume1/<share>, verifiable over SSH once connectedThe only genuinely user-supplied secret was the NAS password, needed once for
ssh-copy-id.Proposal
An "Add from mounted volume…" flow that:
ssh-copy-id), so the user never sees a terminal.ls -d /volume*/<share>).Also: replace typed absolute paths with folder pickers
Independently of the wizard, the path fields should be pickers:
These fields are currently too narrow to display a typical absolute path, which actively hides typos — a space-vs-underscore mismatch in an archive root went unnoticed through several screenshots because the visible text was truncated to
/Users/julius/Pictures/Virec…. A picker makes that class of error structurally impossible, and would have prevented the archive-root issue outright.Scope note
This is deliberately written as one umbrella issue because the pieces share a user journey, but they're independently shippable — the folder pickers and the mounted-volume prefill deliver most of the value without the SSH automation, which is the largest and riskiest part.