release v1.2.9

This commit is contained in:
Bohdan Triapitsyn
2025-12-20 02:44:46 +02:00
parent f144eff46e
commit 83b4509cd8
13 changed files with 35 additions and 19 deletions
+7
View File
@@ -4,6 +4,13 @@ All notable changes to this project will be documented in this file.
## [Unreleased]
## [1.2.9] - 2025-12-20
- Session autocleanup feature with configurable retention for each app version including VSCode extension
- Ability to update web package from mobile/PWA view in setting
- A lot of different optimization for a long sessions
## [1.2.8] - 2025-12-19
- Introduced update mechanism for web version that doesn't need any cli interaction
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "openchamber-monorepo",
"version": "1.2.8",
"version": "1.2.9",
"description": "OpenChamber monorepo workspace for web, ui, and desktop runtimes",
"private": true,
"type": "module",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@openchamber/desktop",
"version": "1.2.8",
"version": "1.2.9",
"private": true,
"type": "module",
"desktopPrerequisites": [
+1 -1
View File
@@ -1,6 +1,6 @@
[package]
name = "openchamber-desktop"
version = "1.2.8"
version = "1.2.9"
edition = "2021"
publish = false
+1 -1
View File
@@ -1,7 +1,7 @@
{
"$schema": "../node_modules/@tauri-apps/cli/schema.json",
"productName": "OpenChamber",
"version": "1.2.8",
"version": "1.2.9",
"identifier": "ai.opencode.openchamber",
"build": {
"beforeDevCommand": "pnpm dev",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@openchamber/ui",
"version": "1.2.8",
"version": "1.2.9",
"private": true,
"type": "module",
"main": "src/main.tsx",
@@ -24,7 +24,7 @@ export const SessionRetentionSettings: React.FC = () => {
setMobileDraftDays(String(autoDeleteAfterDays));
}, [autoDeleteAfterDays]);
const { candidates, isRunning, runCleanup, keepRecentCount } = useSessionAutoCleanup({ autoRun: false });
const { candidates, isRunning, runCleanup } = useSessionAutoCleanup({ autoRun: false });
const pendingCount = candidates.length;
const handleRunCleanup = React.useCallback(async () => {
+1 -1
View File
@@ -2,7 +2,7 @@
"name": "openchamber",
"displayName": "OpenChamber",
"description": "AI coding assistant powered by OpenCode",
"version": "1.2.8",
"version": "1.2.9",
"publisher": "fedaykindev",
"private": true,
"repository": {
+3 -3
View File
@@ -1,4 +1,4 @@
import type { RuntimeAPIs, TerminalAPI, GitAPI, NotificationsAPI } from '@openchamber/ui/lib/api/types';
import type { RuntimeAPIs, TerminalAPI, GitAPI, NotificationsAPI, GitIdentityProfile } from '../../../ui/src/lib/api/types';
import { createVSCodeFilesAPI } from './files';
import { createVSCodeSettingsAPI } from './settings';
import { createVSCodePermissionsAPI } from './permissions';
@@ -40,8 +40,8 @@ const createStubGitAPI = (): GitAPI => ({
getCurrentGitIdentity: async () => null,
setGitIdentity: async () => ({ success: false, profile: { id: '', name: '', userName: '', userEmail: '' } }),
getGitIdentities: async () => [],
createGitIdentity: async (p) => p,
updateGitIdentity: async (_, p) => p,
createGitIdentity: async (profile: GitIdentityProfile) => profile,
updateGitIdentity: async (_id: string, profile: GitIdentityProfile) => profile,
deleteGitIdentity: async () => {},
});
+1 -1
View File
@@ -1,4 +1,4 @@
import type { SettingsAPI, SettingsLoadResult, SettingsPayload } from '@openchamber/ui/lib/api/types';
import type { SettingsAPI, SettingsLoadResult, SettingsPayload } from '../../../ui/src/lib/api/types';
// Use same endpoints as web - fetch interceptor handles URL rewriting
const SETTINGS_ENDPOINT = '/api/config/settings';
+4 -3
View File
@@ -1,12 +1,12 @@
import { createVSCodeAPIs } from './api';
import { onThemeChange, sendBridgeMessage } from './api/bridge';
import type { RuntimeAPIs } from '@openchamber/ui/lib/api/types';
import type { RuntimeAPIs } from '../../ui/src/lib/api/types';
import {
buildVSCodeThemeFromPalette,
readVSCodeThemePalette,
type VSCodeThemeKind,
type VSCodeThemePayload,
} from '@openchamber/ui/lib/theme/vscode/adapter';
} from '../../ui/src/lib/theme/vscode/adapter';
type ConnectionStatus = 'connecting' | 'connected' | 'error' | 'disconnected';
@@ -22,6 +22,7 @@ declare global {
__OPENCHAMBER_VSCODE_THEME__?: VSCodeThemePayload['theme'];
__OPENCHAMBER_VSCODE_SHIKI_THEMES__?: { light?: Record<string, unknown>; dark?: Record<string, unknown> } | null;
__OPENCHAMBER_CONNECTION__?: { status: ConnectionStatus; error?: string };
__OPENCHAMBER_HOME__?: string;
}
}
@@ -298,4 +299,4 @@ window.fetch = async (input: RequestInfo | URL, init?: RequestInit) => {
return originalFetch(input as RequestInfo, init);
};
import('@openchamber/ui/main');
import('../../ui/src/main');
+12 -4
View File
@@ -296,15 +296,23 @@ export const useChatStore = create<ChatState>((set, get) => ({
try {
// Add user message optimistically
const messageId = `temp-${Date.now()}`;
const partId = `part-${messageId}`;
const userPart: Part = {
id: partId,
sessionID: currentSessionId,
messageID: messageId,
type: 'text',
text: content,
} as Part;
const userMessage: MessageRecord = {
info: {
id: `temp-${Date.now()}`,
sessionId: currentSessionId,
id: messageId,
sessionID: currentSessionId,
role: 'user',
parts: [{ type: 'text', text: content }],
time: { created: Date.now() },
} as Message,
parts: [{ type: 'text', text: content }],
parts: [userPart],
};
const currentMessages = messages.get(currentSessionId) || [];
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@openchamber/web",
"version": "1.2.8",
"version": "1.2.9",
"private": false,
"type": "module",
"main": "./server/index.js",