Releases: defyus/mosaic
Releases · defyus/mosaic
Mosaic 0.1.3
[0.1.3] - 2026-05-12
Added
- Pane drag & rearrange — grab a pane by its header and drag it to
reorganize the workspace layout. Drop targets split or swap panes within the
tile tree, so you can recompose a workspace without tearing it down.
Changed
- Shell panes now ignore the double-Ctrl-C "close pane" shortcut. Both
Ctrl-Cs are forwarded to the running process, so hammering Ctrl-C kills a
stubborn command instead of closing the pane. Provider/agent sessions still
close on a double Ctrl-C. - Vendored libghostty: the
Last login: …banner is now always suppressed
when a new shell pane starts.
Fixed
- Control-key combinations in shell panes are now encoded the way Ghostty's
native macOS app does:Ctrl-Creaches the shell asSIGINT, and other
control sequences (Ctrl-D,Ctrl-Z,Ctrl-\, …) behave correctly. The
key event is built with the rightconsumed_mods, text payload, and
unshifted codepoint instead of the previous private-use-area filter. - The session-count badge on each workspace in the rail no longer counts
archived sessions — those live under the Sessions panel's "Archived"
section.
Mosaic 0.1.2
Mosaic v0.1.2
Added
- Pi (pi.dev) is now a supported provider, joining Claude Code,
OpenCode, Gemini, and Codex. Detection (pi --version), spawn,
resume by session id, and full session listing — local and remote
over SSH. Pi sits between OpenCode and Gemini in the new-session
dropup, AddWorkspace cards, and Settings → Providers. - Live model picker for Pi in Settings → Providers, populated from
pi --list-models(~70+ models). Type to filter; the field accepts
anyprovider/modelnotation Pi understands, including the
:thinkingsuffix (e.g.sonnet:high). - Keychain-SSH setup helper for remote workspaces. When a remote
workspace can't authenticate, an inline banner appears above the
session list with a "Set up Keychain SSH →" button. The guided
modal:- Idempotently appends
AddKeysToAgent yes / UseKeychain yesto
~/.ssh/config(skips if already configured). - Detects private keys under
~/.ssh/and lets you pick which to
add. Already-loaded keys are flagged so you don't re-add them. - Runs
ssh-add --apple-use-keychainper selected key. macOS shows
its native passphrase dialog; the passphrase is stored in
Keychain. From then on, ssh (interactive panes AND background
polls) unlocks your key automatically — including across reboots. - Mosaic never sees or stores your passphrases. Apple's Keychain
holds them, ssh-agent retrieves them.
- Idempotently appends
- Remote-host status banners: when a remote workspace's SSH probe
fails, the panel surfaces what kind of failure it is —needs auth
(orange, fixable via Keychain SSH),host key changed(red, run
ssh user@hostonce in Terminal to inspect),unreachable(gray,
network/VPN issue).
Changed
- First-connect SSH no longer prompts for
yes/noin the pane.
Both the session-discovery probe and interactive pane spawns now use
StrictHostKeyChecking=accept-new, which silently adds new hosts
toknown_hostson first connect. Changed keys for already-known
hosts still fail loudly so the host-key banner can warn you. - Settings → About version badge now reads
0.1.2.
Fixed
- Pi's
--list-modelswrites its table to stderr when stdout is
piped (it auto-detects TTY vs. pipe and routes "human output"
away from a captured stdout). The introspection parser now reads
whichever channel actually has the table — fixes "introspection
failed" on the Pi row in Settings → Providers.
Notes
- No data migration required. v0.1.1 → v0.1.2 carries over all
workspaces, tab state, sessions, and settings. - Universal binary as before — runs on Apple Silicon and Intel Macs
from a single DMG.
Install
- Download
Mosaic_0.1.2_universal.dmgbelow. - Open the DMG, drag Mosaic into Applications (replace the
existing copy if you have v0.1.1 or v0.1.0). - Launch normally — the macOS Gatekeeper trust granted to a previous
version carries over.
Bug reports & feature requests
The Issues tab is the right place for both.
Mosaic 0.1.1
Mosaic v0.1.1 — bug fix
Fixed
- Restored multi-pane tabs lose their session pane on app restart.
When a tab had a provider session pane (Claude / OpenCode / Gemini /
Codex) split with one or more shell panes, restarting the app would
bring the tab back with only the shells. The session pane was being
spawned during state restore, then immediately torn down by the
exit-poller because libghostty hadn't finished attaching the child
process yet. Added a 2s grace period to the poller so freshly-spawned
panes survive the startup window.
Notes
- No changes to provider integrations, layout persistence, or UI
behavior — purely an app-startup robustness fix. - Existing v0.1.0 installs can update by replacing the app in
/Applicationswith this version's.app(no settings or session
data is lost).
Install
- Download
Mosaic_0.1.1_universal.dmgbelow. - Open the DMG, drag Mosaic into Applications (replace the
existing copy if you have v0.1.0). - Launch normally — the macOS Gatekeeper trust you granted to v0.1.0
carries over to this update; you shouldn't see the warning again.
Bug reports & feature requests
The Issues tab is the right place for both.