Skip to content

Codemux v0.1.22

Choose a tag to compare

@github-actions github-actions released this 15 Apr 20:28

What's New

This is the first release that bundles the post-v0.1.21 Windows hardening pass. Every Windows user on v0.1.21 should auto-update to pick up the visible-window-flash fix, the PowerShell default shell, and the scrollback-loss fix.

Windows Fixes

  • portable-pty forked to add STARTF_USESHOWWINDOW + SW_HIDE (and CREATE_NO_WINDOW for non-pseudoconsole spawns). Kills the visible cmd.exe console window that flashed on every PTY spawn before the pseudoconsole attached. Now pinned to Zeus-Deus/portable-pty branch codemux-0.8.1-no-window at commit a5022fec.
  • PowerShell is now the default Windows shell. default_shell() resolves pwsh.exe (PowerShell 7+) → powershell.exe (Windows PowerShell 5.1, pre-installed on every supported Windows version) → %COMSPEC% → literal cmd.exe. The earlier cmd.exe default broke agent context injection because POSIX $VAR shell expansion isn't supported by cmd.exe — Claude / Codex / Pi / Gemini wrappers were receiving the literal string $CODEMUX_AGENT_CONTEXT instead of the expanded workspace context.
  • Agent context injection learned PowerShell env-var syntax. Wrappers now emit $env:CODEMUX_AGENT_CONTEXT on Windows and $CODEMUX_AGENT_CONTEXT on Unix. Affects Claude, Codex, Pi, and Gemini presets. Gemini's pipeline writes its system-prompt temp file via PowerShell Set-Content -NoNewline and sets $env:GEMINI_SYSTEM_MD inline.
  • Editor detection rewritten for Windows. find_editors() no longer shells out to a non-existent which binary. Now uses the which::which() Rust crate, plus a #[cfg(windows)] fallback that probes %LOCALAPPDATA%\Programs, %ProgramFiles%, and %ProgramFiles(x86)% for VS Code, Cursor, VSCodium, and Zed install paths. JetBrains IDEs stay PATH-only (Toolbox shims live on PATH). Fixes the empty IDE picker on Windows.
  • Window controls on full-screen views. Login screen, empty state, settings view, and new-project screen now expose minimize/maximize/close buttons via the new <WindowChrome /> component. Previously these screens had no way to control the window on Windows because Codemux runs with decorations: false. Linux + Hyprland was unaffected because the WM decorates the window itself.
  • Scrollback flush hardened on Windows. The close handler now waits 10 seconds (was 3) for the frontend to ack serialize-terminal-buffers, and a Windows-only backend backstop drains any in-memory ScrollbackCache entries that the frontend didn't manage to persist before the timeout. Fixes silent scrollback truncation where slower Tauri IPC + slower xterm serialization for many panes routinely exceeded the old 3-second budget.
  • Windows port detection now filters kernel processes. Added WINDOWS_SYSTEM_PROCESS_NAMES filter (svchost.exe, System, lsass.exe, csrss.exe, dwm.exe, RuntimeBroker.exe, etc.) so the sidebar Ports section no longer surfaces 16+ kernel-owned ports that Linux's /proc/*/fd/ permission filter naturally hides.
  • Preset failures now surface as a toast. Previously caught with console.error and silently swallowed. Now routed through the sonner toast wrapper as toast.error("Preset Name: {error}") for an 8-second bottom-right notification.
  • Windows preset commands use \r line terminator (was \n) so PowerShell actually executes the typed-in command on submit.
  • Orphan cleanup guarded so it doesn't accidentally delete scrollback for workspaces that exist but haven't been activated yet on the current run.
  • .local\bin added to PATH on Windows as a fallback for when Claude Code installed there but didn't update PATH (matches the Linux fallback behavior).
  • Window control permissions (core:window:allow-minimize / allow-toggle-maximize / allow-close) added to the default capability set so the new window controls actually work.

Documentation

  • Docs reindex pass: updated docs/core/STATUS.md, docs/core/PLAN.md, docs/plans/windows-support.md, docs/features/terminal.md, docs/features/ide-integration.md, docs/features/session-persistence.md, docs/features/ports.md, docs/features/presets.md, and docs/features/settings-sync.md to reflect the post-v0.1.21 reality. Test counts updated to 607 Rust + 303 frontend.

Install

AppImage (any Linux distro)

chmod +x codemux_0.1.22_amd64.AppImage
./codemux_0.1.22_amd64.AppImage

Arch Linux (AUR)

yay -S codemux-bin

Debian/Ubuntu

sudo dpkg -i codemux_0.1.22_amd64.deb

Windows

Download Codemux_0.1.22_x64-setup.exe from the release assets and run the installer.

Note: The installer is not code-signed (Authenticode) yet. Windows SmartScreen may show a warning — click More info → Run anyway to proceed. This is separate from the Ed25519 updater signature, which IS configured. Code signing will be resolved in a future release once a certificate is acquired.

Existing users: Both Linux (AppImage) and Windows users will be prompted to update automatically via the Tauri auto-updater. No manual download required — the updater handles it on next app launch.