Commit Graph
589 Commits
Author SHA1 Message Date
Bohdan Triapitsyn 09173df37f release v1.7.0 2026-02-17 19:36:19 +02:00
Bohdan Triapitsyn 4915e5f1fb feat: add icon and color support to project persistence (#439) 2026-02-17 19:14:04 +02:00
Bohdan Triapitsyn 4d71bb27eb feat: improve chat streaming UX and add Mermaid diagram rendering (#438)
* feat: show current branch in empty chat state

* fix: display current git branch for worktrees and update them with branch change

* refactor: improve read tool output parsing with structured data

* feat: add support for message part delta events

* fix(chat): improve streaming rendering, scroll behavior, and assistant action visibility

* feat: Add mermaid diagram support to chat markdown rendering

* fix: update table download functionality to include success notification and remove unused MarkdownRenderer import

* refactor: streamline Streamdown component props for improved readability

* fix: preserve Streamdown code-block markers and use native Tauri cache clearing

* feat: add context overview panel to view conversation details
2026-02-17 18:25:03 +02:00
Iuliia Ivashko 138772e66e fix(managed-runtime): secure auth and lifecycle control across runtimes (#437)
* feat: add OpenCode server authentication with auto-generated passwords

* fix(auth): separate user env and managed OpenCode password state

* fix(auth): enforce env precedence and managed password rotation across runtimes

* fix(vscode): rotate managed auth on startup and harden webview proxy

* build: add dev icons and config for Tauri desktop development

* fix(runtime): start managed OpenCode via CLI and expose active API port

* fix(managed-runtime): control OpenCode lifecycle and surface secure diagnostics

* docs: remove VS Code plugin test runbook
2026-02-17 18:01:57 +02:00
Nelson Pires 58b27fa621 refactor(web/server): consolidate GitHub utilities into single module (#436) 2026-02-16 22:58:56 +02:00
Nelson Pires 4fce1c9f9f refactor(server): consolidate git utilities into dedicated module with documentation (#435)
* refactor:move_git_service_module_to_lib_git

* refactor:move_git_credentials_module_to_lib_git

* refactor:move_git_identity_storage_module_to_lib_git

* refactor:add_git_domain_entrypoint_reexports

* refactor:update_server_git_imports_to_domain_entrypoint

* refactor:update_github_repo_git_import_to_domain_entrypoint

* chore:remove_legacy_git_service_module_path

* chore:remove_legacy_git_credentials_module_path

* chore:remove_legacy_git_identity_storage_module_path

* docs:add_git_module_documentation_in_domain_folder

* docs:add_git_module_to_agents_documentation_map
2026-02-16 17:42:32 +02:00
Bohdan Triapitsyn 62fa3164f7 release v1.6.9 2026-02-16 14:40:12 +02:00
Bohdan Triapitsyn 47c943b487 feat(ui): redesign workspace shell with context panel, tabbed sidebars, and faster diff UX (#433)
* feat: tabbed right sidebar, context panel, floating diff comments

* fix: auto-close left sidebar when context panel opens

- Increase default context panel width from 520 to 600 pixels
- Increase sidebar minimum width from 200 to 300 pixels
- Replace collapsible component with custom button in diff view

* refactoring: rework sidebars, tabs, and file tree layout

- Rewrite AnimatedTabs as segment-style with sliding indicator
- Upgrade SidebarFilesTree to match FilesView features (context menus,
  git status, file icons, CRUD dialogs, fuzzy search ranking)
- Restructure FilesView header: tabs row + actions row, remove breadcrumbs
- Show relative path in context panel header, track active tab
- Allow left sidebar to stay open alongside context panel
- Hide diff/files tabs from header on desktop (mobile-only)
- Move chevron after group name in session sidebar
- Compact tab heights in right sidebar and git view
- Size PreviewToggleButton to match other action buttons
- Remove directory loading spinner from folder icons

* feat: add project icon and color customization

- Enable users to assign custom icons to projects
- Allow users to choose accent colors for projects
- Stabilize repo status UI during project switching

* feat: add scroll fade indicators to editor tabs

* style: reduce spacing and icon sizes in header

* style: adjust tab component padding from uniform to vertical-horizontal

* feat: Add session state indicators to project tabs

* feat: Enhance session status handling and improve UI responsiveness

* fix: preserve upstream tracking on branch rename

* fix: improve initial remote selection for pull requests

- Uses saved remote name from previous session when available
- Selects remote based on tracking branch when possible
- Falls back to origin or first available remote

* perf(diff): faster highlight, stable stacked scroll

- split/unified Pierre worker pools; prefer shiki-wasm
- align diff CSS line-height; disable scroll anchoring; drop WebKit compositing hacks
- harden stacked pin/align (cancel on user scroll/input); prevent overscroll
- make overlay scrollbar MutationObserver optional; disable for diff container

* feat: handle binary files in diff view

* fix: adjust project tabs layout and drag regions

* style: update drag overlay visual styling

* feat: enable number keys to switch projects in the sidebar

* fix: recognize octet-stream as text-based MIME type

* feat: add keyboard navigation to context panel

* feat: add session pinning to sidebar

- Pin important sessions to keep them at the top
- Pinned sessions persist across browser sessions

* refactor: move context usage display from chat input to header
2026-02-16 14:15:19 +02:00
Iuliia Ivashko 12606b9e53 feat(desktop): persist main window geometry across restarts (#432)
Save and restore main-window bounds/state in desktop settings so reopen behavior is consistent, while keeping new windows on defaults. Add debounce, off-screen fallback, and minimum-size guards to prevent unusable or stale geometry restores.
2026-02-16 14:05:42 +02:00
Nelson Pires 243abe9d16 refactor(quota): modularize quota providers and add docs map (#427)
* refactor(quota): migrate server quota providers to modular registry architecture

* docs: add quota module documentation

Explain the quota module purpose and runtime signals.
List entrypoints, provider registry, and response shape.
Outline steps to add a new provider and testing commands.
2026-02-15 16:19:10 +02:00
Francesco Raso 7e2a2e7e88 fix(pwa): allow any screen orientation in PWA manifest (#422)
The manifest was locked to portrait-primary, preventing landscape mode
  on tablets even with device rotation enabled. Changed to "any" to follow
  system rotation settings.
2026-02-14 23:57:27 +02:00
Nelson Pires e3deaeb314 feat(quota): add NanoGPT quota provider support (#424)
* feat: add NanoGPT quota provider and usage fetch

Detect NanoGPT as a configured quota provider.
Expose daily and monthly usage windows with reset times.
Return configured and ok state based on API key presence.

* feat: fetch NanoGPT quota and detect config

Detect NanoGPT in configured providers from auth.
Fetch and expose daily and monthly usage windows for NanoGPT.

* feat: add NanoGPT quota provider option
2026-02-14 23:56:42 +02:00
Nelson Pires 08f6bef405 feat(model-cost-info): show compact price and capability icons in ModelControls (#425)
* feat: add compact price display and capability slides in ModelControls

Show compact price text on desktop in ModelControls.
Render slides for price and capability icons in a rotating metadata section.
Rotate metadata only on non-VSCode runtimes.

* feat: prefer capabilities over price in static runtimes for ModelControls
2026-02-14 23:56:08 +02:00
gsxdsm a915943e69 fix(PullRequestSection): normalize and resolve base/remote branches (#388) 2026-02-13 19:22:38 +02:00
gsxdsm 569cc411c3 refactor: simplify mobile agent button interaction (#416) 2026-02-13 19:20:13 +02:00
Iuliia Ivashko 081be1b7d0 feat(worktrees): ship upstream-first worktree flow across web + vscode (#418)
* feat: add worktree validation and deleteLocalBranch option

Add API to validate and create worktrees with new payload types
Allow deleting local branches when removing worktrees via UI and API
Introduce OpenCode style random names for worktrees when not provided

* feat: enable SSH/HTTPS transport detection for PR picker

Load remotes for the current project directory to inform PR picker options.
Determine preferred push transport from remotes and apply it.
Expose sshUrl in API for frontend to build SSH clone URLs

* feat: extend head repo with sshUrl and improve push error messages

Add sshUrl field to head repo mapping
Enhance push failure handling to display stderr or stdout details
Return push details on success

* fix: worktree path

* feat: worktree set upstream on creation

Enable pushing to upstream by default when no remote is specified
Remove per-remote dropdown for push actions and auto-use first/upstream remote
Update server and VSCode git services to support push without explicit remote and set upstream

* fix: worktree-name sanitization

* feat: rename worktree path field and branch prefix

* feat(worktrees): add git.worktree facade, validation endpoint, upstream/remote-aware creation, and non-blocking setup execution

* refactor(git): use git.worktree namespace in branch picker

* feat(worktrees): sync OpenCode sandbox metadata on create/remove

* fix(worktrees): accept new path key in workspace guard and validate remote startRef

* chore(docs): remove temporary worktree testing plan

* feat: add git worktree management API (list/create/delete/validate) for vscode

* feat: wire root tracking remote and defaults for new worktrees

Add resolveRootTrackingRemote to detect upstream remote for root branch
Apply upstream defaults when creating new worktrees to auto-set upstream
Replace validation and creation flow to use new worktreeCreate APIs

* feat(worktrees): enable root tracking remote handling
2026-02-13 19:18:22 +02:00
Bohdan Triapitsyn 523eafdf65 perf(diff): Pierre diff optimizations (#419)
* perf: implement virtualized rendering for diff viewer

- Enables efficient rendering of large diffs by only rendering visible content
- Uses shared virtualizer cache to optimize memory across multiple diff viewers
- Configures virtual scrolling with 24px line height for consistent layout

* fix: improve diff viewer line selection and annotation rendering

* fix: normalize line ranges to prevent selection bugs

* chore: upgrade @opencode-ai/sdk to v1.1.65
2026-02-13 19:05:31 +02:00
gsxdsm 2f09d375d3 feat: add zen model selection to settings (#415) 2026-02-13 05:37:28 +02:00
Nelson Pires 2d529ddaaa fix: trigger mobile tooltip on click instead of long-press (#413) 2026-02-13 05:33:39 +02:00
Nelson Pires d54f0b92e6 feat: apply rounded corners to mobile session status bar (#412) 2026-02-13 05:32:20 +02:00
Bohdan Triapitsyn 252d4bd5ab refactor: message list optimizations and single messageLimit setting (#409)
* feat: message list refactoring and optimizations

* refactor: collapse 3 memory-limit settings into single messageLimit

- Replace memoryLimitHistorical/Viewport/ActiveSession with one `messageLimit` (default 200)
- Background trim derived automatically (limit * 0.6), not user-facing
- Fix stale historyLimit overriding current messageLimit on session reload
- Remove streaming cap that reduced fetch to VIEWPORT_MESSAGES during active streams
- Deduplicate detectTurns() call in TurnGroupingContext (reuse staticValue.turns)
- Zustand v3 migration: collapse old fields, preserve user-customized values
- Server: sanitize single messageLimit field (10-500)
2026-02-12 20:36:02 +02:00
Ruslan Kurchenko 3bf0843ebb fix: auto-detect and safely connect to existing OpenCode server on startup (#402)
Add probeExternalOpenCode() to detect a running OpenCode instance via
GET /global/health before attempting to spawn a new one. When an external
server is detected (or OPENCODE_SKIP_START is set), the isExternalOpenCode
flag prevents gracefulShutdown() and restartOpenCode() from killing the
user's independent OpenCode process.

- Probe configured port, then default 4096 on startup
- Use /global/health + body.healthy === true for reliable detection
- Skip kill -9 on shutdown/restart when server is externally owned
- Re-probe (instead of kill + respawn) on restart for external servers
2026-02-12 18:06:40 +02:00
Bohdan Triapitsyn cbd952ca1b Create CODEOWNERS
Signed-off-by: Bohdan Triapitsyn <artmore@protonmail.com>
2026-02-12 17:50:56 +02:00
Nelson Pires 21dd0d66e0 style: enhance CodeMirror search panel theming (#405)
Improve panel and search UI colors to match theme
Improve focus and hover states for search input and buttons
Highlight search matches with distinct info and selection styling
2026-02-12 16:37:34 +02:00
gsxdsm d94d688112 Fix/Autocorrect On Git And Message Overlap (#401)
* hive(01-add-mobile-autocorrect-to-commit-message-input): Added mobile autocorrect to commit message input.

* hive(02-add-mobile-autocorrect-to-pr-title-inputs): Added mobile autocorrect to PR title inputs in Pul

* hive(03-add-mobile-autocorrect-to-pr-description-textareas): Added mobile autocorrect to PR description textare

* Fix chat last message overlap
2026-02-12 09:54:06 +02:00
gsxdsm d28d548bbc feat: add project notes and todos panel with persistence (#393) 2026-02-12 09:53:37 +02:00
gsxdsm 628237d5f5 fix: usage dropdown cuts off last enteynon mobile (#392) 2026-02-12 09:52:47 +02:00
gsxdsm b9d2142b1e fix(files): unify context menu trigger on mobile and desktop (#396)
* refactor: use explicit menu button for file row context menu

* fix: ensure model variants are computed from current source only
2026-02-12 09:52:13 +02:00
gsxdsm 82a2da47bb fix: Keep terminal view out of the way of the keyboard on mobile views (#398) 2026-02-12 09:51:15 +02:00
gsxdsm 45a27512cc fix: Notification {last_message} variable not populating (#399) 2026-02-12 09:51:03 +02:00
gsxdsm 8fe4435c68 fix: File editor contents not always visible on mobile (#400) 2026-02-12 09:49:10 +02:00
Bohdan Triapitsyn 42bec7c1ce release v1.6.8 2026-02-12 00:51:12 +02:00
Bohdan Triapitsyn bc41f727fa fix: search agents by name or description using fuzzy matching 2026-02-12 00:26:55 +02:00
Bohdan Triapitsyn 0e370ba1f2 fix: prevent draft from persisting when switching projects in sidebar 2026-02-11 22:11:53 +02:00
gsxdsm eaf19cc62f fix(chat): fix session return button on mobile. add double-click to switch to chat and auto-focus draft (#384) 2026-02-11 20:08:15 +02:00
Bohdan Triapitsyn 3afe0bb45d fix(desktop): respect local-origin tauri shell for directory access (#391)
* feat: enable local-origin desktop features and copy in terminal support

- Enable arbitrary web loads in desktop web content for TAURI apps.
- Guard directory dialog access behind local-origin origin check.
- Add copy-to-clipboard support for terminal selections via common shortcuts.

* fix: improve initial directory resolution and persistence in directory store
2026-02-11 20:07:44 +02:00
Bohdan Triapitsyn 844562749d feat(ui): enable drag-and-drop attachments and image previews in chat (#390)
* feat(BottomTerminalDock): add close button next to the fullscreen toggle in the dock

* style: replace hardcoded gradient with theme value in shine text variant

* fix(header): adapt instance button for desktop only

* refactor(chat): polish sticky turn UX and message action rows for better readability

Switch to stable sticky-only turn behavior and redesign user/assistant action controls (placement, hover rules, ordering, spacing, selection-safe clamp) to reduce visual noise and improve interaction flow.

* feat(chat/message): refactor buttons in messages footer

* feat: enhance image preview functionality in chat messages

- Added a new ImagePreviewDialog component to handle image previews with navigation support.
- Updated ToolOutputDialog to utilize the new ImagePreviewDialog for displaying images.
- Modified the ToolPopupContent type to include a gallery of images and an index for the current image.
- Removed the old inline image display logic from ToolOutputDialog.
- Improved file handling in the file store, including better MIME type guessing and handling of server paths.
- Introduced a new API endpoint for handling large session message payloads, allowing for better management of multi-file attachments.
- Updated the VSCode bridge to support session message requests with appropriate headers and body handling.

* feat(proxy): implement SSE forwarding and enhance generic API request handling

* feat(chat): support submitting only queued messages

* feat: add image preview transition state

* fix: default VSCode view to draft and fixed sessions list regression
2026-02-11 19:28:22 +02:00
gsxdsm 39e625d8ec feat: invert quota usage markers when remaining mode enabled (#385) 2026-02-11 11:24:02 +02:00
gsxdsm 0bab4dfa26 fix: Gemini/Antigravity quota sources and update labels (#379)
* refactor: unify Google quota window logic and labels

* chore: add OAuth client id/secret and notes in quota providers
2026-02-11 11:23:46 +02:00
Bohdan Triapitsyn 1e797e99ca release v1.6.7 2026-02-10 13:36:16 +02:00
Bohdan Triapitsyn f76a3b35e7 feat(openchamber): hide voice settings in VSCode runtime 2026-02-10 13:28:19 +02:00
Bohdan Triapitsyn d663e3f82c style: simplify slider visuals by removing gradient 2026-02-10 13:19:36 +02:00
Bohdan Triapitsyn ab4ed8799d chore: update changelog with recent enhancements and fixes 2026-02-10 13:08:23 +02:00
Bohdan Triapitsyn d801ba0abe feat(useConfigStore): disable TTS buttons by default until user change this 2026-02-10 13:00:16 +02:00
Bohdan Triapitsyn 263a33ffb2 chore: simplify CodeMirror theme 2026-02-10 12:57:43 +02:00
Bohdan Triapitsyn 735aba7d0c refactor(ui): streamline header, settings layout 2026-02-10 02:36:02 +02:00
Iuliia Ivashko 91a1f64f77 fix(session-sidebar): prevent keydown propagation during inline rename 2026-02-10 02:30:25 +02:00
Iuliia Ivashko 89116483b7 feat(desktop): enable multi-window support and new window action (#377)
* feat(macos): add New Window menu item

Add a New Window option to the macOS menu bar
Trigger opening a separate window when the New Window action is selected

* feat: enable multiple desktop windows and new window shortcut

Enable multiple desktop windows by extending manifest to main-*
Expose desktop_new_window to create additional windows from UI
Show New Window shortcut in Help dialog (Desktop only) with Shift + Alt + <mod> + N

* feat(desktop): enable opening host URL in new window from host switcher

Add a new action to launch a URL in a separate window from the host switcher
Wire the UI to open the selected host in a new window using a dedicated control
Expose a cross-platform API to create a new window pointing at a URL

* fix(desktop): validate URL scheme before opening new window

* fix(desktop): skip unreachable hosts when opening new windows
2026-02-10 02:07:04 +02:00
Bohdan Triapitsyn f91d048a2b fix(useConfigStore): align voiceModeEnabled with localStorage 2026-02-10 01:43:25 +02:00
Bohdan Triapitsyn 0a47bc058c fix: simplify message loading guards 2026-02-10 01:37:37 +02:00