release v1.5.2
This commit is contained in:
@@ -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.
|
||||
|
||||
+1
-1
@@ -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",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@openchamber/desktop",
|
||||
"version": "1.5.1",
|
||||
"version": "1.5.2",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"desktopPrerequisites": [
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "openchamber-desktop"
|
||||
version = "1.5.1"
|
||||
version = "1.5.2"
|
||||
edition = "2021"
|
||||
publish = false
|
||||
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@openchamber/ui",
|
||||
"version": "1.5.1",
|
||||
"version": "1.5.2",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"main": "src/main.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 = () => {
|
||||
</div>
|
||||
)}
|
||||
|
||||
<div className="pt-2">
|
||||
<label className="flex items-center gap-2 cursor-pointer">
|
||||
<input
|
||||
type="checkbox"
|
||||
className="h-3.5 w-3.5 accent-primary"
|
||||
checked={settingsAutoCreateWorktree}
|
||||
onChange={handleAutoWorktreeChange}
|
||||
/>
|
||||
<span className="typography-ui-label text-foreground">
|
||||
Always create worktree for new sessions
|
||||
</span>
|
||||
</label>
|
||||
<p className="typography-meta text-muted-foreground pl-5.5 mt-1">
|
||||
{settingsAutoCreateWorktree
|
||||
? `New session (Worktree): ${getModifierLabel()} + N • New session (Standard): Shift + ${getModifierLabel()} + N`
|
||||
: `New session (Standard): ${getModifierLabel()} + N • New session (Worktree): Shift + ${getModifierLabel()} + N`}
|
||||
</p>
|
||||
</div>
|
||||
{!isVSCode && (
|
||||
<div className="pt-2">
|
||||
<label className="flex items-center gap-2 cursor-pointer">
|
||||
<input
|
||||
type="checkbox"
|
||||
className="h-3.5 w-3.5 accent-primary"
|
||||
checked={settingsAutoCreateWorktree}
|
||||
onChange={handleAutoWorktreeChange}
|
||||
/>
|
||||
<span className="typography-ui-label text-foreground">
|
||||
Always create worktree for new sessions
|
||||
</span>
|
||||
</label>
|
||||
<p className="typography-meta text-muted-foreground pl-5.5 mt-1">
|
||||
{settingsAutoCreateWorktree
|
||||
? `New session (Worktree): ${getModifierLabel()} + N • New session (Standard): Shift + ${getModifierLabel()} + N`
|
||||
: `New session (Standard): ${getModifierLabel()} + N • New session (Worktree): Shift + ${getModifierLabel()} + N`}
|
||||
</p>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
@@ -104,6 +104,7 @@ const writeGitmojiCache = (gitmojis: GitmojiEntry[]) => {
|
||||
};
|
||||
localStorage.setItem(GITMOJI_CACHE_KEY, JSON.stringify(payload));
|
||||
} catch {
|
||||
return;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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": {
|
||||
|
||||
@@ -85,7 +85,7 @@ function getCandidateBaseUrls(serverUrl: string): string[] {
|
||||
}
|
||||
}
|
||||
|
||||
async function waitForReady(serverUrl: string, timeoutMs = 15000, workingDirectory = ''): Promise<ReadyResult> {
|
||||
async function waitForReady(serverUrl: string, timeoutMs = 15000): Promise<ReadyResult> {
|
||||
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;
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@openchamber/web",
|
||||
"version": "1.5.1",
|
||||
"version": "1.5.2",
|
||||
"private": false,
|
||||
"type": "module",
|
||||
"main": "./server/index.js",
|
||||
|
||||
Reference in New Issue
Block a user