release v1.22.0

This commit is contained in:
Bohdan Triapitsyn
2026-08-30 19:24:09 +03:00
parent b97f2d05bb
commit bdda3c36bc
12 changed files with 20 additions and 15 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@openchamber/electron",
"version": "1.21.1",
"version": "1.22.0",
"private": true,
"description": "Electron desktop runtime for OpenChamber",
"author": "OpenChamber",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@openchamber/ui",
"version": "1.21.1",
"version": "1.22.0",
"private": true,
"type": "module",
"main": "src/main.tsx",
@@ -748,7 +748,11 @@ export const ChatContainer: React.FC<ChatContainerProps> = ({
// One gate per opened session; the scroll hook holds it until the
// viewport is pinned to the end so the first visible frame is already
// at the bottom.
const revealGate = React.useMemo(() => createTimelineRevealGate(), [currentSessionKey]);
const revealGateRef = React.useRef<{ key: string | null; gate: TimelineRevealGate } | null>(null);
if (revealGateRef.current?.key !== currentSessionKey) {
revealGateRef.current = { key: currentSessionKey, gate: createTimelineRevealGate() };
}
const revealGate = revealGateRef.current.gate;
const chatColumnSession = React.useMemo<ChatColumnSession>(
() => ({ sessionId: currentSessionId ?? null, directory: currentSessionId ? effectiveSessionDirectory ?? null : null }),
[currentSessionId, effectiveSessionDirectory],
@@ -962,7 +962,7 @@ const useMorphdomMarkdown = ({
// or re-decorating ordinary blocks.
refreshMermaidViewers();
}
}, [containerRef, text, streaming, imageMode, ctx, refreshMermaidViewers]);
}, [containerRef, text, streaming, imageMode, ctx, refreshMermaidViewers, revealGate]);
React.useEffect(() => () => {
mermaidViewerRef.current?.cleanup();
@@ -29,7 +29,6 @@ import { useGlobalSessionsStore } from '@/stores/useGlobalSessionsStore';
import { streamPerfCount } from '@/stores/utils/streamDebug';
import { useFeatureFlagsStore } from '@/stores/useFeatureFlagsStore';
import { useRuntimeAPIs } from '@/hooks/useRuntimeAPIs';
import { useDesktopWindowControlsLayout } from '@/hooks/useDesktopWindowControlsLayout';
import { ContextUsageDisplay } from '@/components/ui/ContextUsageDisplay';
import { WindowsWindowControls } from '@/components/desktop/WindowsWindowControls';
@@ -49,11 +49,11 @@ export function LinearProjectMapping({
console.error('Failed to load Linear mapping:', error);
setLoadFailed(true);
}
}, [connected, linear, organizationId]);
}, [connected, linear]);
React.useEffect(() => {
void loadMapping();
}, [loadMapping]);
}, [loadMapping, organizationId]);
const saveMapping = React.useCallback(async (next: LinearMappingResult) => {
const teamProjectPaths: { [teamId: string]: string } = {};
+1 -1
View File
@@ -1,4 +1,4 @@
## [Unreleased]
## [1.22.0] - 2026-08-30
- Switching sessions is now visually stable, without conversation jumps or partial rendering.
- Chat: a turn that OpenCode stopped no longer ends with nothing on screen — what OpenCode reported shows under the last message, and a message an idle session has left unanswered is named as such. The status report (Ctrl/Cmd+Shift+L) now lists the last session errors and rejected sends.
+1 -1
View File
@@ -2,7 +2,7 @@
"name": "openchamber",
"displayName": "OpenChamber",
"description": "%extension.description%",
"version": "1.21.1",
"version": "1.22.0",
"publisher": "fedaykindev",
"private": true,
"repository": {
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@openchamber/web",
"version": "1.21.1",
"version": "1.22.0",
"private": false,
"type": "module",
"main": "./server/index.js",