From 2382c6e82ae305a54a833402195c516a013ba5fc Mon Sep 17 00:00:00 2001 From: Bohdan Triapitsyn Date: Fri, 9 Jan 2026 00:01:22 +0200 Subject: [PATCH] release v1.4.5 --- CHANGELOG.md | 2 ++ package.json | 2 +- packages/desktop/package.json | 2 +- packages/desktop/src-tauri/Cargo.toml | 2 +- packages/desktop/src-tauri/tauri.conf.json | 2 +- packages/ui/package.json | 2 +- .../chat/AgentMentionAutocomplete.tsx | 10 ++++---- .../ui/src/components/mcp/McpDropdown.tsx | 6 ----- packages/ui/src/stores/useSkillsStore.ts | 23 +++++++++++++++---- packages/vscode/package.json | 2 +- packages/web/package.json | 2 +- 11 files changed, 32 insertions(+), 23 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9c0d1c1e..ad761e42 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ All notable changes to this project will be documented in this file. ## [Unreleased] +## [1.4.5] - 2026-01-08 + - Chat: added support for model variants (thinking effort). - Shortcuts: Switched agent cycling shortcut from TAB to Shift + TAB. - Skills: added autocomplete for skills on "/" when it is not the first character in input. diff --git a/package.json b/package.json index 013e28b3..38823be5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "openchamber-monorepo", - "version": "1.4.4", + "version": "1.4.5", "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 4208a0a6..4e6318ae 100644 --- a/packages/desktop/package.json +++ b/packages/desktop/package.json @@ -1,6 +1,6 @@ { "name": "@openchamber/desktop", - "version": "1.4.4", + "version": "1.4.5", "private": true, "type": "module", "desktopPrerequisites": [ diff --git a/packages/desktop/src-tauri/Cargo.toml b/packages/desktop/src-tauri/Cargo.toml index 430ff603..c26fb050 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.4.4" +version = "1.4.5" edition = "2021" publish = false diff --git a/packages/desktop/src-tauri/tauri.conf.json b/packages/desktop/src-tauri/tauri.conf.json index d171f847..5446bb82 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.4.4", + "version": "1.4.5", "identifier": "ai.opencode.openchamber", "build": { "beforeDevCommand": "bun run dev", diff --git a/packages/ui/package.json b/packages/ui/package.json index 4b682b91..2ff7a2d2 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -1,6 +1,6 @@ { "name": "@openchamber/ui", - "version": "1.4.4", + "version": "1.4.5", "private": true, "type": "module", "main": "src/main.tsx", diff --git a/packages/ui/src/components/chat/AgentMentionAutocomplete.tsx b/packages/ui/src/components/chat/AgentMentionAutocomplete.tsx index d3c9dea5..e4deed36 100644 --- a/packages/ui/src/components/chat/AgentMentionAutocomplete.tsx +++ b/packages/ui/src/components/chat/AgentMentionAutocomplete.tsx @@ -1,7 +1,7 @@ import React from 'react'; import { cn, fuzzyMatch } from '@/lib/utils'; import { useConfigStore } from '@/stores/useConfigStore'; -import { useAgentsStore } from '@/stores/useAgentsStore'; +import { useAgentsStore, isAgentBuiltIn, type AgentWithExtras } from '@/stores/useAgentsStore'; import { ScrollableOverlay } from '@/components/ui/ScrollableOverlay'; interface AgentInfo { @@ -52,13 +52,13 @@ export const AgentMentionAutocomplete = React.forwardRef isMentionable(agent.mode)) .map((agent) => { - const metadata = agentsWithMetadata.find(a => a.name === agent.name); + const metadata = agentsWithMetadata.find(a => a.name === agent.name) as (AgentWithExtras & { scope?: string }) | undefined; return { name: agent.name, description: agent.description, mode: agent.mode ?? undefined, - scope: (metadata as any)?.scope, - isBuiltIn: (metadata as any)?.native || (metadata as any)?.builtIn, + scope: metadata?.scope, + isBuiltIn: metadata ? isAgentBuiltIn(metadata) : false, }; }); @@ -71,7 +71,7 @@ export const AgentMentionAutocomplete = React.forwardRef { itemRefs.current[selectedIndex]?.scrollIntoView({ diff --git a/packages/ui/src/components/mcp/McpDropdown.tsx b/packages/ui/src/components/mcp/McpDropdown.tsx index 3bb79e9d..72b81970 100644 --- a/packages/ui/src/components/mcp/McpDropdown.tsx +++ b/packages/ui/src/components/mcp/McpDropdown.tsx @@ -84,12 +84,6 @@ export const McpDropdown: React.FC = ({ headerIconButtonClass setTooltipOpen(isOpen); }, []); - const directoryKey = React.useMemo(() => { - const normalized = typeof directory === 'string' ? directory.replace(/\\/g, '/').replace(/\/+$/, '') : ''; - return normalized.length > 0 ? normalized : '__global__'; - }, [directory]); - - const isLoading = useMcpStore((state) => Boolean(state.loadingKeys[directoryKey])); const [isSpinning, setIsSpinning] = React.useState(false); const [busyName, setBusyName] = React.useState(null); diff --git a/packages/ui/src/stores/useSkillsStore.ts b/packages/ui/src/stores/useSkillsStore.ts index 18d18ba1..c14abad5 100644 --- a/packages/ui/src/stores/useSkillsStore.ts +++ b/packages/ui/src/stores/useSkillsStore.ts @@ -65,6 +65,19 @@ export interface DiscoveredSkill { description?: string; } +// Raw skill response from API before transformation +interface RawSkillResponse { + name: string; + path: string; + scope?: SkillScope; + source?: SkillSource; + sources?: { + md?: { + description?: string; + }; + }; +} + export interface SkillConfig { name: string; description: string; @@ -155,14 +168,14 @@ export const useSkillsStore = create()( } const data = await response.json(); - const rawSkills = data.skills || []; - const skills = rawSkills.map((s: any) => ({ + const rawSkills: RawSkillResponse[] = data.skills || []; + const skills: DiscoveredSkill[] = rawSkills.map((s) => ({ name: s.name, path: s.path, - scope: s.scope, - source: s.source, + scope: s.scope ?? 'user', + source: s.source ?? 'opencode', description: s.sources?.md?.description || '', - })) as DiscoveredSkill[]; + })); set({ skills, isLoading: false }); return true; diff --git a/packages/vscode/package.json b/packages/vscode/package.json index c2110814..63679370 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.4.4", + "version": "1.4.5", "publisher": "fedaykindev", "private": true, "repository": { diff --git a/packages/web/package.json b/packages/web/package.json index 4efadac3..7ae97bf7 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -1,6 +1,6 @@ { "name": "@openchamber/web", - "version": "1.4.4", + "version": "1.4.5", "private": false, "type": "module", "main": "./server/index.js",