Changelog¶
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, this project adheres to Semantic Versioning, commits follow Conventional Commits, and this changelog is generated by Structured Changelog.
Unreleased¶
v0.5.0 - 2026-08-08¶
Highlights¶
- PTY autocomplete wrapper detection - warns when a session is running behind a figterm-style shim (Kiro CLI, Fig, Amazon Q) known to freeze terminal panes
- Session error alert UI - SessionManager errors now surface in the app instead of failing silently
- Fixed a startup hang that could leave the app stuck on the loading screen indefinitely on machines with many running processes
- Smoother, double-dispatch-free trackpad scrolling, and SwiftTerm upgraded to the tagged v1.16.0 release
- Session identity is now stable across the 5s refresh cycle - the session picker no longer loses track of the active session
Added¶
- Detect figterm-style PTY autocomplete wrappers (Kiro CLI, Fig, Amazon Q) in tmux panes and warn with a dismissible banner plus a per-session badge showing the fix command (
1b5c3e5) - Error alert UI surfacing SessionManager errors in the app instead of failing silently (
031432a)
Changed¶
- Extracted TmuxEnvironment for shared tmux path discovery (
f987c68)
Fixed¶
- Fixed a startup hang where SessionManager.refresh() could deadlock indefinitely once a command's output exceeded the ~64KB pipe buffer, leaving the app stuck on "Loading..." (
fbfa656) - Session identity is now derived deterministically from the tmux session name instead of a new random UUID every refresh, fixing SwiftUI view churn and a session-picker checkmark that could lose track of the active session (
8a06173) - Added @MainActor thread safety to InputMonitor (
587ea1d) - Fixed terminal scrollback getting stuck when the user types while scrolled up (
a5afebe)
Performance¶
- Removed the double-dispatched scroll path (an app-wide NSEvent monitor plus a custom wheel handler) that processed every trackpad/mouse wheel event twice; SwiftTerm's built-in scrollWheel now handles mouse reporting, alternate-screen conversion, and native scrollback directly (
6ec3de2)
Documentation¶
- Added the desktop scroll & rendering performance roadmap (INIT-PLEXUSONEAPP-001) tracking Phase 1-3 work (
e5cacdc)
Build¶
- Pinned SwiftTerm to a fixed revision instead of tracking branch main, so its performance characteristics can't shift under us between builds (
e08c519) - Upgraded SwiftTerm from a pinned main-branch commit to the tagged v1.16.0 release, picking up upstream's own fractional trackpad scroll-delta accumulation and several Metal renderer stability fixes (
8b29091) - Bumped github.com/gorilla/websocket from 1.5.1 to 1.5.3 in services/tuiparser (
9454e58) - Bumped github.com/creack/pty from 1.1.21 to 1.1.24 in services/tuiparser (
edab8a8) - Bumped flutter_lints from 4.0.0 to 6.0.0 in apps/flutter (
328ace8)
Infrastructure¶
- Added Dependabot config for weekly dependency-update PRs across Swift (desktop, iOS), pub (Flutter), Go modules (tuiparser), and GitHub Actions (
62e55b0) - Bumped actions/checkout from 4 to 7 (
eb524a9) - Bumped actions/upload-artifact from 4 to 7 (
1ea5b17) - Bumped actions/download-artifact from 4 to 8 (
482d5a1) - Bumped swift-actions/setup-swift from 2 to 3 (
83efd6d) - Bumped softprops/action-gh-release from 2 to 3 (
f9a18a1)
v0.4.1 - 2026-04-06¶
Highlights¶
- Session switching fixes - dropdown, pop-out, and grid resize now correctly change terminal sessions
- App visibility fix - app now appears in Cmd+Tab and stays running when switching focus
Fixed¶
- Session dropdown in pane header now correctly switches the attached tmux session (
94502dc) - Pop-out windows now show the correct session instead of the first pane's session (
94502dc) - Grid resize no longer causes mismatch between header and terminal session (
94502dc) - App now appears in Cmd+Tab and Dock when running as executable (
ab66238) - App no longer terminates when losing focus (
ab66238)
Documentation¶
- Desktop app development guide with build and run instructions (
7398753)
v0.4.0 - 2026-03-30¶
Highlights¶
- Input Detection - Real-time detection of AI assistant input prompts using AssistantKit pattern matching
- Visual Focus Indicator - Clear blue border and shadow showing which pane has keyboard focus
- App Icon - PlexusOne Desktop now has a proper macOS app icon
- Release Pipeline - GitHub Actions workflow for building DMG installers
Added¶
- AssistantKit integration for input detection patterns (
ff17f21) - Input detection UI with indicator overlay (
2f5f353) - Edit menu with Select All command (
b23fc95) - App icon from PlexusOne branding (
c433ba2) - Visual pane focus indicator with blue border and shadow (
50477d7) - GitHub Actions release workflow for DMG builds (
f06f359)
Fixed¶
- Session restore reliability with async refresh (
6737c98)
Documentation¶
- Feature roadmap for AI assistant tools (
b190b92) - CLAUDE.md project context (
64a28e9) - Enhanced CLAUDE.md with prerequisites and conventions (
6a8a69c)
Tests¶
- Comprehensive unit tests for SessionManager, WindowStateManager, AppState (
dc36788) - Mock implementations for dependency injection testing (
e0c37ae)
v0.3.0 - 2026-03-29¶
Highlights¶
- Multi-window support - open multiple windows with independent grid layouts sharing the same session pool
- Pop-out sessions - expand any session to its own dedicated window
- Renamed from Nexus to PlexusOne Desktop
Added¶
- Multi-window support with independent grid layouts per window (
ff8d164) - Pop-out session feature to open sessions in dedicated 1×1 windows (
e50668d) - AppState singleton for shared state across windows (
b04e7ea) - WindowStateManager for multi-window persistence (
8ccbe27) - Multi-window state models (WindowConfig, WindowFrame, MultiWindowState) (
0232b80)
Changed¶
- Renamed from Nexus to PlexusOne Desktop (
1b77380) - State file renamed from nexus_state.json to state.json (
32cbe48)
Documentation¶
- Multi-window support documentation (
d4fc619) - Pop-out session documentation (
9f9ee8a) - Updated all docs to PlexusOne Desktop branding (
f91b9f0)
Tests¶
- Unit tests for multi-window state models and WindowStateManager (
3250258)
v0.2.0 - 2026-03-28¶
Highlights¶
- Terminal trackpad/mouse wheel scrolling now works with tmux and other mouse-aware applications
- MkDocs documentation site for project documentation
Added¶
- Mouse wheel scrolling for terminal applications (tmux, vim, less) when mouse mode is enabled (
45c6673) - MkDocs documentation site with Material theme (
4bc02c7) - Project tasks tracking in TASKS.md (
e69ec03)
Fixed¶
- App activation on launch - dock clicks and Cmd+Tab now work correctly (
9639d59)
Documentation¶
- Scrollbar research and implementation design documents (
22cf6cb) - AgentPair integration design document (
5308124) - Remove references to internal ideation documents (
4876460)
Build¶
- Update SwiftTerm to main branch for NSScroller Auto Layout fix (
1594412) - Add build artifacts to gitignore (
f8c52fc)
v0.1.0 - 2026-03-21¶
Highlights¶
- Initial release of PlexusOne Desktop - a multi-platform terminal client for AI agent sessions
- macOS desktop app with SwiftUI, tmux session management, and multi-pane grid layout
- Flutter mobile companion app with WebSocket connectivity
- TUI parser backend service for terminal output parsing and WebSocket bridging
Added¶
- macOS desktop app with SwiftUI and SwiftTerm integration (
54f907b) - Terminal controller with SwiftTerm for tmux session attachment (
ee650e0) - Grid layout system with configurable pane arrangements (
ca82930) - Session manager service for tmux session lifecycle (
d676f25) - Session state persistence across app restarts (
4c4bfb0) - New session sheet and settings view (
2000d08) - Status bar with session picker (
6e65bae) - App bundle with PlexusOne icon (
7a20327) - Flutter mobile app with home screen and terminal view (
511a30e) - WebSocket service for mobile-to-backend connectivity (
d0b4040) - Terminal dark theme for mobile (
d25d4f7) - Prompt bar with quick actions (
e5dfda3) - Session tabs widget for mobile navigation (
8c9938b) - Settings screen for mobile configuration (
7cd827f) - TUI parser Go module with WebSocket server (
b481232) - Tmux session manager for backend (
26a8afb) - WebSocket protocol messages for client-server communication (
dc40003) - Debug console for TUI parser development (
61f5010)
Documentation¶
- Product requirements document (
8ff6818) - Technical requirements document (
8b716bb) - Mobile companion app design (
351501f) - Voice note feature design (
7a0d44e) - AgentSentinel integration design (
d9903bb) - Implementation tasks (
f7b6715) - Project README with architecture diagram (
e84e830)
Tests¶
- Session manager unit tests (
d6f934d)