v1.2: overwrite confirm, transfer speed/ETA, settings + themes, fused macOS titlebar
- Overwrite confirmation: name-collision detection before enqueue; dialog shows source vs destination (size, mtime, 'newer' badge) with per-item Skip/Replace and batch Skip all / Replace all; type mismatches auto-skip with a toast; cancel aborts the whole operation - Transfer speed + ETA: UI computes smoothed bytes/sec from progress deltas (callback bus makes deltas meaningful); shown in the expanded queue rows and the status-bar summary; unit follows the speed-unit setting - Settings: bun-side SettingsStore (settings.json, 0600, atomic) + get/save RPC; SettingsService; gear popover on the tab row (theme segmented control, speed unit); persisted across restarts - Light theme: data-theme on <html> drives token overrides; absent = follow OS - macOS fused titlebar: hiddenInset + trafficLightOffset, tab row becomes the draggable titlebar (app-region drag/no-drag classes); other platforms keep a separate titlebar (gated by a platform value injected via window preload) - README: known-issues note for the upstream Bun/Electrobun FFI crash Verified: tsc + ui build clean; SettingsStore roundtrip + 0600 headless; app boots and the UI fetches settings over RPC at startup. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -17,7 +17,14 @@ remote server over SSH/SFTP, so you can move files **local↔remote**,
|
||||
sessions stay connected and transfers keep running in background tabs.
|
||||
- Per-panel action toolbar with a direction-explicit copy button, plus a
|
||||
VSCode-style status bar showing live transfer progress (click to expand the
|
||||
transfer queue).
|
||||
transfer queue with per-file speed and ETA).
|
||||
- **Overwrite confirmation** on name collisions, with a source-vs-destination
|
||||
comparison (size, modified date, which is newer) and batch replace-all /
|
||||
skip-all.
|
||||
- **Settings** (gear, top-right): light / dark / system theme and speed units
|
||||
(MB/s or Mbps), persisted across restarts.
|
||||
- On macOS the tab bar is fused with the window titlebar; other platforms keep
|
||||
a standard titlebar.
|
||||
- Browse, sort (name/size/modified, folders first), keyboard navigation.
|
||||
- Create folder / file, rename, delete (recursive), change permissions (chmod).
|
||||
- Upload, download, and remote→remote copy — files **and** whole folders —
|
||||
@@ -129,6 +136,17 @@ Saved connections live in a plain JSON file in the OS app-data directory
|
||||
|
||||
(On Macs, function keys may need `fn` — every action also has a toolbar button.)
|
||||
|
||||
## Known issues
|
||||
|
||||
- **Rare native crash under load.** A long-running session (multiple remote
|
||||
connections, extended uptime) can hit a Bun panic — a segfault inside Bun
|
||||
1.3.13's FFI thread-safe callbacks executing Electrobun's native→worker
|
||||
bridge (`FFI_Callback_threadsafe_call` → `web_worker.spin` in the decoded
|
||||
crash report). This is an upstream Bun × Electrobun bug, not app code; a
|
||||
restart recovers cleanly and in-flight work isn't corrupted. Expected to
|
||||
resolve when Electrobun bumps its pinned Bun (currently 1.3.13; 1.3.14+
|
||||
available). Bun's own crash reporter link is printed to the console on panic.
|
||||
|
||||
## Not in v1
|
||||
|
||||
Drag-and-drop, file preview/edit, transfer resume, symlink following
|
||||
|
||||
Reference in New Issue
Block a user