diff --git a/CHANGELOG.md b/CHANGELOG.md index 151c4f4c..bfd8f261 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,11 +4,24 @@ All notable changes to this project will be documented in this file. ## [Unreleased] +## [1.5.2] - 2026-01-17 + +- Sessions: added branch picker dialog to start new worktree sessions from local branches (thanks to @nilskroe). +- Sessions: added project header worktree button, active-session loader, and right-click context menu in the sessions sidebar (thanks to @nilskroe). +- Sessions: improved worktree delete dialog with linked session details, dirty-change warnings, and optional remote branch removal. +- Git: added gitmoji picker in commit message composer with cached emoji list (thanks to @TaylorBeeston). +- Chat: optimized message loading for opening sessions. +- UI: added one-click diagnostics copy in the About dialog. +- VSCode: tuned layout breakpoint and server readiness timeout for steadier startup. +- Reliability: improved OpenCode process cleanup to reduce orphaned servers. + + ## [1.5.1] - 2026-01-16 - Desktop: fixed orphaned OpenCode processes not being cleaned up on restart or exit. - Opencode: fixed issue with reloading configuration was killing the app + ## [1.5.0] - 2026-01-16 - UI: added a new Files tab to browse workspace files directly from the interface. diff --git a/package.json b/package.json index 637b887c..8af42c21 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "openchamber-monorepo", - "version": "1.5.1", + "version": "1.5.2", "description": "OpenChamber monorepo workspace for web, ui, and desktop runtimes", "private": true, "type": "module", diff --git a/packages/desktop/package.json b/packages/desktop/package.json index c95ee52d..d52aa902 100644 --- a/packages/desktop/package.json +++ b/packages/desktop/package.json @@ -1,6 +1,6 @@ { "name": "@openchamber/desktop", - "version": "1.5.1", + "version": "1.5.2", "private": true, "type": "module", "desktopPrerequisites": [ diff --git a/packages/desktop/src-tauri/Cargo.toml b/packages/desktop/src-tauri/Cargo.toml index b6f45dcf..dc93cd11 100644 --- a/packages/desktop/src-tauri/Cargo.toml +++ b/packages/desktop/src-tauri/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "openchamber-desktop" -version = "1.5.1" +version = "1.5.2" edition = "2021" publish = false diff --git a/packages/desktop/src-tauri/tauri.conf.json b/packages/desktop/src-tauri/tauri.conf.json index 4759c860..54a2c0e8 100644 --- a/packages/desktop/src-tauri/tauri.conf.json +++ b/packages/desktop/src-tauri/tauri.conf.json @@ -1,7 +1,7 @@ { "$schema": "../node_modules/@tauri-apps/cli/schema.json", "productName": "OpenChamber", - "version": "1.5.1", + "version": "1.5.2", "identifier": "ai.opencode.openchamber", "build": { "beforeDevCommand": "bun run dev", diff --git a/packages/ui/package.json b/packages/ui/package.json index 19197bd7..eacbba14 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -1,6 +1,6 @@ { "name": "@openchamber/ui", - "version": "1.5.1", + "version": "1.5.2", "private": true, "type": "module", "main": "src/main.tsx", diff --git a/packages/ui/src/components/sections/openchamber/DefaultsSettings.tsx b/packages/ui/src/components/sections/openchamber/DefaultsSettings.tsx index be425235..9e74cbc8 100644 --- a/packages/ui/src/components/sections/openchamber/DefaultsSettings.tsx +++ b/packages/ui/src/components/sections/openchamber/DefaultsSettings.tsx @@ -5,7 +5,7 @@ import { ModelSelector } from '@/components/sections/agents/ModelSelector'; import { AgentSelector } from '@/components/sections/commands/AgentSelector'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select'; import { updateDesktopSettings } from '@/lib/persistence'; -import { isDesktopRuntime, getDesktopSettings } from '@/lib/desktop'; +import { getDesktopSettings, isDesktopRuntime, isVSCodeRuntime } from '@/lib/desktop'; import { useConfigStore } from '@/stores/useConfigStore'; import { getRegisteredRuntimeAPIs } from '@/contexts/runtimeAPIRegistry'; import { getModifierLabel } from '@/lib/utils'; @@ -58,6 +58,8 @@ export const DefaultsSettings: React.FC = () => { return getDisplayModel(defaultModel, providers); }, [defaultModel, providers]); + const isVSCode = React.useMemo(() => isVSCodeRuntime(), []); + // Load current settings React.useEffect(() => { const loadSettings = async () => { @@ -312,24 +314,26 @@ export const DefaultsSettings: React.FC = () => { )} -
- -

- {settingsAutoCreateWorktree - ? `New session (Worktree): ${getModifierLabel()} + N • New session (Standard): Shift + ${getModifierLabel()} + N` - : `New session (Standard): ${getModifierLabel()} + N • New session (Worktree): Shift + ${getModifierLabel()} + N`} -

-
+ {!isVSCode && ( +
+ +

+ {settingsAutoCreateWorktree + ? `New session (Worktree): ${getModifierLabel()} + N • New session (Standard): Shift + ${getModifierLabel()} + N` + : `New session (Standard): ${getModifierLabel()} + N • New session (Worktree): Shift + ${getModifierLabel()} + N`} +

+
+ )} ); }; diff --git a/packages/ui/src/components/views/GitView.tsx b/packages/ui/src/components/views/GitView.tsx index ebaac58d..4ae04eb7 100644 --- a/packages/ui/src/components/views/GitView.tsx +++ b/packages/ui/src/components/views/GitView.tsx @@ -104,6 +104,7 @@ const writeGitmojiCache = (gitmojis: GitmojiEntry[]) => { }; localStorage.setItem(GITMOJI_CACHE_KEY, JSON.stringify(payload)); } catch { + return; } }; diff --git a/packages/vscode/CHANGELOG.md b/packages/vscode/CHANGELOG.md index 476e7f8a..74f08d38 100644 --- a/packages/vscode/CHANGELOG.md +++ b/packages/vscode/CHANGELOG.md @@ -1,3 +1,10 @@ +## [1.5.2] - 2026-01-17 + +- Chat: optimized message loading for opening sessions. +- Layout: tuned responsive breakpoint and server readiness timeout for steadier startup. +- Reliability: improved OpenCode process cleanup to reduce orphaned servers. + + ## [1.5.1] - 2026-01-16 - No notable changes diff --git a/packages/vscode/package.json b/packages/vscode/package.json index da4eeb3f..81ab268d 100644 --- a/packages/vscode/package.json +++ b/packages/vscode/package.json @@ -2,7 +2,7 @@ "name": "openchamber", "displayName": "OpenChamber", "description": "AI coding assistant powered by OpenCode", - "version": "1.5.1", + "version": "1.5.2", "publisher": "fedaykindev", "private": true, "repository": { diff --git a/packages/vscode/src/opencode.ts b/packages/vscode/src/opencode.ts index d1cd65cf..3f6df012 100644 --- a/packages/vscode/src/opencode.ts +++ b/packages/vscode/src/opencode.ts @@ -85,7 +85,7 @@ function getCandidateBaseUrls(serverUrl: string): string[] { } } -async function waitForReady(serverUrl: string, timeoutMs = 15000, workingDirectory = ''): Promise { +async function waitForReady(serverUrl: string, timeoutMs = 15000): Promise { const start = Date.now(); const candidates = getCandidateBaseUrls(serverUrl); let attempts = 0; @@ -120,10 +120,6 @@ async function waitForReady(serverUrl: string, timeoutMs = 15000, workingDirecto return { ok: false, elapsedMs: Date.now() - start, attempts }; } -function inferApiPrefixFromUrl(): string { - return ''; -} - export function createOpenCodeManager(_context: vscode.ExtensionContext): OpenCodeManager { // Discard unused parameter - reserved for future use (state persistence, subscriptions) void _context; @@ -248,7 +244,7 @@ export function createOpenCodeManager(_context: vscode.ExtensionContext): OpenCo if (server && server.url) { // Validate readiness for the current workspace context. - const ready = await waitForReady(server.url, 10000, workingDirectory); + const ready = await waitForReady(server.url, 10000); lastReadyElapsedMs = ready.elapsedMs; lastReadyAttempts = ready.attempts; if (ready.ok) { @@ -382,7 +378,7 @@ export function createOpenCodeManager(_context: vscode.ExtensionContext): OpenCo } async function setWorkingDirectory(newPath: string): Promise<{ success: boolean; restarted: boolean; path: string }> { - const target = typeof newPath === 'string' && newPath.trim().length > 0 ? newPath.trim() : workspaceDirectory(); + void newPath; const workspacePath = workspaceDirectory(); const nextDirectory = workspacePath; diff --git a/packages/web/package.json b/packages/web/package.json index 59c187fb..c3e6d627 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -1,6 +1,6 @@ { "name": "@openchamber/web", - "version": "1.5.1", + "version": "1.5.2", "private": false, "type": "module", "main": "./server/index.js",