Commit Graph
121 Commits
Author SHA1 Message Date
Bohdan Triapitsyn 1ca08cf2d8 Revert "feat: add --remote-url CLI option to connect to remote OpenCode instances (#161)"
This reverts commit 53f8e1324e.
2026-01-17 22:20:26 +02:00
Taylor Beeston b02712bee1 add gitmoji support for commit messages (#165)
Add gitmoji toggle in Git settings to enable emoji support
Show Add gitmoji button in commit section when feature is enabled
Display gitmoji picker dialog with searchable emoji list
2026-01-17 11:09:21 +02:00
刘奕聪 53f8e1324e feat: add --remote-url CLI option to connect to remote OpenCode instances (#161)
* feat: add --remote-url CLI option to connect to remote OpenCode instances

* fix: pass remoteUrl to main function when running as CLI
2026-01-16 15:58:55 +02:00
Bohdan Triapitsyn 976018dd32 feat: add copy diagnostics button
Add copy diagnostics button in About dialog.
Button copies report with OpenChamber state, OpenCode health, directories, and projects.
Show success or error toasts after copying attempt.
2026-01-16 14:43:53 +02:00
Bohdan Triapitsyn 5389bae465 feat: enhance process cleanup to avoid orphaned processes and improve reliability 2026-01-16 02:38:09 +02:00
Bohdan Triapitsyn f0fe9632ef release v1.5.1 2026-01-16 02:29:48 +02:00
Bohdan Triapitsyn ba49a291bd release v1.5.0 2026-01-16 01:24:38 +02:00
Bohdan Triapitsyn cf9b7a6516 feat: implement process cleanup for OpenCode server and enhance internal function handling 2026-01-16 01:22:43 +02:00
tybradleandOpenCode Test 80227be746 fix: resolve heartbeat race condition causing session stalls (#155)
This fixes a race condition where the client watchdog timeout (25s) was shorter than the server heartbeat interval (30s).

    Changes:
    - Server: Decreased heartbeat interval from 30s to 15s to send keepalives more frequently.
    - Client: Increased stale connection threshold from 25s to 45s to allow for 3 missed heartbeats before reconnecting.

    This ensures stable connections during long subagent tasks where no text generation occurs.

Co-authored-by: OpenCode Test <test@opencode.ai>
2026-01-15 22:30:46 +02:00
Bohdan Triapitsyn 1be5dfda05 feat: add Files tab for browsing workspace files (#154)
* feat: add Files tab for browsing workspace files

- Add Files tab between Diff and Terminal in header
- Implement hierarchical file tree with expand/collapse
- Add fuzzy search with debouncing and relevance ranking
- Support gitignore filtering via `git check-ignore` (web + desktop)
- Add syntax highlighting for 150+ file types
- Add image preview (SVG, PNG, JPG, etc.)
- Add line numbers, wrap toggle, and copy button
- Desktop: split-pane layout matching DiffView
- Mobile: drill-in navigation with full-width sidebar
- Update help dialog with Cmd+3 shortcut
- Increase header breakpoint to 940px for new tab

* feat: enhance context and session stores to track agent/model/variant choices for historical sessions

* feat: implement line selection and commenting functionality in FilesView
2026-01-15 20:19:06 +02:00
Bohdan Triapitsyn be6aba3605 feat(web): auto-resolve available port for serve 2026-01-15 00:52:08 +02:00
Bohdan Triapitsyn ffb4b5e69f chore: update changelog and enhance README files with badges and project information 2026-01-15 00:49:58 +02:00
Bohdan Triapitsyn e0279e59b0 feat: implement default Git identity management and local identity check 2026-01-14 22:34:17 +02:00
Bohdan Triapitsyn 475bd3288a release v1.4.9 2026-01-14 18:05:52 +02:00
Bohdan Triapitsyn c52a5f27a2 feat(vscode): enhance server readiness with multiple URL candidates (#145)
Add support for multiple candidate base URLs in readiness check.
Automatically set API URL override upon successful server connection.
2026-01-14 15:40:41 +02:00
Bohdan Triapitsyn c4fb9d5730 fix(upload): increase attachment size limit to 50mb (#144)
* fix(upload): increase attachment size limit to 50mb

Raises body limits in web proxy and desktop app. Adds client-side size checks and better 413 error handling.

* fix(client): auto-compress large images to avoid server body limits

Adds client-side compression for images >1MB. Resizes to max 2048px and converts large PNGs to JPEG. Adds detailed logging for debugging.

* chore: remove debug logs from client and proxy
2026-01-14 13:23:17 +02:00
Bohdan Triapitsyn 5ffec2acba release v1.4.8 2026-01-14 02:55:52 +02:00
Bohdan Triapitsyn 1319033df9 feat(git): enhance token authentication and credential handling 2026-01-14 02:54:48 +02:00
btriapitsyn fa83c1e645 feat(git): add token authentication and credential discovery
Add support for token-based git authentication in identity profiles.
Enable discovery and import of credentials from ~/.git-credentials file.
Introduce remote URL-based filtering for token identities in git view.
2026-01-14 02:47:26 +02:00
JovinesandJovines d56eef8aa6 feat: Add Nerd Fonts support for terminal icons (#140)
Co-authored-by: Jovines <jovines@qq.com>
2026-01-14 02:38:48 +02:00
Bohdan Triapitsyn 0d43725802 fix(web): refine OpenCode health monitoring 2026-01-14 00:25:23 +02:00
Nelson Pires 279efb28b3 feat: Display default model in dropdowns and consolidate Git settings menu (#135)
* types: add commitMessageModel to DesktopSettings

* store: add commitMessageModel state and fetch logic

* lib: implement persistence for commitMessageModel setting

* ui: create GitSettings component for model selection

* ui: add Git section to OpenChamber settings sidebar

* ui: register GitSectionContent in OpenChamberPage

* server: use commitMessageModel setting for AI generation

* tauri: sanitize commitMessageModel in settings commands

* tauri: use commitMessageModel for desktop message generation

* build: update lockfile and package configuration

* refactor(openchamber): improve default model parsing with fallback logic

* feat(openchamber): improve model selection fallback logic

* refactor: move worktree settings into git section

* refactor(openchamber): merge worktree into git section

* refactor[worktree]: simplify empty state layout

* revert: rollback bun.lock and package.json to main

* feat(git): restrict model selection to OpenCode provider
2026-01-14 00:21:16 +02:00
Bohdan Triapitsyn fbb058ed97 feat(server): add function to wait for OpenCode port 2026-01-13 19:44:13 +02:00
vio1ator abc8e89367 fix: preserve projects on validation failures and add error logging (#129) 2026-01-13 10:18:19 +02:00
vio1ator 4fa6c2fbf1 Fix/sigint graceful shutdown (#125) 2026-01-11 17:00:13 +02:00
Bohdan Triapitsyn 1e1ca9f15e release v1.4.7 2026-01-10 11:02:25 +02:00
Bohdan Triapitsyn 3809fdb93c feat: add functions to retrieve login shell path and build augmented PATH 2026-01-10 10:26:58 +02:00
Bohdan Triapitsyn 21fdba08a3 feat: Integrate ClawdHub skill registry 2026-01-10 01:01:47 +02:00
Bohdan Triapitsyn 591cbb723a release v1.4.6 2026-01-09 22:52:11 +02:00
Bohdan Triapitsyn 87d0f0b6d1 feat: implement health check for OpenCode server readiness during startup 2026-01-09 22:50:52 +02:00
Bohdan Triapitsyn 4a87126b74 feat: added questions and permissions 2026-01-09 21:38:22 +02:00
Bohdan Triapitsyn f1889d73af refactor: streamline OpenCode process management by removing unused code and integrating SDK for server initialization 2026-01-09 12:23:12 +02:00
Bohdan Triapitsyn 2382c6e82a release v1.4.5 2026-01-09 00:01:22 +02:00
Bohdan Triapitsyn 6eace604de feat: add McpDropdown component with related UI enhancements 2026-01-08 23:14:29 +02:00
Bohdan Triapitsyn b9ed2217a6 feat: enhance environment path handling with buildAugmentedPath function 2026-01-08 19:33:43 +02:00
Bohdan Triapitsyn ab731fdc79 feat: add default variant support in settings and UI components 2026-01-08 16:08:51 +02:00
Bohdan Triapitsyn 2cbec5c3ce release v1.4.4 2026-01-08 02:05:17 +02:00
Bohdan Triapitsyn 8902662f74 feat: add rename branch functionality with UI integration 2026-01-08 01:13:51 +02:00
Bohdan Triapitsyn c7700d5384 feat: add auto-create worktree setting and related UI components 2026-01-07 23:37:32 +02:00
Bohdan Triapitsyn d92a1ab297 feat: implement worktree session creation and management
- Added `createWorktreeSession` utility to handle the creation of new sessions with auto-generated worktrees.
- Introduced branch name generation utilities for creating unique and friendly branch names.
- Updated `CommandPalette` to trigger worktree session creation via a command.
- Refactored keyboard shortcuts to support new worktree session creation with Shift + Cmd/Ctrl + N.
- Enhanced project settings to include worktree defaults (branch prefix, base branch, auto-create option).
- Updated persistence logic to preserve worktree defaults when saving project settings.
- Modified menu actions to initiate new worktree sessions.
- Ensured proper handling of existing branches to avoid conflicts during worktree creation.
2026-01-07 22:06:28 +02:00
Bohdan Triapitsyn 4433888903 feat: implement worktree setup commands management
- Introduced `readFile` and `writeFile` methods in the FilesAPI for reading and writing files.
- Added `execCommands` method to execute shell commands in a specified directory.
- Implemented `runWorktreeSetupCommands` function to handle setup commands for worktrees.
- Created `OpenChamberConfig` service for managing project-specific configuration, including setup commands.
- Enhanced `useMultiRunStore` to save and execute setup commands during multi-run creation.
- Updated VSCode bridge to handle file read/write and command execution requests.
- Added server endpoints for reading and writing files, and executing shell commands.
2026-01-07 22:01:49 +02:00
Martin DONADIEU 11fb61a883 feat: add QR code and password URL for Cloudflare tunnel (#112)
* feat: add QR code and password URL parameter for Cloudflare tunnel

Add --tunnel-qr flag to generate scannable QR code for tunnel URL in terminal.
Add --tunnel-password-url flag to include password as URL parameter for auto-login.
Frontend now automatically detects and submits password token from URL.

* docs: update README with tunnel QR and password URL features

Add dev script for concurrent server, web, and UI watch mode.
2026-01-07 21:51:45 +02:00
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
Bohdan Triapitsyn 45b3d1d920 feat(event-stream): add global event stream and activity tracking
Add global event stream endpoint for cross-session activity monitoring
Support multiple concurrent SSE subscriptions with scoped connections
Enhance session activity detection from various event types
2026-01-04 10:50:35 +02:00
Bohdan Triapitsyn d86105fcb2 release v1.4.3 2026-01-04 00:36:59 +02:00
Bohdan Triapitsyn b97399a5af release v1.4.2 2026-01-03 14:53:19 +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 17df8a43a9 release v1.4.1 2026-01-02 22:06:29 +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