Skip to content

Releases: defyus/mosaic

Mosaic 0.1.3

12 May 14:45
3a1296a

Choose a tag to compare

[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-C reaches the shell as SIGINT, and other
    control sequences (Ctrl-D, Ctrl-Z, Ctrl-\, …) behave correctly. The
    key event is built with the right consumed_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

09 May 16:33

Choose a tag to compare

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
    any provider/model notation Pi understands, including the
    :thinking suffix (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 yes to
      ~/.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-keychain per 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.
  • 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@host once in Terminal to inspect), unreachable (gray,
    network/VPN issue).

Changed

  • First-connect SSH no longer prompts for yes/no in the pane.
    Both the session-discovery probe and interactive pane spawns now use
    StrictHostKeyChecking=accept-new, which silently adds new hosts
    to known_hosts on 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-models writes 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

  1. Download Mosaic_0.1.2_universal.dmg below.
  2. Open the DMG, drag Mosaic into Applications (replace the
    existing copy if you have v0.1.1 or v0.1.0).
  3. 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

08 May 19:15

Choose a tag to compare

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
    /Applications with this version's .app (no settings or session
    data is lost).

Install

  1. Download Mosaic_0.1.1_universal.dmg below.
  2. Open the DMG, drag Mosaic into Applications (replace the
    existing copy if you have v0.1.0).
  3. 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.