Release history
jean releases
A dev environment for AI agents.
All releases
54 shown
- Native in‑app browser with multi‑tab support, navigation toolbar and persistent state per worktree
- Terminal output replay on reconnect with WebSocket heartbeat and reconnect banners
- Claude Opus 4.7 model added with 1 M context window
Full changelog
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 https://github.com/coollabsio/jean/pull/343
- fix(ui): replace native Windows scrollbars with the app's custom style by @jorgefl8 in https://github.com/coollabsio/jean/pull/342
- fix(ui): apply cursor-pointer to interactive shadcn primitives by @jorgefl8 in https://github.com/coollabsio/jean/pull/344
- feat(models): add Claude Opus 4.7 1M context window variant by @andrasbacsai in https://github.com/coollabsio/jean/pull/346
- fix(github): increase fetch limits for actions, issues, and PRs by @andrasbacsai in https://github.com/coollabsio/jean/pull/348
- fix(errors): prevent UI crash on unhandled rejections and null session data by @andrasbacsai in https://github.com/coollabsio/jean/pull/349
New Contributors
- @jorgefl8 made their first contribution in https://github.com/coollabsio/jean/pull/343
Full Changelog: https://github.com/coollabsio/jean/compare/v0.1.46...v0.1.47
- Terminal in web and browser mode with full session control
- Cursor backend system prompt injection and linked project path support
Full changelog
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
- feat(terminal): enable terminal in web/browser mode by @petrbela in https://github.com/coollabsio/jean/pull/327
New Contributors
- @petrbela made their first contribution in https://github.com/coollabsio/jean/pull/327
Full Changelog: https://github.com/coollabsio/jean/compare/v0.1.45...v0.1.46
- ScheduleWakeup scheduler with persistence across restarts
- Monitor tool streaming with real-time event log and countdown indicators
- Worktree branch and name customization
Full changelog
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)
- feat(worktree): allow setting custom branch/worktree name by @ngvuhuy in https://github.com/coollabsio/jean/pull/294
New Contributors
- @ngvuhuy made their first contribution in https://github.com/coollabsio/jean/pull/294
Full Changelog: https://github.com/coollabsio/jean/compare/v0.1.44...v0.1.45
- Branch stacking support on worktrees
- Web directory browser for project selection
- Settings quick-jump search
Full changelog
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 https://github.com/coollabsio/jean/pull/326
- feat(projects): add web-compatible directory browser for project selection by @andrasbacsai in https://github.com/coollabsio/jean/pull/308
- fix(gh-cli): use --active flag for gh auth status check by @xavieroyj in https://github.com/coollabsio/jean/pull/317
- fix: auto-resize textarea on WebKitGTK (Linux) by @karimou5 in https://github.com/coollabsio/jean/pull/311
- feat(setting): Add settings search by @Whiteknight07 in https://github.com/coollabsio/jean/pull/238
Full Changelog: https://github.com/coollabsio/jean/compare/v0.1.43...v0.1.44
- Expand tool calls by default in chat
- Linux window controls for desktop app
- Project directory support for Codex and Opencode backends
Full changelog
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 https://github.com/coollabsio/jean/pull/322
- fix(terminal): fix freeze after idle and listener disposal race by @andrasbacsai in https://github.com/coollabsio/jean/pull/324
- feat(preferences): add expand tool calls by default setting by @andrasbacsai in https://github.com/coollabsio/jean/pull/325
New Contributors
- @xavieroyj made their first contribution in https://github.com/coollabsio/jean/pull/322
Full Changelog: https://github.com/coollabsio/jean/compare/v0.1.42...v0.1.43
- Model IDs migrated from legacy names (e.g., 'opus') to full format (e.g., claude-opus-4-7); auto-upgraded on existing installations
- Per-table checklist state now persists across sessions
- Effort level preference overrides for build/yolo model behavior
- Animated streaming indicator on scroll button
Full changelog
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: https://github.com/coollabsio/jean/compare/v0.1.41...v0.1.42
- `read_file_content` argument renamed from `filePath` to `path`
- Session message pagination with optional `limit` parameter
- Xhigh effort level with claude-opus-4-7 as default model
- Plugin skills in slash popover
Full changelog
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 https://github.com/coollabsio/jean/pull/312
Full Changelog: https://github.com/coollabsio/jean/compare/v0.1.40...v0.1.41
- Claude Opus 4.5 as a selectable model option
- `jobs-done` notification sound for completed job alerts
- Asset `peon-work-work.mp3` renamed to `work-work.mp3`
Full changelog
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: https://github.com/coollabsio/jean/compare/v0.1.39...v0.1.40
- Cursor Agent backend as first-class backend with model picker and execution mode dropdown
- Codex crash recovery with persisted thread and turn IDs and websocket event replay
- Per-mode thinking level overrides for build and yolo modes
- File picker attachments in chat with mode dropdown
- Pull request update support from magic dialog for linked, branch-detected, and manual PRs
- gpt-5.4-mini Codex model option
- Desktop backend
- Model picker in chat
Full changelog
Features
- Added a desktop backend and model picker in chat, making it easier to switch backends and apply the matching model in one step.
Fixes
- Fixed chat layouts on mobile to better respect safe areas, improving spacing around inputs and modal content on edge-to-edge devices.
- Fixed missing bottom spacing in the session chat modal, restoring consistent padding at the bottom of the conversation view.
Full Changelog: https://github.com/coollabsio/jean/compare/v0.1.36...v0.1.37
- In-chat search with mod+f shortcut and match highlighting
- Multi-dock terminal layouts (floating, left, right, bottom)
- Active-session highlighting in expanded worktree sidebar
- Mobile swipe gestures for chat navigation (edge-swipe back, top-edge pull)
- Bind-address support for Web Access with custom IPv4/IPv6 addressing
- Worktree sorting by creation date or last activity
- Per-project persistence for sort preference
- Improved planning status behavior
Full changelog
Features
- Added worktree sorting options in the project canvas (creation date or last used activity).
- Added per-project persistence for project canvas worktree sort mode, so your preferred sort setting is restored.
Fixes
- Fixed planning status behavior so actively streaming sessions remained in
planninginstead of showing as waiting too early. - Fixed plan summary rendering in chat/preferences so plan content displayed cleanly without duplicate text blocks.
- Fixed responsive sizing in chat/preferences controls for better usability on smaller screens.
- Fixed terminal container padding/layout in onboarding and login modal flows.
Improvements
- Improved dashboard/worktree ordering to better reflect real recent chat activity.
Full Changelog: https://github.com/coollabsio/jean/compare/v0.1.33...v0.1.34
- Fixed read access for add_dirs across all execution modes
- End-to-end Codex approval and request flows with permissions and tool-call handling
- Resilient Codex plan-mode recovery preserving state across reloads
- OpenCode support for question-answer, thinking, and tool-use blocks with improved rendering
JSON parsing now strips markdown fences correctly and Claude can perform extended thinking for up to two turns, while error logs show content previews and permission handling is refined.
- Selective file commits from diff modal
- Bun package manager detection and support
- Window state persistence
Full changelog
Features
- Selective file commits – Choose which files to commit directly from the diff modal
- Bun package manager support – Detect and support bun with proper CLI update flows
- Window state persistence – Automatically save and restore window dimensions and position
- Browser session sync – Prevent stale sessions when reconnecting to the server
- IntelliJ editor support – Added support for IntelliJ-based editors
Fixes
- Fixed chat view not rendering when clicking sidebar worktrees or sessions
- Fixed WebKit blank-screen bug that occurred during rapid scrolling with animations
- Fixed Codex CLI installation failures ("Release not found" errors)
- Fixed Linux compatibility with stat command argument order
- Fixed AppImage builds on systems without XDG_DATA_DIRS set
- Fixed timing race conditions in programmatic plan collapse animations
- Fixed session modal not opening when sessionId is missing
- Fixed binary execution failures on macOS by using atomic rename instead of in-place overwrites
- Fixed missing build dependencies and signing environment variables for AppImage builds
- Improved scroll handling with optimized requestAnimationFrame timing
Improvements
- Standardized dropdown widths across preference panes for consistent layout
What's Changed (Github)
- Add IntelliJ editor support by @DengYiping in https://github.com/coollabsio/jean/pull/183
- fix(process): use atomic rename on all platforms to prevent macOS inode taint by @andrasbacsai in https://github.com/coollabsio/jean/pull/239
- Fix unbound variable crashes in shell scripts under strict mode by @krzykamil in https://github.com/coollabsio/jean/pull/246
- fix(chat): prevent WebKit blank-screen bug on rapid scroll during animations by @horacioh in https://github.com/coollabsio/jean/pull/253
- fix(chat): clear activeWorktree on sidebar click and fix WebKit blank-screen during scroll by @horacioh in https://github.com/coollabsio/jean/pull/254
- fix(chat,ui): fix WebKit blank-screen bug and standardize preferences form widths by @horacioh in https://github.com/coollabsio/jean/pull/255
- fix(codex): fix CLI installation failing with "Release not found" by @kessenma in https://github.com/coollabsio/jean/pull/243
New Contributors
- @DengYiping made their first contribution in https://github.com/coollabsio/jean/pull/183
- @krzykamil made their first contribution in https://github.com/coollabsio/jean/pull/246
- @horacioh made their first contribution in https://github.com/coollabsio/jean/pull/253
- @kessenma made their first contribution in https://github.com/coollabsio/jean/pull/243
Full Changelog: https://github.com/coollabsio/jean/compare/v0.1.30...v0.1.31
- Automated detection of Codex, GitHub, and OpenCode CLIs with a user selection UI
- Linked projects modal that shares context across projects and auto-saves recent sessions
- Fast mode support for optimized model usage with new opus-fast and claude-opus-4-6-fast options
- Removed cmd.exe terminal option on Windows, leaving PowerShell as the only choice.
- Mobile MCP Server Toggle with active server count indicator
- Project-level skill loading and overrides from worktrees
- PR merge and review commands with pre-merge validation
- Mobile-responsive GitDiffModal with overlay sidebar
- Default Codex model updated to gpt-5.4
- Authenticated GitHub API requests to avoid rate limits
Full changelog
Features
- Added mobile-responsive layout for GitDiffModal with overlay file sidebar, collapsible labels, and unified diff default on small screens
- Changed default Codex model from gpt-5.3-codex to gpt-5.4 with support for gpt-5.4-fast via
service_tier="fast"flag - Authenticated GitHub API requests using
GH_TOKEN,GITHUB_TOKEN, orgh auth tokento avoid rate limits when fetching releases - Added apple-touch-icon and mobile web app title
- Added
set_sessions_last_opened_bulkcommand for batch updates - Included
user_messageinchat:sendingevent for cross-client sync
Fixes
- Fixed ChatInput not clearing on submit-button sends (enter-key path already worked, but button clicks left stale text)
- Disabled Claude CLI usage tracking to prevent repeated auth logouts; Codex CLI tracking remains active
- Fixed macOS PATH resolution to use non-interactive login shell, avoiding TCC permission prompts on macOS Sequoia when shell init scripts access protected app data
- Fixed session close selecting nearest non-archived neighbor tab instead of clearing active session
- Fixed worktree creation cache invalidation overwriting pending status
- Fixed worktree name overflow in UnreadBell
- Skipped redundant query invalidation when data was just preloaded
Improvements
- Mobile improvements for command palette, unread modal, preferences, and project canvas views
What's Changed
- perf(chat): restore virtualized message list to fix macOS Intel slowdown by @andrasbacsai in https://github.com/coollabsio/jean/pull/159
- fix(ui): prevent infinite loop when opening sessions by @andrasbacsai in https://github.com/coollabsio/jean/pull/160
Full Changelog: https://github.com/coollabsio/jean/compare/v0.1.27...v0.1.28
- Claude/Codex usage snapshots with automatic refresh
- Per-session execution mode persistence
- Improved web access stability
Full changelog
Features
- Added Claude/Codex usage snapshots with automatic token refresh, caching, and periodic background refresh
- Added per-session execution mode persistence
- Added session cache invalidation events
Improvements
- Reduced streaming latency with adaptive NDJSON tail polling
- Web access is way more stable now
Full Changelog: https://github.com/coollabsio/jean/compare/v0.1.26...v0.1.27
- Commits explorer adds browsing of branch history, per-commit diffs, and AI review requests.
- GitHub dashboard modal provides a floating project overview for quick navigation.
- Per-prompt backend overrides let users select Claude, OpenCode, or Codex per operation.
- Fuzzy search for file and command mentions
- Redesigned Magic Prompts pane
- Status badges for issues and PRs
Full changelog
Features
- Added fuzzy search for file and command mentions in chat using fuse.js
- Added support for updating existing saved contexts instead of always creating new ones
- Added preview button to view saved context content
- Redesigned Magic Prompts pane from grid layout to master-detail sidebar with auto-flush of pending changes
- Added status badges for issues, PRs, security alerts, and failed runs
- Added CMD+Y shortcut for yolo mode approval
- Inherited model/mode settings when creating new sessions
Improvements
- Improved plan-waiting state handling via
chat:doneevent to eliminate race conditions - Setup scripts no longer fail worktree creation; track success status instead
- Preserved Claude session IDs during cancellation to enable
--resumefor next run - Added duplicate PR detection before generating new ones (saves tokens/API calls)
- Showed spinners on all in-progress tools, not just the last one
- Computed minimal disambiguating paths for duplicate filenames in diffs
- Improved session tab auto-scroll and stable secondary sort by creation time
- Respected user's selected model/provider for investigate runs
- Auto-transition to review when opening plan-waiting sessions
Fixes
- Fixed hook ordering by moving selection state before git diff effect
- Fixed optimistic message preservation in chat service for unsent messages
- Fixed grammar in empty message state text
Full Changelog: https://github.com/coollabsio/jean/compare/v0.1.24...v0.1.25
- Prompts redesign with master-detail layout
- Chat status badges for issues/PRs/runs
Full changelog
Features
- Redesigned prompts interface — Converted MagicPromptsPane to a master-detail sidebar layout with automatic flushing of pending changes when switching prompts
- Chat status badges — Added new issues, open PRs, and failed runs indicators to the chat modal
- Context updates and preview — Sessions now update existing saved contexts instead of always creating new ones; added a preview button to view saved context content
- PR push permission detection — Added clear error handling for permission-denied push errors with an "Open PR" action in error toasts
- CLI version checks for Codex and OpenCode — Extended version check monitoring to include Codex and OpenCode CLIs with periodic update checks
- Keyboard shortcuts for chat scrolling — Added CMD+Up/Down to scroll chat by one page with smooth animation
Fixes
- Question status tracking — Improved detection of answered/skipped questions using follow-up messages when state is lost after reload
- Modal ESC key handling — Prevented SessionChatModal from closing when PlanDialog handles the Escape key
- Hook ordering — Moved selection state before git diff effect for proper React hook ordering
- Optimistic message preservation — Fixed chat service handling of unsent messages
Improvements
- Simplified session close flow — Streamlined session archive to navigate to canvas; CMD+W now closes worktree when closing the last active session
- Workflow run sessions — Investigate runs now respect user's selected model/provider and distinguish between project canvas and worktree contexts
- UnreadBell — Now focuses the first session when opening the menu
Full Changelog: https://github.com/coollabsio/jean/compare/v0.1.23...v0.1.24
- Auto-resizing chat textarea up to 10 rows
- Terminal signal display with human-readable names
- Improved terminal auto-close behavior
Full changelog
Features
- Auto-resizing chat textarea: Chat input now automatically expands and contracts based on content, supporting up to ~10 rows
- Terminal signal display: Process termination signals are now captured and displayed with human-readable signal names
- Improved terminal auto-close: Terminals now auto-close on successful exit (code 0) or SIGINT for run terminals, while keeping error cases open for debugging
- New worktree from chat: Allowed
new_worktreeaction to be triggered via keybinding while the chat modal is open
Full Changelog: https://github.com/coollabsio/jean/compare/v0.1.22...v0.1.23
- Fixed security feature errors to return empty results when Dependabot advisories are unavailable
- Teardown script support for worktree deletion with failure protection
- Worktree labels replace session board for custom categorization
- Copy and edit buttons on pasted text file previews enhance usability
- Enriched system prompts with issue/PR context
- Exact issue/PR lookup by number
- Inline file annotations
Full changelog
Features
- Added enriched system prompts from global/project preferences with issue/PR context and Fixes links.
- Added exact issue/PR lookup by number with prioritized search matches.
- Added inline file annotations to prompt parts for images, skills, and pasted text.
Fixes
- Fixed mobile navigation by auto-closing the sidebar after page changes.
Improvements
- Improved auto-investigate behavior by making it per-worktree and keeping a stable UI layout.
What's Changed
- feat(mobile): auto-close sidebar after navigation by @Loa212 in https://github.com/coollabsio/jean/pull/101
New Contributors
- @Loa212 made their first contribution in https://github.com/coollabsio/jean/pull/101
Full Changelog: https://github.com/coollabsio/jean/compare/v0.1.20...v0.1.21
- OpenCode backend with HTTP-based execution
- Backend filtering dropdown
Full changelog
Features
- OpenCode Backend Integration: Added full OpenCode backend support with HTTP-based execution, session resumption, provider/model selection, and execution modes (plan/build)
- Backend Filtering: Filter backend selection dropdown to only show installed providers
- Session Tracking: Added
session.updated_atfield to track latest activity across runs - Enhanced Command Palette: Improved search to include labels and keywords
- Onboarding Improvements: Enhanced flow with manual trigger support and dismissal handling
- HTTP Server Preference: Added
http_server_enabledpreference flag
Improvements
- Simplified Onboarding UI: Removed decorative icons and streamlined layout with consistent numbered badges
- System Prompt Refinement: Clearer task management guidance
- Session Metrics: Now use
updated_atfor tracking latest activity - Session Lifecycle: Implement acquire/release reference counting for OpenCode server lifecycle
- Default Canvas Layout: Changed from grid to list view
Fixes
- Error Handling: Improved error recovery with
error_emittedflag for graceful stream termination - Chat Errors: Restore attachments and remove optimistic messages on chat errors
- Codex Releases: Fixed release fetching to exclude prereleases
- Sorted git remotes in helper and modal
- Worktree session metrics in canvas
Full changelog
Features
- Added sorted remote listings to the git-status helper and reused the same ordering inside the modal so remotes stay predictable across views.
- Surface worktree session metrics and navigation state in the canvas area for better visibility into active workspaces.
Fixes
- Moved origin to the top of repository remote lists so the picker now defaults to the canonical remote when it exists.
- Hardened the AppImage Linux build/runtime pipeline to reduce compatibility issues for a wider set of distributions.
- Resolved the blank-screen problem that appeared on Arch Linux and Wayland compositors when launching the AppImage.
Improvements
- Modularized the chat toolbar behavior to keep the UI logic cleaner and easier to extend.
- Removed diagnostics system and sysinfo dependency
- Removed disable_thinking_in_non_plan_modes preference
- Tightened JSON schema validation with additionalProperties: false
- Zed editor as default
- Session restoration tracking
- Review cancellation with process registry
Full changelog
Features
- Added review cancellation with process registry and
cancel_review_with_aicommand to interrupt in-flight AI review processes - Added Zed editor as default editor with full support across macOS, Windows, and Linux
- Added session restoration tracking with
restore_last_sessionpreference to persist per-project session state across workspace switches - Added working directory context to Codex CLI invocations for improved repository awareness
Fixes
- Fixed worktree initialization to skip recently created worktrees (<5 minutes) when filtering non-existent paths, preventing premature removal during background setup
- Fixed Alt+M keyboard shortcut detection for create-and-investigate actions
- Fixed Alt/Option key mapping on macOS for proper keybinding handling (physical key code mapping)
- Fixed duplicate git diff listeners in ChatWindow when modals are open over canvas view
- Fixed list key props to use stable identifiers instead of array indices
Improvements
- Refactored NewWorktreeModal and LoadContextModal into reusable tab components and custom hooks for better maintainability
- Refactored ChatWindow into five focused custom hooks (
useActiveTodosAndAgents,useMessageSending,usePlanState,useToolbarHandlers,usePendingAttachments) and additional hooks for MCP server resolution and event handling - Added code splitting with lazy loading for heavy modals (GitDiffModal, LoadContextModal) using React.lazy and Suspense for faster initial load
- Added DialogDescription with accessibility improvements to all modals
- Persisted selected backend/model in investigate magic prompt mode
- Improved git operation toast messages with project/worktree name prefix
- Moved PR status display from button text to tooltip for cleaner UI
- Enhanced ChatInput with Tab key to switch backends and improved mode-specific placeholders
- Added MCP servers dropdown button to ChatToolbar
- Refined CSS transitions to be more specific (e.g.,
transition-colors,transition-[background-color,box-shadow])
Breaking Changes
- Removed diagnostics system and sysinfo dependency (process monitoring, CPU/memory tracking)
- Removed
disable_thinking_in_non_plan_modespreference; thinking is now always controlled by model settings - Removed thinking override logic from Claude CLI execution
- Tightened JSON schema validation with
additionalProperties: false
- Codex CLI backend with interactive approval
- Multi-remote git support
Full changelog
Features
- Codex CLI Backend: Added Codex CLI as an alternative execution backend with interactive approval mode, multi-agent collaboration tools, and configurable execution modes (plan, build, yolo)
- Backend Selection: Implemented session-level backend selection between Claude and Codex before the first message, with frontend toggle in chat toolbar
- Existing PR Linking: Added ability to detect and link existing PRs instead of failing creation, with "PR linked" vs "PR created" toast notifications
- Execution Mode Selection: Added separate "Fix (yolo)" buttons alongside plan buttons for explicit execution mode control in review results and code fixes
- Multi-Remote Support: Added
get_git_remotescommand and remote picker modal for push/pull/commit operations - Keyboard Shortcuts: Added quick access shortcuts (⌥P, ⌥M, ⌥E) for provider/model/effort dropdowns and numeric shortcuts (1-9) for menu items
- Image Thumbnails in Queue: Display visual previews of images in queued messages with lightbox preview capability
- Worktree Auto-Archive: Added
removal_behaviorpreference to delete or archive worktrees on PR merge
Improvements
- Enhanced PR response handling to skip redundant saves for linked PRs
- Improved issue/PR preview with dedicated modal component
- Added multi-agent UI support with AgentWidget component
- Enhanced command builders to support new Codex configuration options
- Better session lifecycle management with approval channel cleanup
Internal
- Moved
PermissionDenialandPermissionDeniedEventto shared types for code reuse - Added
rpc_idfield toPermissionDenialfor tracking approval responses
What's Changed
- feat(chat): add Codex CLI backend with interactive approvals and multi-agent support by @andrasbacsai in https://github.com/coollabsio/jean/pull/90
Full Changelog: https://github.com/coollabsio/jean/compare/v0.1.16...v0.1.17
- Multi-remote GitHub support
- Issue/PR preview modal
Full changelog
Features
- Multi-remote GitHub support: Added ability to fetch and display all GitHub remotes for a repository, enabling users to open branches and repos from fork/upstream remotes, not just origin
- Issue/PR preview modal: Added IssuePreviewModal component to display detailed GitHub issue and pull request information including title, description, labels, comments, and reviews directly from the selection interface
- Periodic update checks: Added automatic update checks every 30 minutes
Improvements
- Added remote selection UI with keyboard shortcuts in OpenInModal
- Improved dialog auto-focus handling with configurable override
- Added square spinner animation for dev server indicator
- Fixed session tab scrolling and layout
- Refactored GitHub URL resolution with normalize_github_url helper to support upstream tracking refs
Fixes
- Fixed chat review state oscillation by persisting reviewing state before query invalidation to prevent is_reviewing flag from being overwritten with stale cache data
- Sonnet 4.5 model option
Full changelog
Features
- Added Sonnet 4.5 model option with updated model labels including version numbers
Improvements
- Improved session management with better state persistence and tab navigation
- Added attachment persistence when canceling messages
- Implemented off-screen waiting tab indicators with auto-scroll navigation
- Enhanced chat UI with custom scrollbar styling and better SlashPopover positioning
- Improved plan/recap indicators to display actual session state
- Added copy button to ErrorBoundary for easier error debugging
- Optimized store state subscriptions with shallow equality checking
Fixes
- Fixed z-index layering in ChatWindow TodoWidget
- Fixed TodoWidget styling for consistency with sidebar colors
- Centralized load context modal state to prevent race conditions on session cancellation
- Fixed waiting_for_input state restoration for active runs only
- Fixed ThemeProvider context stability
- Fixed ProjectCanvasView sessionsByWorktreeId computation
- Fixed McpServersPane to respect explicit empty server configuration
- Prevented unwanted PlanDialog auto-focus on open
Other
- Applied comprehensive code formatting and linting across the codebase
Full Changelog: https://github.com/coollabsio/jean/compare/v0.1.14...v0.1.15
- Per-session MCP server overrides with inheritance chain
- Canvas view as default
- Session close confirmation dialog
Full changelog
Features
- Per-session MCP server overrides: Added ability to configure MCP servers per session with inheritance chain (session → project → global)
- Session close confirmation: Added optional confirmation dialog before closing sessions (controlled by
confirm_session_closepreference) - Canvas view as default: Made WorktreeCanvasView the default view for worktrees, replacing the previous tabbed interface
- Session detail modal: Replaced SessionTabBar with a modal-based session detail view for cleaner UI
Improvements
- Dialog header spacing: Adjusted DialogHeader padding for consistent spacing across all modals
- Responsive layout: Improved KeybindingHints and ChatToolbar layouts with better mobile responsiveness
- UI consistency: Consolidated Model selector from Select to DropdownMenu for consistency
- Chat input improvements: Enhanced @mention detection to handle editing completed mentions
- Reduced logging: Decreased tauri_plugin_updater log verbosity to reduce noise
- Documentation: Expanded architecture guide with detailed module documentation
- Homebrew support: Added Homebrew installation section to README
Fixes
- Session filtering: Fixed session filtering logic to prevent base sessions from being searchable
- Code cleanup: Removed unused
magicModalShortcutprop and fixed code indentation throughout codebase - UI refinements: Fixed array element indentation and arrow function alignment
- System Diagnostics Panel with real-time monitoring
- Session Recap Dialog with caching
Full changelog
Features
- System Diagnostics Panel: Added comprehensive diagnostics module with real-time monitoring of CPU/memory usage for Jean app processes and Claude CLI processes, plus background polling status and active file tailer metrics
- Session Recap Dialog: Added on-demand session digest generation with caching and visual indicators (sparkles icon) in session tabs. Users can access recaps via R key, magic modal, or button in SessionChatModal
- E2E Testing Suite: Added comprehensive Playwright test suite with mock Tauri transport, covering chat messaging, model selection, session management, and theme switching
- Homebrew Automation: Implemented automated Homebrew tap updates with SHA256 calculation and DMG availability checks
Improvements
- Enhanced GitHub CLI binary resolution with extracted helper function and explicit fallback chain (embedded → PATH → bare command)
- Improved session and project cleanup with orphaned session data removal and known MCP server tracking
- Added experimental
diagnostics_enabledpreference flag for opt-in diagnostics visibility - Updated dependencies: @tauri-apps/cli to 2.10.0, added @radix-ui/react-slider 1.3.6 for UI component support
- Enhanced error messaging for Claude CLI binary resolution with expected path display
Fixes
- Fixed X button not closing the application
- Fixed default global system prompt handling to use DEFAULT_GLOBAL_SYSTEM_PROMPT when null
- Fixed CSS styling issues
- Improved macOS window close behavior with z-rule addition
- Playwright E2E testing suite with Tauri mocks
- Mock data factories
Full changelog
Features
- Added comprehensive Playwright E2E testing infrastructure with Tauri mock transport layer
- Added mock data factories for projects, worktrees, sessions, and preferences
- Added E2E test suite covering app loading, keyboard shortcuts, navigation, and preferences
- Added Tauri plugin stubs (dialog, clipboard, opener, updater, process) for E2E testing
- Added support for E2E mock detection and routing in transport layer
Fixes
- Fixed race condition in useMainWindowEventListeners where cleanup could race with async menu listener setup
- Fixed code review to use full model instead of Haiku for better quality results
- Fixed model filtering to properly handle internal Anthropic provider
Improvements
- Added dev:e2e and test:e2e npm scripts for running E2E tests
- Cleaned up unused component props by prefixing with underscore to suppress linting warnings
- Clickable web links in terminal
Full changelog
Features
- Added clickable web links in terminal with @xterm/addon-web-links for easy URL navigation
- Improved plan approval flow with persistent cleared waiting state to backend
Fixes
- Fixed CMD+W keyboard shortcut to close selected session instead of entire worktree
- Fixed code review model to use full default model instead of Haiku for better quality
- Fixed Anthropic internal provider handling in model filtering
Improvements
- Enhanced text file preview UX with select-text and cursor-text styling
- Optimized query invalidation order for better cache consistency
- Allowed git push without changes when user explicitly requests it (useful for pushing existing commits)
- Default removal behavior changed from archive to delete
- Archive retention reduced from 30 to 7 days
- Session archiving with restoration capability
- AI-powered PR title/description generation
Full changelog
Features
- Base session archiving: Archive sessions when closing base sessions with ability to restore them later via the Archive modal
- PR update workflow: Generate AI-powered PR titles and descriptions, then apply updates directly to GitHub
- Auto-pull base branch: Automatically pull the base branch before creating new worktrees (enabled by default, skipped when creating from PR/issue context)
Improvements
- Made workflow check status clickable to open workflow runs modal
- Added copy button to chat error fallback for easier bug reporting
- Added missing UI components: CloseWorktreeDialog and BranchConflictDialog
- Updated Archive modal messaging based on removal behavior setting
- Simplified CMD+W handler to close entire worktrees
Changes
- Changed default removal behavior from archive to delete
- Reduced archive retention from 30 days to 7 days
Dependencies
- Added rehype-raw@^7.0.0 for HTML/raw content support in markdown
- Automatic image resize and compression
- Session tabs in modal with status indicators
Full changelog
Features
- Image processing: Automatically resize and compress images for better compatibility with Claude's limits. Large images (>1568px) are resized, and opaque PNGs are compressed to JPEG format to reduce token usage.
- Session tabs in modal: View and switch between multiple sessions with tabs, displaying status indicators (waiting, review, vibing, planning, yoloing). Use CMD+LEFT/RIGHT to navigate between tabs.
- Session labels with custom colors: Added structured session labels with customizable colors and auto-calculated text contrast for better readability.
- Per-prompt provider selection: Configure different AI providers for individual prompts in preferences, with fallback to global default provider.
- AI code review: Automatically review code changes and untracked files with inline feedback and detailed analysis.
- Git sweep polling: Added background polling for non-active worktrees to keep repository status current (60-second intervals).
- Global system prompt support: Load custom system prompts from
~/.claude/CLAUDE.mdfor consistent behavior across sessions. - Consolidated git operations: Unified pull operation with automatic stash management for local changes.
Improvements
- Modal UX: Added close button (X) to session chat modal for easier navigation.
- Focus polling: Trigger immediate status updates when returning to the app for real-time PR/issue information.
- Message queuing: Queue fix messages when a session is busy to prevent interruptions and maintain conversation flow.
- Session persistence: Auto-open specific sessions after review operations, with improved state management across worktree changes.
- Claude CLI robustness: Enhanced error handling with stderr collection and silent failure detection to prevent broken continuations.
- Dashboard UI: Persist worktree collapse state and maintain scroll position improvements with instant scrolling after UI changes.
- Performance: Moved Claude CLI execution to a dedicated thread to prevent async runtime starvation during concurrent sessions.
Fixes
- Modal close behavior: Fixed highlighted card reference alignment when closing or switching sessions.
- Worktree setup messaging: Improved card messaging for different worktree types (PR, issue, script).
- Git operations: Made review git operations non-fatal to gracefully handle missing origin references.
- Session state: Cleared stale session IDs when resume produces empty responses to prevent broken continuations.
What's Changed
- refactor: improve Claude execution threading and session persistence by @andrasbacsai in https://github.com/coollabsio/jean/pull/81
Full Changelog: https://github.com/coollabsio/jean/compare/v0.1.8...v0.1.9
- Custom CLI profiles (OpenRouter, MiniMax)
- Session labels and grouping
- npm to bun migration
Full changelog
Features
- Custom CLI Profile Support - Added support for custom Claude CLI profiles (e.g., OpenRouter, MiniMax) with provider-specific settings. Users can now select a provider per session or set a default, with generic model tiers (Opus/Sonnet/Haiku) displayed for custom providers.
- Session Labels - Added user-assigned labels to sessions (e.g., "Needs testing") with preset and custom options. Sessions are now sorted by label status (labeled first, grouped alphabetically, then unlabeled).
- Force-Send for Queued Messages - Implemented force-send button for the first queued message when a session is idle.
- List view - Now you can have a list view on your canvas.
- Grouping - Group session based on their current status.
- Sessions on sidebar - Sessions, with grouping, also visible one sidebar.
And lots small changes/features.
Improvements
- Package Manager Migration - Migrated from npm to bun across all scripts and documentation, improving development experience with superior performance. Updated GitHub Actions workflow to use bun setup.
- UI Polish - Fixed WorktreeDashboard header layout shift with min-height. Refactored TitleBar: moved Add Project button, added GitHub link, made version clickable.
- Dependency Updates - Upgraded @tauri-apps/cli from 2.9.3 to 2.10.0 and added @radix-ui/react-slider and diff dependencies with TypeScript support.
Fixes
- Removed Unused Features - Removed unused "Open Pull Request" menu item and handler from Tauri menu. Removed no-op cleanup_pr_contexts_for_session function.
- Label Modal Safety - Added null check in LabelModal before applying label.
Other Changes
- Session Removal Preference - Introduced removal_behavior preference: "archive" (default) or "delete" for sessions and worktrees
- Keyboard Shortcut - Added toggle_session_label keybinding (Cmd+L / Ctrl+L)
- Session labels with preset and custom options
- Removal behavior preference for sessions
- Force-send button for queued messages
Full changelog
Features
- Added session labels with preset and custom options (e.g., "Needs testing")
- Added removal behavior preference: choose between archiving (default) or deleting sessions and worktrees
- Added force-send button for first queued message when session is idle
- Added
toggle_session_labelkeybinding (Cmd+S / Ctrl+S)
Improvements
- Sessions are now sorted by label (labeled first, grouped alphabetically, then unlabeled)
- Removed unused "Open Pull Request" menu item and handler
- Improved UI polish in TitleBar with repositioned Add Project button and clickable version number
- Fixed WorktreeDashboard header layout shift by adding min-height
- Added null check in LabelModal before applying label
- Removed unused imports and no-op functions
- Message queue skip to next
- Persistent worktree selection
- Dashboard keyboard shortcut
Full changelog
Features
- Message Queue "Skip to Next": Added ability to skip queued messages, transforming the Cancel button when messages are queued
- Worktree Persistence: Added persistent
last_active_worktree_idto restore worktree selection when switching projects - Dashboard Keyboard Shortcut: Added Cmd/Ctrl+Alt+Backspace shortcut to cancel running sessions in dashboard
Improvements
- Auto-Investigate Refactor: Replaced event-based coordination with state-based
consumePendingInvestigateType()for simpler flow management - Dashboard UI: Simplified EmptyDashboardTabs by removing complex modal logic in favor of a minimal empty state
- Context Compaction Toast: Enhanced context compaction notifications to include session name for clarity
- Onboarding Dialog: Improved onboarding flow with proper abort handler for incomplete setup warnings
- Keyboard Navigation: Updated keyboard navigation to include release notes modal
- Documentation: Reorganized README with detailed feature categories and tech stack
- Copy Button UX: Updated tooltip text from "Copy to input" to "Copy to clipboard" for accuracy
Internal
- Removed unused PathConflictModal and BranchConflictModal components
- Fixed indentation inconsistencies in conditional blocks and function calls
Full Changelog: https://github.com/coollabsio/jean/compare/v0.1.5...v0.1.6
- GitHub command palette with issues/PRs/workflows
- Workflow runs sidebar with filtering
Full changelog
Features
- Added GitHub command palette with support for issues, PRs, and workflows
- Implemented workflow runs sidebar with filtering by workflow name
- Added dual-pane keyboard navigation (h/l to switch panes, j/k for movement)
- Added icon support for GitHub commands
Improvements
- Fixed worktree selection sync with new syncSelectionToStore effect
- Added disablePointerSelection prop to command palette for better keyboard navigation
- Increased session name word limit from 4 to 6 words
- Simplified logging configuration (removed console forwarding, Webview target only in non-headless mode)
- Upgraded @tauri-apps/cli to 2.10.0
Full Changelog: https://github.com/coollabsio/jean/compare/v0.1.4...v0.1.5
- Session-based context management
- Improved PR branch handling
- Skill support in pending attachments
Full changelog
Features
- Session-based context management: Migrated context tracking from worktree to session scope, enabling proper cleanup when sessions close
- Improved PR checkouts: Added intelligent branch collision handling with fallback to
gh pr checkoutwhen needed
Fixes
- Fixed web interface crash when using
convertFileSrcin CommandPalette by using transport wrapper - Fixed debounced save cancellation on command selection
- Added skill support in pending attachments
Improvements
- Extended session digest descriptions from 80 to 200 characters for more detail
- Enhanced
.gitignorein dist/ to preserve.gitkeepfiles
What's Changed
- fix: allow sending messages with only a skill attached by @BowgartField in https://github.com/coollabsio/jean/pull/45
- fix: use transport wrapper for convertFileSrc in CommandPalette by @BowgartField in https://github.com/coollabsio/jean/pull/46
Full Changelog: https://github.com/coollabsio/jean/compare/v0.1.3...v0.1.4
- Tab shortcuts changed from letter keys (Q, I, P, B) to number keys (1-4)
- Release notes generation via Claude CLI with GitHub releases support
- GitHub Actions workflow investigation with failed runs badge
- Per-project custom prompts and customizable parallel execution