chore: sync upstream coollabsio/jean main (2026-06-01)#2
Merged
Conversation
- Remove `backdrop-blur-sm` from all modals/dialogs (expensive GPU composite layer) - Replace filter drop-shadow icon-glow animation with opacity-based variant - Pause animations when window loses focus via `.window-blurred` CSS class - Add `prefers-reduced-motion` media query support for all animations - Add `window_vibrancy` preference + `set_window_vibrancy` Tauri command (macOS, default off)
Introduce a shared 1Hz TickStore that pauses when the window is blurred or the document is hidden, eliminating background GPU churn from per- component setInterval calls. - Add TickStore singleton and useTickRef hook; subscribers mutate DOM via refs instead of triggering React re-renders - Convert useElapsedTime hook → ElapsedTime component (direct DOM write) - Replace useWakeupRemaining (setState) with WakeupCountdownText (ref) - Remove backdrop-blur-sm from FloatingButtons and WsReconnectOverlay - Fix macOS window opacity toggling: make window opaque when vibrancy is disabled so WindowServer stops blending the transparent backing layer - Remove static windowEffects from tauri.conf.json; vibrancy is now controlled exclusively at runtime via set_window_vibrancy
…lStore Remove useTickRef and the ref-mutation approach for live-ticking UI. Convert ElapsedTime component and WakeupCountdownText to plain hooks (useElapsedTime, useWakeupRemaining) that read from tickStore via useSyncExternalStore — simpler, concurrent-mode safe, no DOM writes. Update TickStore listener signature to () => void to match useSyncExternalStore's subscribe/getSnapshot split.
Refine GitHub CLI error classification so repository eligibility failures (no remotes, unknown hosts, non-GitHub remotes) are not reported as auth issues. Update the dashboard to verify gh auth state before showing auth errors, and add tests for the new classification behavior.
# Conflicts: # src-tauri/src/lib.rs # src-tauri/tauri.conf.json # src/services/preferences.test.ts # src/types/preferences.ts
Add GitHub dashboard modal tests for gh auth prompt handling and expand GitHub service auth error classification coverage.
Add a Streamable HTTP MCP endpoint, preference controls, and config snippets for Jean's MCP server. Inject the server into Claude and Cursor sessions with recursion depth and rate-limit safeguards.
Move Jean MCP support into dedicated config, core, socket, and stdio modules so local CLI sessions can use Jean-owned MCP transport instead of the main HTTP server. Add background investigation dispatch support, persistent MCP server settings, and UI/test coverage for MCP server preferences.
Merge Jean MCP config into Claude sessions and allow both server-level and wildcard MCP tool patterns so non-interactive Claude runs can execute configured tools.
Use a stable Jean launcher command for generated MCP entries, harden local socket handling and auth responses, invalidate MCP config cache after installs, and update the MCP preferences UI for the revised server configuration flow.
Remove the separate HTTP MCP endpoint and route stdio/socket protocol handling through shared core helpers. Add the dedicated Jean MCP preferences section, keep Jean MCP disabled by default, and preserve explicit opt-in prefs.
Add Cursor Composer 2.5 model options and sort newer Composer models first, including fast variants. Disable mobile issue/PR investigate actions when no matching context is loaded and surface errors for missing contexts.
Let Cursor create new chats implicitly through --print and only pass --resume when an existing chat id is available. This removes an extra CLI process startup from new session first messages while preserving resumed chats.
…k-close-session-tabs Middle-click closes session tabs
Remove the default sidebar window effect from Tauri config and explicitly clear effects before making the window opaque so disabled vibrancy does not leave a compositor-blended visual effect view behind. Also pause additional animations while blurred.
feat(terminal): user-configurable terminal background color
Expose OpenCode and Cursor skills alongside existing skill sources. Clear preserved plan approval state before execution turns so new tool streams do not append to the prior planning timeline. Also add a toolbar action to revert the last local commit and tighten opinionated plugin status checks across detected Jean backends.
Add manual PR linking for worktrees through the Magic modal and backend command dispatch. Support batching review comment prompts with execution mode overrides, add Cmd+C commit shortcut handling in the diff modal, and cover the new magic command and modal flows with tests.
Remove the global TickStore and update elapsed-time / wakeup countdown hooks to manage their own intervals. This simplifies the timing logic and avoids the shared external store dependency.
Validate generated commit messages against stricter Conventional Commit rules, route native Codex request_user_input tool calls through interactive question cards, and send review comment prompts through sequential sessions.
Migrate prior Opus 4.7 defaults to Opus 4.8 1M across chat, magic prompts, preferences, and model picker tests while preserving explicit non-Opus selections.
Add one-click yolo starts for supported backends and carry the prepared terminal context into matching native CLI commands. Include tests for Claude and Codex yolo session startup.
Add reconnect actions for resumable terminal sessions and include PR metadata when generating release notes and pull request bodies.
Move PR update generation out of project commands and preserve yolo flags when resuming native CLI sessions.
Add ultracode as a selectable effort level, mapping it to xhigh for Codex while preserving the Claude effort value. Refresh git diff modal content when plan approval state changes, and cover the toolbar and diff modal behavior with tests.
Add regression coverage for saving and reloading the window vibrancy preference, and verify the appearance pane does not enable runtime vibrancy when persistence fails.
perf(macos): reduce GPU load with reduced blurring/animations, shared tick store and optional vibrancy
Conflicts resolved: - src-tauri/tauri.conf.json: take upstream (windowEffects now runtime-configurable via b3b2d93) - src-tauri/src/lib.rs: keep fork's wider macos+ios cfg gate on RunEvent::Reopen - src/components/chat/FileMentionPopover.test.tsx: take upstream (FilesService/ProjectsService rename)
- preferences.test.ts: ResizeObserver mock uses arrow funcs to satisfy no-empty-function - OpinionatedPane.test.tsx: replace non-null assertion with explicit if-throw - Auto-format files via prettier
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (146)
Cache: Disabled due to data retention organization setting Knowledge base: Disabled due to WalkthroughAdds Jean MCP stdio/socket/core modules and config installer; expands Tauri dispatch and commands; updates projects/worktrees features; introduces background investigations; normalizes models/effort; significant UI, terminal theme, and keybinding changes; many tests added; CI workflow and versions updated. ChangesJean MCP and Platform Updates
Sequence Diagram(s)sequenceDiagram
participant UI as UI (React)
participant Dispatch as Tauri dispatch_command
participant MCP as jean_mcp_core::call_tool
participant Sock as jean_mcp_socket (Unix)
UI->>Dispatch: get_jean_mcp_config_snippet / install_jean_mcp_config
UI->>MCP: start_background_investigation (via dispatch)
MCP-->>UI: BackgroundInvestigationResult
MCP->>Sock: Emit status (socket start/stop)
UI-->>UI: Open JeanMcpIntroDialog on readiness
Estimated code review effort🎯 5 (Critical) | ⏱️ ~120 minutes |
7 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Syncs the fork with 75 new commits from upstream
coollabsio/jeanmainsince the last sync (PR #1 on 2026-05-15). Brings in v0.1.50 → v0.1.52 releases.Upstream highlights
gh autherrorsConflicts resolved
src-tauri/tauri.conf.json— took upstream (hardcodedwindowEffectsremoved; now runtime-configurable via upstream's vibrancy preference)src-tauri/src/lib.rs— kept fork's wider#[cfg(any(target_os = "macos", target_os = "ios"))]gate onRunEvent::Reopensrc/components/chat/FileMentionPopover.test.tsx— took upstream rename (FilesModule/ProjectsModule→FilesService/ProjectsService)Follow-up fixes
ResizeObservermock inpreferences.test.ts, replaced non-null assertion inOpinionatedPane.test.tsxwith explicitif-throw.Fork-only commits preserved
Dockerfile additions (rtk, typst, golangci-lint, kubectl/stern, helm3, codehealth, lefthook, CodeScene, dev-box toolchain, nvm, Bun, Stripe, Atlas, hadolint, Playwright, openvscode-server) and the macOS-only
RunEvent::Reopengate.Test plan
bun install --frozen-lockfilebun run typecheckbun run lintbun run format:checkbun run test:run(647 tests, all passing)docker build -t jean:dev .(full multi-stage build incl. Rust compile + frontend build)RunEvent::Reopenstill gated correctly🤖 Generated with Claude Code
Summary by CodeRabbit
New Features
Improvements