Commit Graph
496 Commits
Author SHA1 Message Date
JovinesandJovines de468361ec feat: add notifyOnSubtasks setting to control subtask notifications (#227)
* feat: add notifyOnSubtasks setting to control subtask notifications

- Add notifyOnSubtasks toggle in NotificationSettings (moved to general section)
- Update useEventStream.ts to skip notifications for subtasks when disabled
- Add server-side push notification control for subtasks
- Update UI store, persistence, and desktop settings types

* feat: apply notifyOnSubtasks across web push + desktop notifications

---------

Co-authored-by: Jovines <jovines@qq.com>
2026-01-30 14:15:00 +02:00
Bohdan Triapitsyn 344f369093 Refactor chat UI controls and overlays for mobile adjustments (#248)
* feat(mobile): refine status chip and control layouts

* fix(vscode): open file from apply_patch tool in editor
2026-01-30 13:23:50 +02:00
Nelson Pires 2ed1a73d3c Add new mobile chat controls (#247)
* chore: upgrade @opencode-ai/sdk to 1.1.40

* chore(ui): bump @opencode-ai/sdk to 1.1.40

* feat(chat): add mobile controls drawer and panel switching

Add mobile-only controls drawer with open/close and panel switching
Introduce state and handlers for mobile controls and panels
Reset mobile UI state when switching to non-mobile or returning to unified controls

* feat: add mobile chat controls utilities

Add utilities to compute and display the selected agent and model names in mobile chat controls.
Add effort variant formatting, serialization, parsing, and ranking helpers for quick options.
Expose helpers to build quick effort option lists for the UI

* feat(ModelControls): allow external mobile panel control

Initialize mobile panel state from external props when provided
Fall back to internal mobile panel state when external control is absent
Notify parent on panel changes via onMobilePanelChange callback

* feat(chat): add StatusChip component

Add StatusChip button that displays agent, model, and effort
Show marquee animation when the label is truncated
Bind to config and session stores to reflect current context

* feat: add UnifiedControlsDrawer chat controls

Add a side panel to switch agent, model, and effort quickly
Show recent agents and models for faster reselect
Persist agent/model/variant selections in session

* fix(openchamber): correct base64 to Uint8Array typing

* feat: add reduced-motion support for marquee animations

Add marquee-text--auto to enable continuous scrolling
Introduce prefers-reduced-motion media query to disable animations
Apply reduced-motion rules to active marquee and hover states

* feat[worktrees]: enhance sdk worktree removal with fallbacks

Add dynamic resolution of remove/delete/archive methods for worktrees
Fallback to delete or archive when remove is not available
Throw clear error when SDK version does not support worktree removal

* feat(ui): track recent agents and efforts in UI store

Add recentAgents array to UI state for quick access
Track up to 5 variants per provider/model in recentEfforts
Expose addRecentAgent and addRecentEffort actions to update history

* fix(deps): upgrade @opencode-ai/sdk to 1.1.42

Upgrade the OpenCode AI SDK to 1.1.42 across packages
Refresh lockfile entries to reflect the new SDK version and integrity hash
Ensure downstream packages consume the latest SDK and remain compatible

* refactor: simplify agent overflow logic in UnifiedControlsDrawer
2026-01-30 11:13:37 +02:00
Bohdan Triapitsyn ab431a04a6 test: add workflow for building macOS DMG (arm64) with dynamic version input 2026-01-30 11:08:31 +02:00
Bohdan Triapitsyn a1ed55d3f5 test: add dynamic macOS version input for DMG build workflow 2026-01-30 10:35:57 +02:00
Bohdan Triapitsyn 22cc68f3e6 test: add GitHub Actions workflow for building macOS 15 DMG (arm64) 2026-01-30 03:06:00 +02:00
Iuliia Ivashko a620807cab Merge pull request #245 from btriapitsyn/fix-traffic-lights
Adjust macOS traffic lights handling and header padding
2026-01-30 02:58:51 +02:00
Iuliia Ivashko 9b706119e6 style: fix session sidebar title truncation to show elipsis for UX consistency 2026-01-30 02:56:16 +02:00
Bohdan Triapitsyn 2d305d18c6 feat(desktop): enable macOS version awareness for UI adjustments
- Fetch macOS major version from Rust to determine layout
- Adjust header padding and height for macOS versions
2026-01-30 02:46:43 +02:00
Iuliia Ivashko 5550193861 feat(ui): adapt macOS header/vav bar height for legacy versions & fix traffic lights wobble 2026-01-30 01:44:33 +02:00
Bohdan Triapitsyn caa097b42b feat: improve SSE reconnection and visibility handling (#246)
- Keep SSE connection alive while tab is hidden to avoid disconnects
- Trigger a soft resync on visibility restore or window focus after stall
- Guard against multiple reconnects during visibility/window transitions
2026-01-30 01:33:54 +02:00
Iuliia Ivashko 4af5b5dc75 fix(SessionSidebar): prevent overflow in session name 2026-01-30 01:18:38 +02:00
Iuliia Ivashko 63324f14d8 build: switch release job to macos-15 runner for forward compatibility 2026-01-30 01:11:48 +02:00
Iuliia Ivashko 2b62b0b73c fix: macOS traffic lights and header padding 2026-01-30 01:07:39 +02:00
Bohdan Triapitsyn 520dd8c900 style: update section model selection headers to micro typography with uppercase and sticky behavior 2026-01-29 23:34:28 +02:00
yulia-ivashko 6371c8cb2e Merge pull request #244 from btriapitsyn/fix-chat-elements-padding
Adjust input area layout
2026-01-29 22:35:23 +02:00
Iuliia Ivashko 2acb7ef0d0 fix: control elements padding in chatbox 2026-01-29 22:27:26 +02:00
yulia-ivashko 3265799624 Merge pull request #243 from btriapitsyn/fix-worktrees
feat: add kind metadata for worktrees and PR workflow support
2026-01-29 21:38:15 +02:00
yulia-ivashko 85372a13cf fix: improve git diff --no-index error handling 2026-01-29 21:37:20 +02:00
Iuliia Ivashko dd6d78b0db fix(worktrees): default to HEAD when no startPoint provided
- Use git reset --hard HEAD by default when startPoint is not provided or is HEAD
- Preserve resetting to the provided startPoint when a concrete value is supplied
2026-01-29 21:34:24 +02:00
MrLYCandAmp 8859215a37 fix: improve git diff --no-index error handling
Check exitCode === 1 instead of message content, as git diff --no-index
returns exit code 1 when differences exist (which is expected behavior,
not an error).

Amp-Thread-ID: https://ampcode.com/threads/T-019c0a9a-b26b-7719-9718-04185371eb9c
Co-authored-by: Amp <amp@ampcode.com>
2026-01-30 00:34:44 +08:00
刘奕聪 f1fdaaf74c Merge branch 'btriapitsyn:main' into main 2026-01-30 00:27:49 +08:00
MrLYCandAmp 07597a3d14 fix(git): handle untracked files in collectDiffs for commit message generation
Amp-Thread-ID: https://ampcode.com/threads/T-019c0a87-5323-7098-bea3-a1fc7cd43c18
Co-authored-by: Amp <amp@ampcode.com>
2026-01-30 00:26:18 +08:00
Bohdan Triapitsyn c5158ff52c Chat input updates with Stop button and update dialog changelog UI (#241)
* feat: re-organizaed input footer UI in chat

Add StopIcon component and use it for aborting generation in chat controls
Introduce ProviderLogoOrFallback to show provider logo or fallback icon in model controls
Remove mobile-only abort button in StatusRow and simplify abort handling

* feat: improved render of changelog in UpdateDialog
2026-01-29 18:23:43 +02:00
yulia-ivashkoandIuliia Ivashko 0bd4dc12e4 chore: update Cargo.lock when bumping version (#240)
Co-authored-by: Iuliia Ivashko <iivashko@gonewfire.com>
2026-01-29 17:57:04 +02:00
Bohdan Triapitsyn 64e6c53719 release v1.6.0 2026-01-29 01:22:21 +02:00
Bohdan Triapitsyn adcc450e80 feat: add message stall detection and soft resync in event stream 2026-01-29 01:12:00 +02:00
Bohdan Triapitsyn bc28fa9ac8 refactor(chat): replace message sync with soft resync scheduling
Remove useMessageSync hook from App initialization
Introduce scheduleSoftResync to respect cooldowns before resyncs
Preserve hasMoreAbove handling and totalAvailableMessages for loading older messages
2026-01-29 01:12:00 +02:00
Bohdan Triapitsyn 9064e8e73f feat: add local branch checks to PR picker and integrate refresh
Enable optimistic local-branch checks for PR heads to disable non-existent branches
Show IntegrateCommitsSection only when upstream tracking is origin-based or applicable
2026-01-29 01:11:45 +02:00
Bohdan Triapitsyn a78ad90d78 chore: updated changelog 2026-01-28 16:14:40 +02:00
Bohdan Triapitsyn 5c8c02fd00 feat: sync clean target worktrees during integration 2026-01-28 14:41:25 +02:00
Bohdan Triapitsyn 3450939013 feat(vscode): add global SSE watcher for session activity
- Add sessionActivityWatcher module that listens to /global/event SSE independently of UI.
- Tracks session activity phases and sends openchamber:session-activity events to webview when UI is active.
2026-01-28 14:27:09 +02:00
Bohdan Triapitsyn 960cdab0fe fix(web): track session activity in global SSE watcher
- Update startGlobalEventWatcher to track session activity phases independently of UI, mirroring Tauri desktop behavior.
- The web server now maintains an always-up-to-date activity cache by listening to SSE events continuously, even when the UI is hidden.
2026-01-28 14:27:09 +02:00
Bohdan Triapitsyn f7d5df3dee fix: return empty result for plans dir when missing 2026-01-28 12:41:06 +02:00
Bohdan Triapitsyn 91e8b9e1f5 fix(ui): prevent memory leak in diff view with many modified files
- Add LRU eviction to diffCache (max 30 entries / 20MB)
- Single-file mode: render only selected diff, not all hidden ones
- Stacked mode: collapse files beyond first 10 by default
- Limit DiffWorkerProvider warmup to 10 files
- Reduce worker pool size (4 to 2) and AST cache (200 to 50)
2026-01-28 12:29:01 +02:00
Bohdan Triapitsyn 8c6eb3c44d release v1.5.9 2026-01-28 02:23:27 +02:00
Bohdan Triapitsyn 84e9391871 feat: add integrate commits to parental branch section and wired UI
Introduce IntegrateCommitsSection to plan and apply commits from source to target branch
Wire the integration panel into GitView so users can run integrate flow from the current worktree
2026-01-28 02:10:40 +02:00
Bohdan Triapitsyn 415b043326 feat: migrate to OpenCode SDK worktrees with per-project config
Add SDK-based worktree management that lists and starts SDK worktrees
Migrate per-project setup to ~/.config/openchamber/<projectId>.json
Deprecate .openchamber legacy paths and adapt UI to new config
2026-01-27 20:00:07 +02:00
Taylor Beeston 63a4c32dfa feat: fullscreen file (#228) 2026-01-27 19:23:33 +02:00
Bohdan Triapitsyn d17b617453 feat: add markdown viewer toggle in PlanView
Enable switching between preview and edit modes for Markdown content
Persist viewer mode in localStorage and restore on load
Render PreviewToggleButton beside the path actions
2026-01-27 12:33:12 +02:00
Bohdan Triapitsyn 829e9f6216 fix(web): handle plans dir errors during listing 2026-01-27 12:17:04 +02:00
Bohdan Triapitsyn b861e4abf1 feat: introduce useEffectiveDirectory hook and adopt across views (#226)
Add a centralized useEffectiveDirectory hook to resolve the active directory
Use the hook across DiffView, FilesView, GitView, and TerminalView
Fix list styling by rendering ul/ol bullets outside
2026-01-27 11:57:56 +02:00
Bohdan Triapitsyn 8b515346bc ci: update PR workflow to bun-based checks 2026-01-27 11:54:05 +02:00
Jovines 5a4c291dc0 feat(ui): add markdown preview toggle for FilesView (#224) 2026-01-27 09:15:00 +02:00
Bohdan Triapitsyn 6656816101 release v1.5.8 2026-01-26 20:05:57 +02:00
Bohdan Triapitsyn b705160c81 feat(vscode): Increase concurrency cap and check deadline to speed file scans for search (#223)
Add gitignore filtering and time budget in file search
Filter results using gitignore when enabled by passing relative paths
Abort searches after the allotted time using timeBudgetMs
2026-01-26 19:59:10 +02:00
Bohdan Triapitsyn 25525d5b1b feat: enhance ClawdHub integration with paging and retry
Add paging support when loading ClawdHub skills
Retry on API errors and throttle for ClawdHub requests
Load source content on source change and show loading indicators
2026-01-26 19:50:11 +02:00
Bohdan Triapitsyn eec170771c fix(ui): render UserTextPart with linkable mentions and wrap
Preserve whitespace and enable text wrapping in user text
Remove Markdown renderer usage for user text
2026-01-26 17:21:49 +02:00
Bohdan Triapitsyn a9952fd8da Refactor permission management across UI components and stores (#221)
* refactor: normalize permission rules and improve command draft handling

Add normalized rule set construction for permissions in Agents pages
Track initial command draft state to detect unsaved changes
Prefill draft fields when duplicating or selecting existing commands

* feat: add global session-level edit mode for agent permissions
2026-01-26 16:09:46 +02:00
Bohdan Triapitsyn 74511abfda Multi-account GitHub auth + UI polish (model logos, markdown, scroll behavior) (#219)
* feat: display provider logos for favorite/recent models

Show provider logo next to model name in favorites and recents
Render provider logos in ModelControls, ModelMultiSelect, and ModelSelector lists
Maintain zero-logo state for other sections to avoid clutter

* feat: render user message as markdown instead of plain text

Render agent mentions as markdown links in user text
Apply inside list style for chat content to fix list rendering
Rely on SimpleMarkdownRenderer for consistent rendering

* fix(openchamber): adjust layout and overscroll behavior

Enable overscroll-auto on overlay containers for smoother scrolling
Move page content to full-width wrapper and preserve section borders
Show AboutSettings inside its own bordered block when visible

* feat: integrate GitHub auth status store and UI

Introduce GitHubAuthStore to track connection status and polling
Show GitHub avatar in header when connected
Guard issue/pr dialogs behind GitHub auth status and show notices

* feat: add GitHub multi-account support

Add API and UI flow to activate a GitHub account
Show and switch between multiple GitHub accounts in header
Persist and normalize accounts list with current selection
2026-01-26 11:28:55 +02:00