- Rename Targets → Sources, Remotes → Destinations across all screens
- Reorganize main menu with logical groupings and separators
- Add Browse button to Base path field in remote editor (local + SSH)
- Fix RichLog IndexError crash when compositor renders with y=-1
- Fix _sync_crontab accidentally wiping crontab via premature remove
- Per-target locking and auto-create local remote base directory
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Rsync exit 23 (partial transfer) now triggers an automatic retry to recover
failed files before accepting with a warning. Also adds a task counter next
to the clock in the header bar showing running job count.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Split each screen into two columns: existing controls on the left,
a DocsPanel with Rich-markup documentation on the right (30% width).
Press F1 to toggle the help panel on/off from any screen.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace flat file list with a Tree widget that shows directory
structure. Strips remote path prefix to show relative paths only.
Folders shown in bold with trailing /, sorted dirs-first.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Select a snapshot and click Browse Files to see all files in that
snapshot on the remote. Also adds 'gniza snapshots browse' CLI command.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace `is Select.BLANK` / `is not Select.BLANK` with isinstance
checks, as the sentinel identity varies across Textual versions.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>