release v1.2.9
This commit is contained in:
@@ -4,6 +4,13 @@ All notable changes to this project will be documented in this file.
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
## [1.2.9] - 2025-12-20
|
||||
|
||||
- Session auto‑cleanup 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
@@ -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,6 +1,6 @@
|
||||
{
|
||||
"name": "@openchamber/desktop",
|
||||
"version": "1.2.8",
|
||||
"version": "1.2.9",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"desktopPrerequisites": [
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "openchamber-desktop"
|
||||
version = "1.2.8"
|
||||
version = "1.2.9"
|
||||
edition = "2021"
|
||||
publish = false
|
||||
|
||||
|
||||
@@ -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,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 () => {
|
||||
|
||||
@@ -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": {
|
||||
|
||||
@@ -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,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';
|
||||
|
||||
@@ -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');
|
||||
|
||||
@@ -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,6 +1,6 @@
|
||||
{
|
||||
"name": "@openchamber/web",
|
||||
"version": "1.2.8",
|
||||
"version": "1.2.9",
|
||||
"private": false,
|
||||
"type": "module",
|
||||
"main": "./server/index.js",
|
||||
|
||||
Reference in New Issue
Block a user