Releases: coollabsio/jean
Releases · coollabsio/jean
Release list
v0.1.48
Features
- Added a terminal-first chat session mode with full-screen terminal sessions, font/rendering preferences, and better session cleanup.
- Added native Claude and Codex CLI session discovery, import, and resume support.
- Added shared context mentions for GitHub, Linear, security, and advisory context files, including previews in chat prompts.
- Added Codex run recovery, running-session preservation, and goal tracking for long-running work.
- Added backend-aware model selection with favorites, fast model tiers, and updated GPT defaults across chat, reviews, and preferences.
- Added compact chat rendering, mobile settings controls, and image-only attachment prompt handling.
- Added inline file diffs, file edit modals, and a conflict resolution dialog for assisted git conflict handling.
- Added CodeRabbit CLI review integration, managed install/update/uninstall flows, and PR review triggering from review workflows.
- Added canvas worktree filter tabs for manual, issue, PR, and security worktrees.
- Added keyboard shortcuts for diff tabs and canvas filter navigation.
- Added browser-mode support for serving default project avatars.
Fixes
- Fixed Codex recovery so resumed notifications were buffered correctly and active empty snapshots were treated as crashed instead of completed.
- Fixed transient WebSocket disconnects so reconnect noise no longer showed user-facing error toasts.
- Fixed split multi-byte UTF-8 handling in the PTY reader.
- Fixed GitHub PR review comments so outdated inline threads were hidden using GitHub review thread state.
- Fixed CodeRabbit CLI source selection and improved error messages for JSON and limit failures.
- Fixed review modal behavior by removing an unnecessary CodeRabbit settings shortcut.
- Fixed mobile menu states when unavailable choices should not show chevrons.
- Fixed canvas filter tab navigation guards and tab corner styling.
- Fixed plan display copy-button alignment.
Improvements
- Improved web client freshness checks with build metadata and stale-client detection.
- Improved web access terminal reliability with app-level websocket heartbeats, replay coverage, idle flushing, and browser sound preferences.
- Improved preference navigation by grouping sidebar items into clearer sections.
- Improved chat duration formatting to use seconds or
mm:ss. - Improved worktree toolbar actions by consolidating editor, terminal, finder, GitHub, and PR/security handlers.
- Improved AI backend documentation with a checklist for adding future backends.
- Improved local build ergonomics with a faster Cargo profile and build performance documentation.
What's Changed
- Format chat durations as seconds or mm:ss by @grallc in #353
- fix(terminal): handle split multi-byte UTF-8 codepoints in PTY reader by @montagnoli in #355
- feat(coderabbit): add CLI review integration by @andrasbacsai in #365
- Add default project avatars by @ershisan99 in #350
New Contributors
- @ershisan99 made their first contribution in #350
Full Changelog: v0.1.47...v0.1.48
v0.1.47
Features
- Embedded Browser — Added native in-app browser with multi-tab support, navigation toolbar, and flexible layouts (side pane, modal drawer, bottom panel); state persisted per worktree
- Terminal Reconnection — Added terminal output replay on reconnect so no output is lost; WebSocket heartbeat (ping/idle-drop) detects dead connections;
[Reconnecting...]/[Reconnected]banners shown in all terminal instances - Merge GitHub PR — Added merge PR action from toolbar that automatically archives/deletes the associated worktree after merging
- Claude Opus 4.7 1M — Added Claude Opus 4.7 with 1M context window as a selectable model
- Documentation First System Prompt — Added rule to default global system prompt requiring web search for current docs before using external libraries/SDKs/APIs
Fixes
- Fixed GitHub fetch limits for workflow runs (30→100), issues (100→1000), and PRs (100→1000) to reduce missed results on large repos
- Fixed crashes when session array is undefined by guarding all
.sessions.accesses with optional chaining - Fixed
ErrorBoundaryto auto-reset on identity changes (e.g. switching worktree tabs) - Fixed plan display trigger padding, copy button position, and chat modal title truncation on mobile
- Fixed toaster offset to correctly account for open browser panes
- Fixed
localhost/127.0.0.1URLs to usehttp://in browser toolbar - Fixed native Windows scrollbars replaced with app's custom scrollbar style
- Fixed interactive shadcn primitives missing
cursor-pointer - Replaced native tooltip with shadcn
Tooltipon chat input menu button
Improvements
- Added copy-to-clipboard button on Plan file display
- Renamed "Review Comments" → "PR Comments" in mobile menu; now always visible, disabled when no open PR
- Bottom dock layout now activates when either terminal or browser pane is docked at bottom
- Browser surface state sanitized on hydration to resolve mutually-exclusive pane conflicts
- Plan approval state now correctly persists after
ExitPlanMode
What's Changed
- fix(ui): replace native tooltip with shadcn Tooltip on chat input men… by @jorgefl8 in #343
- fix(ui): replace native Windows scrollbars with the app's custom style by @jorgefl8 in #342
- fix(ui): apply cursor-pointer to interactive shadcn primitives by @jorgefl8 in #344
- feat(models): add Claude Opus 4.7 1M context window variant by @andrasbacsai in #346
- fix(github): increase fetch limits for actions, issues, and PRs by @andrasbacsai in #348
- fix(errors): prevent UI crash on unhandled rejections and null session data by @andrasbacsai in #349
New Contributors
Full Changelog: v0.1.46...v0.1.47
v0.1.46
Features
- Terminal now available in web/browser mode — removed native-app restriction; start, write, resize, and stop terminal sessions from any connection
- Cursor backend: system prompt & linked projects support — injected system instructions into Cursor messages and passed linked project paths when executing chats
Fixes
- Fixed duplicate assistant bubble appearing when snapshot hydration fired mid-stream
- Fixed
execute_runkeybinding firing in web mode where no backend exists - Fixed dropdown separator rendering when neither native app nor worktree branch is present
Improvements
- Moved Magic action from dock menu to mobile toolbar (now triggered via wand icon)
- Added
aria-labelattributes to chat toolbar buttons for accessibility - Introduced
emit_all_ownedin terminal event emission to avoid redundant payload clones on hot path
What's Changed
New Contributors
Full Changelog: v0.1.45...v0.1.46
v0.1.45
Features
- ScheduleWakeup scheduler: Claude can now schedule delayed prompt firing; wakeups persist across restarts and drain automatically every 10s
- Monitor tool streaming: Real-time event log for Monitor tool calls with live countdown indicators for pending wakeups, persisted across session reloads
- WebSocket reconnect overlay: Hides stale cached data during WS reconnects in web mode; loading toast dismissed once socket is back
- Worktree branch/name control: Added ability to set both branch name and worktree name when creating a worktree
- Responsive dock burger button: Burger button now visible on mobile via ChatToolbar, hidden at desktop breakpoint
- GPT-5.5 model support: Added
gpt-5.5to Codex model picker
Fixes
- Worktree icon shrink: Prevented flex container from squishing icons in QuickActionsTab
- Branch name validation: Blocked worktree creation on invalid branch names; sanitized slashes/dots/spaces in folder paths to prevent nested directory creation
- Stale wakeup spinners:
list_pending_wakeupscommand now hydrates wakeup store on mount after reload - Browser mode reconnect toast: Removed leftover WS reconnect loading toast that fired incorrectly in browser mode
What's Changed (github)
New Contributors
Full Changelog: v0.1.44...v0.1.45
v0.1.44
Features
- Branch stacking support — track base branch on worktrees to stack sessions on top of other branches or open PRs; surface stacked context in session headers and canvas view
- Web directory browser — non-native (web) users can now browse and select directories when adding projects, initializing new ones, or choosing a clone destination instead of seeing a toast error
- Settings quick-jump search — search bar in preferences header with grouped dropdown results, "/" keyboard shortcut to focus, and highlight animation on jump
- Dock burger menu in chat toolbar — consolidated floating dock menu into chat toolbar; floating dock hides automatically to avoid duplicate UI
Fixes
- Fork PR unpushed count — persisted push remote/branch per worktree so unpushed-commit count uses actual push target instead of
@{upstream}; fixes fork PRs where all commits appeared unpushed (#309 adjacent) - GitHub auth detection — passed
--activeflag togh auth statusto correctly detect the active account when multiple accounts are configured (fixes #309) - Streaming session hydration — opening a running session now rebuilds streaming content blocks from snapshot so in-progress output displays correctly on navigation
- Cancel/undo threshold removed — any assistant output (text, tool call, thinking) now counts as a started response and preserves the message on cancel
- Directory browser mobile layout — dialog fills screen on mobile with scrollable content, monospace path display with break-all, and separate rows for options
- Linux textarea auto-resize — added JS fallback for
field-sizing: contenton WebKitGTK where CSS property is unsupported; max-height bumped to 50vh - Keyboard nav with Radix menus — arrow-key hijacking now skipped when a dropdown menu or select is open
Improvements
- HTTP response compression — added brotli/gzip compression via tower-http; scoped
/api/initto selected project only for faster initial load with lazy loading for other projects - Preferences components — extracted shared
SettingsSectionandPreferencesSearchBarcomponents, eliminating duplication across panes; improved highlight animation with outer glow rings
What's Changed
- feat(worktree): add branch stacking support by @andrasbacsai in #326
- feat(projects): add web-compatible directory browser for project selection by @andrasbacsai in #308
- fix(gh-cli): use --active flag for gh auth status check by @xavieroyj in #317
- fix: auto-resize textarea on WebKitGTK (Linux) by @karimou5 in #311
- feat(setting): Add settings search by @Whiteknight07 in #238
Full Changelog: v0.1.43...v0.1.44
v0.1.43
Features
- Expand tool calls by default — Added preference to auto-expand tool call collapsibles in chat (defaults to collapsed)
- Linux window controls — Added minimize, maximize/restore, and close buttons for Linux desktop app
- Linked project dirs for all backends — Linked project paths now passed to Codex and Opencode backends via system prompt, alongside existing Claude CLI
--add-dirsupport
Fixes
- Session resume after crash/cancel — Session ID now persisted even when CLI exits abnormally, preserving
--resumecontinuity - Terminal freeze — Fixed orphan listener race condition from
listen()registration; terminal now properly wakes on visibility/focus restore
Improvements
- Generalized modal shortcut guard — Replaced per-modal flag checks with a single DOM query covering all current and future Radix modals automatically
- CLI update logic — Extracted shared
cli-updatemodule as single source of truth; fixed stale closure reads in backend selection - Floating dock — Replaced JS-driven conditional sizing with responsive Tailwind classes
What's Changed (Github)
- feat(titlebar): add Linux window controls by @xavieroyj in #322
- fix(terminal): fix freeze after idle and listener disposal race by @andrasbacsai in #324
- feat(preferences): add expand tool calls by default setting by @andrasbacsai in #325
New Contributors
- @xavieroyj made their first contribution in #322
Full Changelog: v0.1.42...v0.1.43
v0.1.42
Features
- Added per-table checklist state persisted across sessions
- Added build/yolo effort level preference overrides alongside existing thinking level overrides
- Added animated streaming indicator on scroll button while messages stream
Fixes
- Fixed scroll anchor flash when loading older messages
- Fixed selection loss in canvas after clearing an active search field
- Fixed PR Description menu item visibility on mobile toolbar (now always shown)
Improvements
- Migrated to full model IDs (e.g.
claude-opus-4-7); legacy"opus"values auto-upgraded on existing installs - Simplified message settings badges to minimal dot-separated text layout
- Extracted shared
MessageSettingsBadgescomponent from duplicated badge rendering logic - Stripped redundant labels from toolbar context badges (Issues, PRs, Linear)
- Hidden connection indicator and usage dropdown on mobile
Full Changelog: v0.1.41...v0.1.42
v0.1.41
Features
- Session message pagination — scroll up to load older message history;
get_sessionaccepts optionallimitfor recent-only loads - Xhigh effort level — added
xhigheffort variant alongside existing levels; updated default model toclaude-opus-4-7 - Plugin skills in slash popover — installed Claude plugin skills now surface as dedicated sections in the
/command popover - Opinionated preferences pane — new preferences section for installing and managing RTK and Caveman plugins with one-click install and status checks
Fixes
- Git stash errors — combined stdout and stderr in stash/stash-pop failure messages; stderr alone missed errors written to stdout
- Session card waiting state — cleared correctly when session transitions to review
- FileContentModal mobile layout — fixed padding, height, and "Open in Editor" gating on small screens
- Markdown task list checkboxes — now use shadcn
Checkboxfor proper theme-aware styling read_file_contentdispatch — renamed arg fromfilePathtopath- PlanFileDisplay — fixed task list item styling
What's Changed
- feat(skills): surface plugin skills in slash popover by @andrasbacsai in #312
Full Changelog: v0.1.40...v0.1.41
v0.1.40
Features
- Added Claude Opus 4.5 as a selectable model option
- Added
jobs-donenotification sound for completed job alerts - Renamed
peon-work-work.mp3asset towork-work.mp3for clarity
Fixes
- Fixed floating action buttons not rendering when a chat session has no messages
- Fixed model and thinking level overrides being incorrectly applied when the configured backend does not match the current session's backend — the session's own model and thinking settings are now used instead
- Removed redundant toast notifications from label apply and color update actions in LabelModal
Full Changelog: v0.1.39...v0.1.40
v0.1.39
Features
- Cursor Agent backend: Added full Cursor Agent support as a first-class backend alongside Claude, Codex, and OpenCode — including model picker integration, execution mode dropdown, and session naming
- Codex skills support: Added
list_codex_skillscommand reading from~/.codex/skills/and exposed it via the slash command popover - AppImage auto-updater: Created and signed
.tar.gzupdater artifacts for Linux so the Tauri updater can discover and verify AppImage updates - Codex crash recovery & resume: Persisted Codex thread and turn IDs per run; in-flight chat state is now correctly restored after reconnects or crashes, with buffered websocket event replay
- Per-mode thinking level overrides: Build and yolo modes can now independently override the thinking level on plan approval, mirroring the existing model and backend override pattern
- Notification sound previews: Added play buttons in settings to preview waiting/review notification sounds; simplified sound options to a single
workworkoption
Fixes
- Git commits from worktree sandboxes: Included git metadata directories in writable roots so worktree repos can commit during Codex turns
- Run start times on reconnect: Preserved accurate run timing state after reconnects or restarts by restoring
sendStartedAtfrom session metadata - GH CLI cache directory: Used
ensure_gh_cli_dirto guarantee the cache directory exists before writing - Chat input width: Widened the input container on
xlscreens for more composer room on larger displays
Improvements
- Default model upgrade: Upgraded the default model for lightweight operations (branch naming, session naming, commit messages, release notes, etc.) from Haiku to Sonnet
- Codex event handling: Added support for
dynamic_tool_callitem lifecycle events and normalized new event type strings (hookPrompt,enteredReviewMode,exitedReviewMode) - Reduced log noise: Downgraded verbose Codex log statements from debug to trace level; added structured prefixes for easier filtering
- Removed stall detection timeout: Replaced
recv_timeout-based stall detection in the Codex event loop with a simple blocking recv, removing fragile 300s timeout logic - Assistant message footer: Displayed model label and execution mode on assistant messages via a small icon footer
What's Changed (Github)
- feat(chat): recover Codex runs across crashes and reconnects by @andrasbacsai in #296
- fix(chat): allow git commits in worktree sandboxes by @andrasbacsai in #297
- feat(chat): apply per-mode thinking level overrides and show model badges by @andrasbacsai in #301
- feat(chat): add Cursor Agent backend integration by @andrasbacsai in #302
- feat(sounds): simplify notification sounds and add preview buttons by @andrasbacsai in #304
- refactor(chat): remove stall detection timeout from codex event loop by @andrasbacsai in #303
- fix(release): fix AppImage auto-update by generating proper updater artifacts by @andrasbacsai in #305
Full Changelog: v0.1.38...v0.1.39