Releases: unbound-app/vbound
Releases · unbound-app/vbound
Release list
1.0.0
Added
- Context-aware macOS toolbar actions for the two workspaces: Discord, Tweak,
Addons, Mount, and Settings remain one click away in Logs, while Shell exposes
Interrupt, Copy, Clear, Export, and Settings. - Floating "Jump to Latest" controls inside the log and shell canvases when
browsing older output.
Changed
- Redesigned the main window around a fixed 720×560 layout with a compact
icon-only Logs/Shell switch, native segmented source tabs, clearer log contrast,
and dedicated labeled action pills. - Reworked the Shell workspace for automatic connection, left-aligned terminal
output, a compact status bar, and workspace-specific controls. - Ordered log filters as Debug, Info, and Error and restored the custom Unbound,
React Native, and Discord artwork throughout the interface. - Optimized addon deployment by replacing repeated remote metadata probes with a
single scan before parallel deployment.
Fixed
- Finder mounting no longer hangs while selecting the wrong usbmux device or
waiting indefinitely for SSHFS, and now reports forwarding and mount failures. - Shell authentication and automatic reconnection no longer overlap or discard
useful scrollback after a transient failure. - Clearing the shell also resets its ANSI parser, preventing stale formatting
from leaking into later output. - The command palette now supports complete keyboard navigation, activation, and
dismissal while its search field is focused.
0.15.0
Added
- A first-run setup checklist verifying
vphone-cli,pymobiledevice3,sshpass,
andsshfsare all reachable, shown once on first launch and reopenable anytime
from the app menu's "Show Setup Checklist…". - A command palette (⇧⌘P or Actions → Command Palette…) listing every primary
action — Boot, Build Tweak/Addons, Stream, Shell, Discord, Mount, Settings,
diagnostics — searchable and keyboard-navigable. - A global hotkey (⌥⌘V, off by default) to show/hide the vbound window regardless
of which app is focused, toggleable in Settings → Automation. - Addon deployment now uploads and deploys every plugin concurrently instead of one
at a time, and a partial failure no longer aborts the whole batch — whatever
didn't make it can be retried individually via the new "Retry" action on the
failure toast without rebuilding everything that already succeeded. - Build Addons joins Build Tweak in the Actions menu (⇧⌘I) — previously only
reachable from the status-strip button. - The Tweak/Addons buttons' tooltips now show the outcome and relative time of the
last build ("Last build: ✓ 2m ago"), and a failed build's toast gets a "Save
Log…" action to write the full captured output to a file. - The Tweak build's progress bar no longer pins at 100% for a long tail when the
file-count estimate undershoots the real step count — it now grows the estimate
on the fly and soft-caps the displayed fraction until the build actually finishes. - A background notification when a build finishes while vbound isn't the frontmost
app, and a Settings toggle (Advanced) to turn build sounds/notifications off
independently of the system's own sound settings. - The log filter can switch to regex matching (via the new "⋯" menu in the log
toolbar), and log rows can show relative ("5s"/"2m") timestamps instead of
absolute ones. - Log lines can be bookmarked from their right-click menu and jumped back to from
the "⋯" menu's Bookmarks submenu; bookmarked rows get a colored source column. - Visible/filtered logs can be saved straight to a file, not just copied to the
clipboard. - A "Test Connection" button next to the device password field in Settings, and a
"Copy Diagnostics" action (versions, resolved paths, tool presence, device state)
for bug reports. - A failed Finder mount now surfaces the actual
sshfserror (via a tooltip and a
small red indicator on the mount button) instead of failing silently back to the
unmounted state with no explanation. - An Accent Color picker in Settings → General, with a small set of choices beyond
just following the system accent. - "What's New…" in the app menu, linking to the GitHub Releases page for past
release notes outside the active update-check flow.
0.14.1
Added
- The Finder mount now has root-level file access, not just
mobile's. sshfs
authenticates asmobile(root SSH login is refused outright on vphone), which
previously meant root-owned paths like.fseventsdanddirs_cleanershowed up
empty — confirmed this wasn't mount-specific: plain SSH asmobilegets the same
Permission denied. vbound now grantsmobilepasswordlesssudofor just the
device'ssftp-serverbinary and routes the mount's remote SFTP process through
sudo, matching the trust boundary the Tweak/Addons actions already use for
sudo dpkg/killall.
0.14.0
Fixed
- The Finder mount now actually works, end to end, verified against a live device.
It targets macFUSE +gromgit/fuse/sshfs-macinstead of FUSE-T, which has an open,
unfixed upstream bug (macos-fuse-t/fuse-t#63)
that breaks directory listings outright. Separately, sshfs with-o reconnectruns
in the foreground as the FUSE server for as long as the mount is alive rather than
daemonizing — vbound was awaiting its exit to detect mount success, which hung
forever and left the Mount button stuck showing "Mounting…" even though the mount
had actually succeeded. It's now tracked as a persistent process (like the shell/log
stream connections) and mount success is polled againstmountoutput instead.
0.13.3
Fixed
- Every status-strip button (Boot/Stop, Discord, Tweak, Addons, Settings) showed the
window's default keyboard-focus ring whenever vbound became the key window, not just
the Mount/Finder button — all of them are now excluded from keyboard focus, matching
the fix already applied there.
0.13.2
Changed
- Addon deployment is back to always using
scp+ SSH, regardless of whether vphone is
mounted. The mounted copy still moves the same bytes over the same SFTP transport, so
it wasn't a meaningful speedup — not worth coupling the automated deploy pipeline to
FUSE's reliability for a marginal (if any) gain. The Finder mount stays as a standalone
convenience for manually browsing/dragging files.
Fixed
- Unmounting a genuinely-attached FUSE-T mount didn't reliably respond to plain
umount
(confirmed directly: it can report success or "not mounted" whilemountstill lists
the entry). Unmount now falls back todiskutil unmount forcewhen the mount is still
present afterward. - The Mount/Finder button showed the window's default keyboard-focus ring whenever
vbound became the key window, making the folder glyph hard to see.
0.13.1
Fixed
- The Finder-mount feature silently no-opped:
gromgit/fuse/sshfs-mac, the more
commonly recommended sshfs package, is built against classic macFUSE/libfuse headers
and isn't actually compatible with FUSE-T — it exits successfully without ever
attaching the mount, leaving~/vphoneempty and making Unmount look like it does
nothing (there was never anything mounted to unmount). vbound now looks specifically
for FUSE-T's own sshfs build at/usr/local/bin/sshfs
(macos-fuse-t/homebrew-cask/fuse-t-sshfs) and verifies againstmountoutput
rather than trusting sshfs's exit code, so a broken mount can't be reported as
successful again. - The
~/vphonemount point's custom icon is now the standard folder glyph with a
small phone badge, not a bare phone icon replacing the folder shape.
0.13.0
Added
- vphone can now be mounted in Finder over SSHFS. A folder icon next to the
status indicator mounts it at~/vphone(requires
FUSE-T andgromgit/fuse/sshfs-mac, checked
automatically); click again to open it in Finder, right-click to unmount.
The mount is torn down automatically on shutdown and app quit.
Changed
- When vphone is mounted, the Addons action deploys by copying straight into
Discord's container on the mounted volume instead ofscp-ing to a staging
path and moving it into place over SSH.
0.12.1
Fixed
- Starting an addon build turned the Tweak button into the Cancel button
instead of the Addons button that was actually clicked, since both build
pipelines shared one running-state flag. The Tweak and Addons buttons now
each track their own build target, so only the button that started a build
turns into its Cancel control.
0.12.0
Added
- Plugin deployment: vbound builds every plugin in the configured workspace,
replaces each plugin's deployeddist/payload on vphone, and relaunches
Discord. The Discord data-container UUID is discovered on-device, so it
remains correct across installs. - An Addon Workspace folder picker in Settings.
Changed
- The status-strip controls are now labelled Discord, Tweak, and Addons.
Fixed
- Plugin builds now include Bun's standard
~/.bun/binlocation in vbound's
process environment, allowing the Addons action to findbunxwhen the app
is launched outside a shell. - Addon deployment no longer relies on nested remote-shell quoting and skips
local SSH-key offers before authenticating with the configured device password.