Commit Graph
152 Commits
Author SHA1 Message Date
Bohdan Triapitsyn 18c5b4c7b5 feat: add multi-project support (#110)
* feat: Implement project management store with project path validation and synchronization

- Added `useProjectsStore` for managing projects, including adding, removing, renaming, and validating project paths.
- Implemented persistence for projects and active project ID using safe storage.
- Introduced synchronization from desktop settings to keep project data consistent.
- Enhanced session store to manage sessions by directory and added new methods for session management.
- Updated todo store to fetch session todos based on the directory context.
- Refactored server code to validate and resolve project directories for various API endpoints.
- Added project entry validation and sanitization to ensure data integrity.

* feat(settings): migrate legacy project settings and update settings loading logic

* feat: enhance project management with directory-aware settings and improved agent/command source handling

* feat: enhance session and project management with directory-aware settings and improved configuration refresh logic

* feat: enhance project management with worktree manager integration and project directory resolution

* feat: enhance agent groups store with project directory resolution and loading logic

* feat: add heartbeat management and global wrapping for SSE blocks in agent and chat providers

* feat: refactor command and project handling in useCommandsStore

- Replaced useDirectoryStore with useProjectsStore to manage project paths.
- Introduced getRequestDirectory function to determine the active project directory.
- Updated command fetching to respect project-level scoping.
- Enhanced error handling and logging for command configuration fetching.
- Improved command configuration saving and updating to utilize project directory context.

feat: enhance project path normalization in useProjectsStore

- Added resolveTildePath function to expand paths starting with ~.
- Updated normalizeProjectPath to utilize home directory for path expansion.

fix: update permission handling in useSessionStore

- Changed Permission type to PermissionRequest for clarity.
- Updated respondToPermission method to use requestId instead of permissionId.

refactor: improve permission utilities

- Introduced types for PermissionAction and PermissionRule.
- Enhanced getAgentDefinition and resolveConfigStore functions for better type safety.
- Added resolvePermissionAction to streamline permission resolution logic.

feat: add agent configuration retrieval endpoint

- Implemented new API endpoint to fetch agent configuration based on project directory.
- Enhanced getAgentPermissionSource to prioritize project-level permissions.

chore: update SDK version in package.json files

- Bumped @opencode-ai/sdk version to ^1.1.1 across all relevant package.json files.

refactor: streamline bridge message handling

- Updated handleBridgeMessage to accept directory parameter for agent and command requests.
- Improved local API request handling to extract directory from query parameters and headers.

feat: enhance project configuration management

- Added functions to retrieve and merge project configuration paths.
- Improved handling of existing project configuration files for agents and commands.

* feat: enhance VSCode integration and session management

- Added support for a sticky sidebar header background in light and dark themes.
- Introduced functions to read VSCode workspace directory and check if running in VSCode.
- Implemented detailed logging for session loading and creation processes.
- Enhanced session filtering based on directory structure and canonical paths.
- Added a new method to reorder projects and prevent modifications in VSCode workspace.
- Improved error handling and logging for app initialization and markdown file parsing.
- Updated API checks and health checks to ensure readiness before proceeding.
- Refactored code for better readability and maintainability across various modules.

* feat: improve agent and branch selection logic, enhance session management, and update multi-run creation response

* feat: add worktree management actions in agent group detail and sidebar, including delete and keep only options

* fix(ui): share IME guard and cover multi-run

* fix(session): reduce maximum visible sessions in group from 7 to 5
2026-01-06 21:31:04 +02:00
wienans af01995c3b feat(vscode): Delete Agent Group (#109) 2026-01-06 19:46:25 +02:00
wienans b0bfa739e1 feat(multi-run): Agent Selector (#103)
* Add Agent Selector

* Send on Enter

* Allow multi run with 1 Model for Agent Manager

* Update packages/ui/src/stores/useMultiRunStore.ts

* Update Changelog
2026-01-04 16:53:44 +02:00
Bohdan Triapitsyn 8965d7841e fix(agent-manager): fetch sessions from worktree directories 2026-01-04 00:11:42 +02:00
Bohdan Triapitsyn 98fee8a8c0 fix(vscode): improve extension activation and error handling 2026-01-03 23:37:08 +02:00
wienans 0bccf71996 feat(vscode) Agent Manager (#87)
* Add Agent Manager

* Basic Mock UP

* Fix Comand naming Ctrl+P Uses Category to group

* Move the UI in views

* Agent Manager Landing Page

* Fix attachment buig

* Change Session Name for multi run to incoporate groupSlug

* First running UI

* Fix Max Model Multi Run

* Rework Agent Group detection

* ignore false positives with ' ' in it

* Simplify Logic

* remove unused dropdowns

* Clean up

* Update Changelog
2026-01-03 23:11:16 +02:00
Bohdan Triapitsyn f2507d58cf feat: migrate to OpenCode SDK v2
Update all import statements to use @opencode-ai/sdk/v2
Modify Vite configurations to alias new SDK path
Update API client method signatures for SDK v2 compatibility
2026-01-03 13:39:59 +02:00
aptdnfapt 025a9a6b80 feat: implement Undo/Redo/Timeline and Fork Features and fixed opencode.json reading issue on broken json (#99)
* feat: add /undo, /redo, /timeline slash commands and fork button

- Add /undo command to revert to previous user message
- Add /redo command to redo previously undone messages
- Add /timeline command to show conversation history
- Add fork button on user messages (hover) to create new session
- Add TimelineDialog component for navigating conversation history
- Show undo/redo/timeline in autocomplete when session exists
- Fix fork to use SDK session.fork API
- Silent no-op behavior for undo/redo when no messages (matches OpenCode CLI)

* fix: correct fork session endpoint and session switching

- Add hybrid SDK approach using v1 for existing methods and v2 for fork only
- v2 SDK has correct endpoint /session/{sessionID}/fork instead of broken /session/{id}/fork
- Fix forkFromMessage to use setCurrentSession instead of direct set
- Ensures both useSessionStore and useSessionManagementStore are consistent
- Fixes issue where forked sessions appeared empty until sending a new message

* fix: use direct fetch for fork to avoid v2 SDK build errors

- Remove v2 SDK imports and hybrid SDK approach
- Use direct fetch() call to /api/session/{sessionID}/fork endpoint
- Avoids type conflicts between v1 and v2 SDK
- Bypasses broken v1 SDK fork endpoint (wrong path parameter)
- All codebase now uses v1 SDK consistently

* fix: use jsonc-parser for config file parsing

- Replace strip-json-comments + JSON.parse with jsonc-parser
- Handles comments, trailing commas, and unquoted keys
- Matches OpenCode CLI config parsing behavior
- Fixes SyntaxError when reading global opencode.json config

* feat: improve timeline dialog with loading state and search

- Add loading spinner on fork button during operation (~30s on big sessions)
- Refresh session list after fork so new session appears in sidebar immediately
- Add search bar to filter messages by prompt text content
- Show 'No messages found' when search has no results
- Disable fork button while forking to prevent duplicate operations
2026-01-03 01:33:35 +02:00
Bohdan Triapitsyn 32c83f0c10 feat(multirun): enforce maximum model selection limit and update UI hints 2026-01-02 22:03:10 +02:00
Bohdan Triapitsyn 110b0e5d8f feat(terminal) refactoring and stability improvements (#98)
* feat(terminal): replace xterm with ghostty-web

Replace xterm.js terminal with ghostty-web implementation
Add terminal serialization support for state restoration
Apply custom patches to ghostty-web for enhancements

* feat(terminal): add bun-pty backend support

Switch terminal to ghostty-web with bun-pty backend for better performance
Auto-detect and prefer Bun runtime when available for terminal sessions
Update terminal viewport write queue handling for improved reliability

* fix(terminal): prevent unnecessary resize events

Only report terminal resize when dimensions actually change
Simplify chunk processing state tracking
Disable terminal transparency for consistent rendering

* feat(terminal): increase scrollback and buffer limits

Increase terminal scrollback buffer from 10k to 50k lines
Increase terminal buffer limit from 256k to 1M bytes
Add rate limiting and improve output handling for terminal streams
2026-01-02 21:57:53 +02:00
Bohdan Triapitsyn d58beb5c6c feat(multirun): allow selecting the same model multiple times for comparison
Add file attachment support to multi-run launcher
Show instance indices for duplicate model selections
2026-01-02 14:18:40 +02:00
Bohdan Triapitsyn 07ad3eaa3a feat: mprove model selector with search and keyboard navigation
Add Ctrl+M keyboard shortcut to open model selector
Use desktop dropdowns in VSCode runtime instead of mobile panels
2026-01-02 13:08:21 +02:00
Bohdan Triapitsyn 10e64b4f90 feat: add ability to run multiple agents from one prompt in isolated worktrees (#91)
* feat: WIP multirun implementation

* feat(chat): replace MindMap icon with ArrowsMerge

* feat(multirun): add base branch selection for worktrees

* feat(mobile): add multi-run launcher overlay
2026-01-01 14:59:51 +02:00
aurorafluxandauroraflux 39b9f985ce feat: add input bar offset setting for curved screen devices (#89)
Co-authored-by: auroraflux <auroraflux@users.noreply.github.com>
2026-01-01 11:01:46 +02:00
Bohdan Triapitsyn a236dc81c9 feat(skills-catalog): implement caching, curated sources, git operations, and skill installation 2025-12-30 21:03:25 +02:00
Bohdan Triapitsyn 2c833cef40 feat: Implement skill management functionality
- Added skill scope helpers and CRUD operations for skills in opencodeConfig.ts.
- Introduced API endpoints for skill management in main.tsx and index.js.
- Enhanced server-side logic to support skill discovery, creation, updating, and deletion.
- Implemented supporting file operations for skills, including reading, writing, and deleting files.
- Updated package.json to use the latest version of @opencode-ai/sdk.
2025-12-30 17:36:52 +02:00
Bohdan Triapitsyn 0f9c50cd58 fix: suppress logging for agent scope fetch and configuration updates 2025-12-29 23:58:33 +02:00
Bohdan Triapitsyn c4b9c18c24 feat: enhance agent management with project-level support
- Added support for project-level agents, allowing agents to be created, updated, and deleted within a specified working directory.
- Introduced `getAgentScope` function to determine the scope of agents based on their existence in project or user directories.
- Updated `getAgentSources`, `createAgent`, `updateAgent`, and `deleteAgent` functions to handle project-level paths and configurations.
- Enhanced logging to provide clearer information about agent operations, including scope and working directory.
- Refactored configuration reading and writing to accommodate project-specific configurations alongside user-level settings.
2025-12-29 22:42:10 +02:00
Bohdan Triapitsyn 0adcba854b feat: add command scope support and reload functionality
- Introduced command scope types (user and project) to manage command configurations at different levels.
- Enhanced command management functions to check and create commands based on their scope.
- Updated the API to handle command creation, updates, and deletions with respect to their scope.
- Added a reload button in the AboutSettings component to refresh OpenCode configuration.
- Improved command source retrieval to prioritize project-level commands over user-level commands.
- Refactored related functions to ensure proper handling of command paths and configurations based on scope.
2025-12-29 17:48:06 +02:00
Bohdan Triapitsyn 9b4283d618 feat: add active turn anchor management for improved scroll position handling 2025-12-29 12:12:52 +02:00
Bohdan Triapitsyn 66428cbded feat: add message queue functionality with auto-send and queue mode toggle
- Improved development server hot module replacement (HMR) by reusing OpenCode processes.
- Introduced queued message mode with batching and idle auto-send, including support for attachments.
- Added a toggle for queue mode in OpenChamber settings with persistence across sessions.
- Updated various components to handle queued messages, including ChatInput and QueuedMessageChips.
- Modified settings payload and desktop settings to include queue mode configuration.
- Enhanced message sending logic to support additional parts for queued messages.
2025-12-29 02:16:42 +02:00
Bohdan Triapitsyn 4d7340bf49 feat: update message handling to use 'finish' property for step completion logic 2025-12-27 15:51:28 +02:00
Bohdan Triapitsyn 8f9facb561 feat: added providers management settings with ability to add or remove providers (#76)
* feat: implement adding opencode providers in openchamber settings

* feat: implement provider authentication management with removal functionality
2025-12-27 02:22:59 +02:00
Bohdan Triapitsyn 48f1e3ef0f feat(settings): add default model and agent settings with UI integration 2025-12-26 04:38:38 +02:00
Bohdan Triapitsyn 91a4e7d049 fix(session): prevent listing non-existent worktree directory 2025-12-26 01:37:37 +02:00
Bohdan Triapitsyn 2080ce6d65 fix(config): add retry logic for provider loading 2025-12-25 23:57:03 +02:00
Bohdan Triapitsyn 508d0d1b4d feat: update git commands and improve diff loading with timeout handling 2025-12-25 16:55:37 +02:00
Bohdan Triapitsyn eb8355b37e feat: reduce debug logging with conditional output based on streamDebugEnabled 2025-12-25 03:33:24 +02:00
Bohdan Triapitsyn 5e6e6a91cf feat: enhance session activity tracking with directory support and cooldown logic 2025-12-25 02:38:38 +02:00
Bohdan Triapitsyn 2d45abdc32 fix: reduce image thumbnails, refactor WorkingPlaceholder state machine, expand debug utilities 2025-12-24 03:32:24 +02:00
Bohdan Triapitsyn 5a0a13b71c fix: message metadata and agent selection 2025-12-24 03:26:41 +02:00
Bohdan Triapitsyn 34fea1c6b7 release v1.3.2 2025-12-22 02:31:43 +02:00
Bohdan Triapitsyn 7699aab123 feat(chat): delay session creation until first message
The app now opens to a new chat by default on startup
New chats no longer create a session until you send your first message
Fixed mobile and VSCode sessions handling for better consistency
2025-12-21 20:18:51 +02:00
Bohdan Triapitsyn ac53ec0bdc feat(chat): add revert to previous message
Add revert button on user messages except first message
Restore reverted message text to input field
Filter out messages after revert point
2025-12-21 00:47:43 +02:00
Bohdan Triapitsyn f144eff46e feat: enhance message handling with deduplication and resync functionality 2025-12-20 02:34:01 +02:00
Bohdan Triapitsyn 53c103a222 feat: add session auto-cleanup settings and functionality 2025-12-20 02:06:00 +02:00
Bohdan Triapitsyn 79ed6abab7 feat: implement update management system with new update store and UI components 2025-12-20 01:04:32 +02:00
Bohdan Triapitsyn bddb174bd3 feat: add about dialog with custom information 2025-12-19 18:59:08 +02:00
Bohdan Triapitsyn 78e0c47bf9 fix(chat): improve performance for longer sessions 2025-12-19 00:13:46 +02:00
Bohdan Triapitsyn e6b07a0563 fix: filter hidden internal agents from UI and updated sdk version 2025-12-18 19:02:42 +02:00
Bohdan Triapitsyn 60dea43cc3 feat: optimize diff loading performance with background pre-fetching 2025-12-17 16:16:28 +02:00
Bohdan Triapitsyn c87815a2a6 feat: enhance UI components, update theme handling, and improve tool expansion logic for better performance 2025-12-16 13:14:28 +02:00
Bohdan Triapitsyn 8f6e6db5c5 feat: implement todo tracking with collapsible status row and update event handling 2025-12-16 02:34:29 +02:00
theblazehen 235f80643e feat: add UI customization and model management features (#60)
* feat: add UI customization and model management features

Add comprehensive UI customization options and enhanced model selection:

- **Favorite & Recent Models**: Star models for quick access, track 5 most recent
  - Add favorite/recent sections to model dropdowns
  - Persist preferences in local storage
  - Works in ModelControls and ModelSelector components

- **Tool Call Expansion Settings**: Control default expansion state for tool outputs
  - Three modes: collapsed, activity (summary), detailed
  - Applies to activity groups and individual tool calls
  - Configurable in Appearance Settings

- **Font Size & Spacing Controls**: Adjustable typography and layout density
  - Font size: 50-200% scaling of all semantic typography
  - Spacing/padding: 50-200% scaling of margins, gaps, line heights
  - Real-time preview with reset buttons
  - Settings in Appearance Settings

- **VSCode Extension Settings View**: Full settings access in VSCode extension
  - Add settings navigation and view type
  - Settings button in header
  - Navigate between sessions, chat, and settings

Technical changes:
- Enhanced useUIStore with new state management
- Dynamic CSS variable scaling for typography and spacing
- Typography helper functions for variable access
- ThemeProvider integration for auto-applying scales

* fix: hide theme mode in VSCode and fix detailed tool expansion

- Hide "Theme Mode" setting in VSCode extension settings as VSCode
  dynamically applies its own theme to the extension
- Fix bug where tools from subsequent messages in a turn weren't
  expanded when "Detailed" mode was selected
- Now correctly aggregates all tool IDs from turnGroupingContext when
  calculating effective expanded tools for progressive groups
2025-12-15 18:11:38 +02:00
Bohdan Triapitsyn e064bcf355 feat: enhance file attachment features performance 2025-12-15 13:15:45 +02:00
Bohdan Triapitsyn 0b92bbc487 feat: Replaced Monaco diff editor with Pierre/diffs for better performance 2025-12-14 02:29:46 +02:00
Bohdan Triapitsyn bb72c0fb0c feat: vscode extension (#59)
* feat: add initial VS Code extension plan and implementation tasks

* feat(vscode): added initial version of an Openchamber VSCode extension

* feat(vscode): enhance VS Code extension with theme integration and session management

* feat(vscode): implement connection status handling and overlay in VSCode layout

* feat: move extension to secondary sidebar

* chore: upgrade @opencode-ai/sdk to 1.0.150

* vscode: editor bridge, file picker, click-to-open in tool parts

* vscode: layout session lifecycle, theme sync, typography overrides

* ui: compact mode for vscode, model search, autocomplete width fixes

* perf: scroll force flag, raf placeholder, git polling backoff

* ui: tool output styling, markdown code block fix, gitignore

* refactor: update typography handling for VSCode runtime, remove unused styles

* docs: update README with VS Code extension details and add extension image

* docs: update changelog with new features and performance improvements
2025-12-13 16:34:17 +02:00
Bohdan Triapitsyn 610ccf4c62 feat(terminal): add restart and force kill session functionality 2025-12-10 00:25:02 +02:00
Bohdan Triapitsyn c4cb2d5b92 perf(session): increase session limits and buffers 2025-12-09 12:11:18 +02:00
Bohdan Triapitsyn e763f2ce44 refactor(git): enhance status change detection 2025-12-09 01:43:26 +02:00