diff --git a/bun.lock b/bun.lock index b3234d02..7c0efe1a 100644 --- a/bun.lock +++ b/bun.lock @@ -33,7 +33,7 @@ "@ibm/plex": "^6.4.1", "@lezer/highlight": "^1.2.3", "@octokit/rest": "^22.0.1", - "@opencode-ai/sdk": "^1.4.19", + "@opencode-ai/sdk": "^1.4.25", "@radix-ui/react-collapsible": "^1.1.12", "@radix-ui/react-dialog": "^1.1.15", "@radix-ui/react-dropdown-menu": "^2.1.16", @@ -95,7 +95,7 @@ }, "packages/desktop": { "name": "@openchamber/desktop", - "version": "1.9.6", + "version": "1.9.8", "devDependencies": { "@tauri-apps/cli": "^2", "@types/node": "^24.3.1", @@ -104,7 +104,7 @@ }, "packages/electron": { "name": "@openchamber/electron", - "version": "1.9.6", + "version": "1.9.8", "dependencies": { "@openchamber/web": "workspace:*", "electron-context-menu": "^4.1.2", @@ -119,7 +119,7 @@ }, "packages/ui": { "name": "@openchamber/ui", - "version": "1.9.6", + "version": "1.9.8", "dependencies": { "@base-ui/react": "^1.4.0", "@codemirror/autocomplete": "^6.20.0", @@ -150,7 +150,7 @@ "@fontsource/ibm-plex-sans": "^5.1.1", "@ibm/plex": "^6.4.1", "@lezer/highlight": "^1.2.3", - "@opencode-ai/sdk": "^1.4.19", + "@opencode-ai/sdk": "^1.4.25", "@pierre/diffs": "1.1.0-beta.13", "@remixicon/react": "^4.7.0", "@simplewebauthn/browser": "13.3.0", @@ -218,10 +218,10 @@ }, "packages/vscode": { "name": "openchamber", - "version": "1.9.6", + "version": "1.9.8", "dependencies": { "@openchamber/ui": "workspace:*", - "@opencode-ai/sdk": "^1.4.19", + "@opencode-ai/sdk": "^1.4.25", "adm-zip": "^0.5.16", "jsonc-parser": "^3.3.1", "react": "^19.1.1", @@ -241,14 +241,14 @@ }, "packages/web": { "name": "@openchamber/web", - "version": "1.9.6", + "version": "1.9.8", "bin": { "openchamber": "./bin/cli.js", }, "dependencies": { "@clack/prompts": "^1.1.0", "@octokit/rest": "^22.0.1", - "@opencode-ai/sdk": "^1.4.19", + "@opencode-ai/sdk": "^1.4.25", "@simplewebauthn/server": "13.3.0", "adm-zip": "^0.5.16", "better-sqlite3": "^11.7.0", diff --git a/package.json b/package.json index 360b0dc3..1a4fc74d 100644 --- a/package.json +++ b/package.json @@ -94,7 +94,7 @@ "@ibm/plex": "^6.4.1", "@lezer/highlight": "^1.2.3", "@octokit/rest": "^22.0.1", - "@opencode-ai/sdk": "^1.4.19", + "@opencode-ai/sdk": "^1.4.25", "@base-ui/react": "^1.4.0", "@radix-ui/react-collapsible": "^1.1.12", "@radix-ui/react-dialog": "^1.1.15", diff --git a/packages/ui/package.json b/packages/ui/package.json index 5ba98343..d7fd49f0 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -39,7 +39,7 @@ "@fontsource/ibm-plex-sans": "^5.1.1", "@ibm/plex": "^6.4.1", "@lezer/highlight": "^1.2.3", - "@opencode-ai/sdk": "^1.4.19", + "@opencode-ai/sdk": "^1.4.25", "@pierre/diffs": "1.1.0-beta.13", "@base-ui/react": "^1.4.0", "@remixicon/react": "^4.7.0", diff --git a/packages/ui/src/assets/icons/file-types/json.svg b/packages/ui/src/assets/icons/file-types/json.svg index 2590b943..9200a609 100644 --- a/packages/ui/src/assets/icons/file-types/json.svg +++ b/packages/ui/src/assets/icons/file-types/json.svg @@ -1 +1 @@ - \ No newline at end of file + diff --git a/packages/ui/src/assets/icons/file-types/sprite.svg b/packages/ui/src/assets/icons/file-types/sprite.svg index c46adade..fcfbfb0d 100644 --- a/packages/ui/src/assets/icons/file-types/sprite.svg +++ b/packages/ui/src/assets/icons/file-types/sprite.svg @@ -4533,10 +4533,10 @@ - - + + - + diff --git a/packages/ui/src/components/chat/ModelControls.tsx b/packages/ui/src/components/chat/ModelControls.tsx index d338e288..cb5d8fa3 100644 --- a/packages/ui/src/components/chat/ModelControls.tsx +++ b/packages/ui/src/components/chat/ModelControls.tsx @@ -2409,9 +2409,24 @@ export const ModelControls: React.FC = ({ {/* Keyboard hints footer */}
- {t('chat.modelControls.keyboardHint', { - thinking: highlightedSupportsThinking ? ` • ${t('chat.modelControls.keyboardHintThinking')}` : '', - })} + {(() => { + const thinkingMarker = '__MODEL_THINKING_HINT__'; + const thinkingHint = ` • ${t('chat.modelControls.keyboardHintThinking')}`; + const hintParts = t('chat.modelControls.keyboardHint', { thinking: thinkingMarker }).split(thinkingMarker); + + return ( + <> + {hintParts[0]} + + {thinkingHint} + + {hintParts[1]} + + ); + })()}
diff --git a/packages/ui/src/components/chat/StatusRow.tsx b/packages/ui/src/components/chat/StatusRow.tsx index 7a329b6e..80556e52 100644 --- a/packages/ui/src/components/chat/StatusRow.tsx +++ b/packages/ui/src/components/chat/StatusRow.tsx @@ -233,6 +233,10 @@ export const StatusRow: React.FC = ({ }, [isExpanded]); const toggleExpanded = () => setIsExpanded((prev) => !prev); + const todoSummaryLabel = t('chat.statusRow.summary.activeLeft', { + active: statusSummary.active, + left: statusSummary.left, + }); // Abort button for mobile/vscode const abortButton = showAbort && onAbort ? ( @@ -252,6 +256,8 @@ export const StatusRow: React.FC = ({ type="button" onClick={toggleExpanded} className="flex items-center gap-1 flex-shrink-0 text-muted-foreground" + aria-label={todoSummaryLabel} + title={todoSummaryLabel} > {/* Desktop: show task text; Mobile/VSCode: just "Tasks" */} {!isCompact && activeTodo ? ( @@ -261,8 +267,16 @@ export const StatusRow: React.FC = ({ ) : ( {t('chat.statusRow.tasksTitle')} )} - - {t('chat.statusRow.summary.activeLeft', { active: statusSummary.active, left: statusSummary.left })} + {isExpanded ? ( diff --git a/packages/vscode/package.json b/packages/vscode/package.json index 8f5925dd..fa2e98ad 100644 --- a/packages/vscode/package.json +++ b/packages/vscode/package.json @@ -243,7 +243,7 @@ }, "dependencies": { "@openchamber/ui": "workspace:*", - "@opencode-ai/sdk": "^1.4.19", + "@opencode-ai/sdk": "^1.4.25", "adm-zip": "^0.5.16", "jsonc-parser": "^3.3.1", "react": "^19.1.1", diff --git a/packages/web/package.json b/packages/web/package.json index 82a124a5..bd302084 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -25,7 +25,7 @@ "dependencies": { "@clack/prompts": "^1.1.0", "@octokit/rest": "^22.0.1", - "@opencode-ai/sdk": "^1.4.19", + "@opencode-ai/sdk": "^1.4.25", "@simplewebauthn/server": "13.3.0", "adm-zip": "^0.5.16", "better-sqlite3": "^11.7.0",