Commit Graph
1389 Commits
Author SHA1 Message Date
Bohdan Triapitsyn 2031e3b4a8 Decouple bundled UI from runtime API and add remote instance tooling (#1228)
Add a packaged-client runtime boundary so the shared UI can talk to local,
desktop, remote, and VS Code runtimes through the right transport instead of
assuming one same-origin web server.

Centralize OpenChamber-owned API access behind RuntimeAPIs, runtimeFetch, and
runtime URL helpers, while keeping official OpenCode traffic on the SDK path.
Support runtime switching, remote host selection, desktop client credentials,
and headless connection links for pairing packaged clients with remote
OpenChamber servers.

Harden the new auth model by moving long-lived client tokens out of browser
URLs, introducing short-lived scoped URL tokens for browser-owned transports,
restricting URL-token access to explicit readable/realtime routes, and making
client-token management session-scoped or self-scoped as appropriate.

Update browser-owned assets and preview proxy flows to work with the split
runtime model, including authenticated project icons, preview token propagation,
CSP-safe preview bridge injection, and preview proxy auth that survives
short-lived URL-token expiry.

Tighten Electron security boundaries for packaged clients by gating privileged
preload state to trusted origins and requiring explicit confirmation before
connect deep-links import or switch remote runtimes.

Also refresh agent guidance and project skills so future runtime/API, auth,
preview, UI, CLI, settings, locale, and drag-to-reorder work follows the new
architecture.
2026-06-02 00:43:05 +03:00
Bohdan Triapitsyn a4314c189b feat: streamline opencode loading screens and reuse the reload flow for vscode Restart API
Loading screens: drop the internal-jargon progress text on the opencode
reload overlay (ConfigUpdateOverlay) and the vscode init splash — show
text only on errors. Replace it with a glow pulse on the OpenCode mark on
the cube's top face; OpenChamberLogo's isAnimated prop was a no-op and now
actually animates. vscode shows the glow on the inline splash logo and the
React app stops writing 'Loading data (… Providers, … Agents)…'.

Restart API: 'OpenChamber: Restart API Connection' now runs the same full
reload flow used after an OpenCode update — the command asks the chat
webview to call reloadOpenCodeConfiguration() (overlay + managed restart
via the bridge + config/data refresh) instead of a bare manager restart,
falling back to the old restart when no webview is open. Mounts
ConfigUpdateOverlay in the vscode app so the overlay actually shows there.
2026-05-30 02:04:32 +03:00
Bohdan Triapitsyn ec8b2d0d4f fix: don't flash the empty state before the draft welcome on load
On refresh the auto-open draft opens in an effect (after first paint), so
ChatContainer briefly rendered ChatEmptyState (logo + 'start a new chat')
before the welcome screen. When a draft is about to auto-open and there's
no init error, render a neutral background instead — the empty state stays
for the cases where it's actually meaningful (no auto-open, or init error).
2026-05-30 02:04:32 +03:00
Bohdan Triapitsyn 6d4f070d91 feat: user-customizable draft welcome starters
Let users curate the draft welcome chips: pin existing commands and skills
as starters, remove them, and drag to reorder — all inline on the draft
screen via a '+' picker dialog and per-chip remove, with no separate
settings UI.

A starter references a command or skill; its scope is inherited from the
item (user-scope -> global, project-scope -> per-project). Global starters
persist to settings.json (useUIStore + client/server sanitizers); project
starters persist to the project config alongside worktree setup commands.
The two scopes form ordered namespaces shown global-first then project,
reorderable only within each group.

The six built-in Session magic-prompt commands are the default global set
and stay available in the picker for re-pinning if removed; they keep their
bespoke icons, while user commands/skills fall back to the Commands/Skills
section icons. Chip labels are normalized (/simplify-code -> 'Simplify
code'). Missing commands/skills are skipped rather than shown broken.

Drag-to-reorder works on desktop and mobile: rectSortingStrategy for the
wrapping multi-row layout, CSS.Translate (no scale) so the lifted chip
doesn't stretch, and MouseSensor + long-press TouchSensor so taps still
submit and swipes still scroll. The '+' picker is a searchable dialog on
every surface.
2026-05-30 02:04:32 +03:00
Bohdan Triapitsyn af615df719 feat: show draft preset chips in mini-chat too
Mini-chat uses the same centered-welcome compact layout, so the preset chips fit fine under the welcome message there as well. Drop the mini-chat exclusion.
2026-05-30 02:04:32 +03:00
Bohdan Triapitsyn 57d36f6c1b feat: show draft preset chips under the welcome message on mobile/vscode
On narrow surfaces (mobile, vscode) the composer sits at the bottom and
only the welcome message is centered, so the preset chips had nowhere
sensible to live and were desktop-only. Render them under the centered
welcome message there instead.

Extract the shared preset list (draftPresets.ts) and chip row
(DraftPresetChips) so both layouts reuse them. Since the command-aware
submit lives in ChatInput, ChatContainer triggers it through a new
input-store channel (requestPresetSubmit / consumePendingPresetSubmit)
that ChatInput consumes. Mini-chat stays excluded — too small for the row.
2026-05-30 02:04:32 +03:00
Bohdan Triapitsyn a85a9ae451 feat: strengthen /workspace-review beyond high-signal-only
The old workspace-review prompt only hunted for catastrophic bugs and
omitted everything it wasn't highly certain about, so it usually returned
'No high-signal issues found' and felt useless.

Rework it to first understand the diff's intent and judge whether the
implementation actually achieves it and is adequate (smallest correct
solution, completeness), then review correctness across concrete failure
modes (concurrency, lifecycle, state fanout, comparators, a11y,
regressions, targeted-test gaps) plus a security/supply-chain lens, and
classify findings by severity (blocker / non-blocker / nit). Keeps the
existing false-positive discipline (diff is source of truth, validation
pass, no nitpicks, cite rules) and stays review-only by default.

Adapted from a battle-tested PR-review prompt, minus the GitHub-specific
parts that don't apply to a local workspace diff. Updates command and
settings descriptions across locales.
2026-05-30 02:04:32 +03:00
Bohdan Triapitsyn b1c751d51e fix: frame /catch-up around digestibility, not warmth
Reword the /catch-up prompt and its Magic Prompts settings descriptions to
emphasize an easy-to-digest summary rather than a 'warm'/'friendly' tone —
the goal is ease of comprehension, not friendliness. Updated across all
locales.
2026-05-30 02:04:32 +03:00
Bohdan Triapitsyn b3f519858a fix: make /catch-up branch-aware and layered, with product-focused next step
Rework the /catch-up decision tree from mutually-exclusive cases into
complementary layers. It now determines whether the current branch is the
repo's default branch and builds context accordingly: on a feature branch
it reads enough of the branch's own commits to grasp the intent and checks
the branch's PR even when there are uncommitted changes (so in-progress
work is understood as part of the larger effort); on the default branch it
lightly skims recent commits. Uncommitted changes remain the focal point
but are interpreted through that context.

The suggested next step now favors continuing the actual work over
housekeeping — since running catch-up implies the user stepped away and
the work is likely unfinished, push/PR/checks are only a fallback. Updates
the Magic Prompts settings descriptions across locales to match.
2026-05-30 02:04:32 +03:00
Bohdan Triapitsyn 6cd71bdfe5 feat: turn Explore into a full /explore command
Promote the last plain-prompt draft chip into a proper /explore command so
all draft welcome presets are now commands. Its hidden prompt investigates
the repository and gives a structured orientation — big picture, main
modules, how they connect, conventions, and where to start — instead of a
file-by-file dump.

Follows the established pattern: visible + hidden magic prompts wired into
command autocomplete, the submit handler, the draft chip, and the Magic
Prompts settings page, with i18n across all locales. Drops the now-unused
explore prompt string.
2026-05-30 02:04:32 +03:00
Bohdan Triapitsyn 4bc75cc749 fix: anchor /weigh recommendation to the user's need, not the easiest path
Rework the /weigh hidden prompt so the recommendation is driven by what
best serves the user's actual goal — not by what is fastest or least
effort. Effort and complexity are surfaced as honest consequences rather
than reasons to steer toward a weaker option, strong-but-harder
approaches that fully cover the idea must be included and discussed, and
a watered-down solution is never recommended just because the proper one
is more work.
2026-05-30 02:04:32 +03:00
Bohdan Triapitsyn b09c6b7047 feat: add /weigh approach-comparison command to draft welcome
Add /weigh as a draft chip and command for the moment before planning —
when you know what to build but not how. Its hidden prompt investigates
the code, then lays out 2-3 genuinely distinct approaches with trade-offs
(complexity, risk, blast radius, effort) and a clear recommendation,
without writing a plan or code.

Follows the established command pattern: visible + hidden magic prompts
wired into command autocomplete, the submit handler, draft preset chips,
and the Magic Prompts settings page, with i18n across all locales. Adds a
scales-3 icon to the sprite.
2026-05-30 02:04:32 +03:00
Bohdan Triapitsyn d524842935 fix: warmer, branch-scoped /catch-up prompt
Rework the /catch-up hidden instructions: write like a teammate catching
you up rather than a CI summary, scope strictly to the current branch,
and never surface unrelated branches, other people's PRs, or review
requests. When the current branch has no PR of its own, skip pull-request
talk entirely and just recap recent work plus a next step.
2026-05-30 02:04:32 +03:00
Bohdan Triapitsyn d49ca7bc43 feat: add /catch-up and /debug guided commands to draft welcome
Replace the 'What changed recently' draft chip with /catch-up, a command
whose hidden prompt branches on git state: reconstruct intent from an
in-progress diff, check an open PR's review state, or summarize recent
commits.

Add /debug as a new draft chip and command: a guided root-cause
investigation that captures the symptom, forms hypotheses, checks them
against the code, and confirms the cause before proposing a fix.

Both follow the /workspace-review pattern — visible + hidden magic
prompts wired into command autocomplete, the submit handler, draft preset
chips, and the Magic Prompts settings page, with i18n across all locales.
2026-05-30 02:04:32 +03:00
Bohdan Triapitsyn 2b08a51946 feat: desktop draft welcome presets and /plan-feature command
Add starter preset chips under the composer on the desktop draft welcome
screen (explore, what changed, plan, review). Clicking a chip submits
immediately; prompt chips send a natural-language prompt, command chips
reuse built-in slash commands.

Add a new /plan-feature built-in command, modeled on /workspace-review:
visible + hidden magic prompts that run a guided, batched-question
planning dialogue (investigate the code, ask up to 3 clarifying
questions at a time, surface pitfalls, then produce an implementation
plan). Wired into command autocomplete, the submit handler, the draft
plan chip, and the Magic Prompts settings page, with i18n across all
locales.
2026-05-30 02:04:32 +03:00
Bohdan Triapitsyn 7f90ffb878 feat: browser-side annotation screenshots for web preview
Capture the preview/browser iframe DOM with snapDOM (html-to-image
fallback) so web annotation screenshots match the visible viewport,
without a headless Chromium dependency.

- Preserve document scroll via viewport crop and re-bake nested scroll
  (e.g. the Starlight sidebar) deterministically on the clone
- Pin position:fixed elements to their measured viewport rect so headers
  and sidebars land correctly in the crop
- Extract preview capture/proxy helpers into
  lib/preview/screenshot-capture.ts to slim down ContextPanel
- Guard the external preview proxy against SSRF to private, loopback and
  reserved/link-local addresses (incl. cloud metadata)
- Fully validate preview bridge messages before formatting/use
- Warn on the empty browser tab that pages run with full access, so
  users browse untrusted sites knowingly
2026-05-30 02:04:32 +03:00
Bohdan Triapitsyn 49ed0b52c9 fix: polish model picker dropdowns 2026-05-30 02:04:32 +03:00
Bohdan Triapitsyn 2b4b963f24 fix: open desktop browser popups in place
Loads target=_blank links inside the context panel browser
Handles webview popup navigation from Electron
2026-05-30 02:04:32 +03:00
Bohdan Triapitsyn f9e9f30873 Fix session history loading (#1468)
Fix chat history pagination and scroll preservation

Align session history loading with the expected scroll-up pagination UX while
keeping OpenChamber-specific initial message limits for constrained runtimes.

- Separate initial load sizes from older-history pagination size
- Load older messages automatically when scrolling near the top
- Continue fetching history until a visible older turn is available
- Preserve the current viewport synchronously during prepends
- Prevent history loading from fighting pinned-to-bottom follow behavior
- Remove delayed scroll-to-bottom correction that caused jumpbacks
- Fix the virtualizer fallback path that could render a large blank spacer
- Track oldest loaded message per pagination iteration to avoid redundant fetches
2026-05-30 02:03:41 +03:00
Bohdan Triapitsyn 4a1ebd98da style: soften draft welcome title
Makes the welcome prompt lighter
Keeps the project name visually emphasized
2026-05-28 01:25:55 +03:00
Bohdan Triapitsyn 7dffc98f00 feat: align mini chat draft layout
Centers the welcome prompt in mini chat drafts
Keeps the mini chat composer at the bottom
Preserves the standard desktop draft layout
2026-05-28 01:20:21 +03:00
Bohdan Triapitsyn 3817a5947f feat: add JetBrains themes 2026-05-28 01:13:37 +03:00
Bohdan Triapitsyn 32ab46c567 feat: refine VS Code session UI 2026-05-28 01:13:03 +03:00
Bohdan Triapitsyn 4c7426304f feat: map VS Code chat theme colors 2026-05-28 01:12:45 +03:00
Bohdan Triapitsyn 461e2f482c fix: prevent premature queued message auto-send
Only auto-send queued messages after an active session becomes idle
Avoid treating missing initial status as safe to send
Add coverage for queue auto-send status transitions
2026-05-27 23:36:43 +03:00
Bohdan Triapitsyn 5331c4d962 feat: improve mobile draft session layout
Keeps the welcome prompt centered on mobile
Moves the draft composer back to the bottom on mobile
Preserves the desktop draft layout
2026-05-27 23:36:26 +03:00
Bohdan Triapitsyn 8d7b75106e chore: set show mobile status bar to be off by default 2026-05-27 17:38:31 +03:00
Bohdan Triapitsyn dadb968364 feat: refresh draft session welcome
Centered the new session composer
Added a project-aware welcome prompt
Removed the old empty-state logo from draft sessions
2026-05-27 17:35:58 +03:00
Bohdan Triapitsyn 9ed2e39b08 feat: refresh queued message controls
Queued messages now match the reverted message dock style
Added per-message edit and send actions
Sending one queued message no longer sends the full queue
2026-05-27 17:13:45 +03:00
Bohdan Triapitsyn 62a5a254b3 perf: reduce status row rerenders while streaming
Keeps assistant status stable during text deltas
Updates status only when activity changes
Narrows todo subscriptions when hidden
2026-05-27 14:19:15 +03:00
Bohdan Triapitsyn cfd13544bd perf: reduce chat rerenders during streaming
Stabilizes unchanged chat turns while messages stream
Keeps static chat history from rerendering unnecessarily
Adds coverage for turn record reuse
2026-05-27 14:01:25 +03:00
Bohdan Triapitsyn 27255c642d release v1.11.7 2026-05-27 01:16:43 +03:00
Bohdan Triapitsyn 4237be4174 fix: isolate Electron dev instance 2026-05-27 01:14:51 +03:00
Bohdan Triapitsyn b9068e4b81 fix: disable tool expansion animation 2026-05-27 01:14:07 +03:00
Bohdan Triapitsyn e8e4df5ea9 fix: smooth tool expansion animation 2026-05-27 00:41:04 +03:00
Erman HAVUÇandBohdan Triapitsyn 52ffe9daef feat(git-graph): VS Code-style git graph with commit actions in History modal (#1431)
* feat(types): add parents to GitLogEntry and new commit action types

* feat(git): add parent hashes and --all flag to getLog

* fix(git): move record separator to start of log format string

* feat(git): add checkoutCommit server function and route

* feat(git): add cherryPick server function and route

* feat(git): add revertCommit server function and route

* feat(git): add resetToCommit server function and route

* fix(tests): make git service tests branch-name portable, add error path tests

* feat(client): add checkoutCommit, cherryPick, revertCommit, resetToCommit API wrappers

* feat(git-graph): add lane assignment algorithm with tests

* feat(git-graph): add GitGraphSegment per-row SVG renderer

* feat(i18n): add locale strings for git graph action buttons

* fix(git-graph): handle lane convergence, fix SVG path coords, add connector tests

* feat(git-graph): add ref badges and action buttons to HistoryCommitRow

* fix(git-graph): add loading guards to reset actions, use theme tokens for ref badges

* fix(git-graph): conditional hooks, stale graph log, conflict handling, i18n

* fix(types): replace toBeDefined with toBeTruthy, fix toast API usage

* fix(lint): remove unused variables

* fix(git-graph): fix SVG height causing 150px row spacing

* fix(git-graph): smooth bezier curves, fill row height, round line caps

* fix(git-graph): non-scaling-stroke fixes bezier white spaces, sort curves on top

* fix(git-graph): remove viewBox scaling, match SVG height to actual row height

* fix(git-graph): ResizeObserver tracks actual row height, eliminates SVG height mismatch

* feat(git-graph): replace SVG with Canvas for graph rendering

* fix(git-graph): isolate canvas from flex layout to prevent replaced-element height leak

* feat(git-graph): align action buttons, add confirmation popups for all actions

* fix(git-graph): address code review findings CR-001 through CR-005

- CR-001: VS Code getGitLog now forwards 'all' option and parses %P parents
- CR-002: VS Code bridge/gitService implement checkoutCommit, cherryPick,
  revertCommit, resetToCommit with conflict detection and hard-reset guard
- CR-003: server-side commit hash validated with /^[0-9a-fA-F]{7,40}$/
  in both routes.js and service.js; 12 new rejection tests added
- CR-004: cherry-pick/revert conflict path now refreshes fetchStatus/
  fetchBranches/fetchLog; conflict toast uses i18n keys in all 7 locales
- CR-005: corrected O(n) comment to O(n x lanes)

* fix(i18n): add zh-TW locale and common.language.traditionalChinese key to all locales

upstream/main added zh-TW.ts after branch diverged; CI type-check fails
when PR is merged because zh-TW.ts was missing all gitView.history.actions.*
keys and loadMore/loadingMore. Also adds common.language.traditionalChinese
to en.ts and all 6 non-English files to match upstream en.ts.

* fix: harden git history actions

* feat: split git history graph view

* chore: remove git graph planning docs

---------

Co-authored-by: Bohdan Triapitsyn <artmore@protonmail.com>
2026-05-27 00:13:25 +03:00
Robert HamiltonandBohdan Triapitsyn cc3d1bd63c fix: improve todo send dialog model picker (#1426)
* fix: improve todo send dialog model picker

* fix: truncate long model selector labels

---------

Co-authored-by: Bohdan Triapitsyn <artmore@protonmail.com>
2026-05-26 20:46:30 +03:00
HearingSmileandBohdan Triapitsyn 6a173211b0 fix(desktop): toggle browser icon and preserve webview state on coll… (#1424)
* fix(desktop): toggle browser icon and preserve webview state on collapse

* fix(desktop): stabilize context panel collapse behavior

---------

Co-authored-by: Bohdan Triapitsyn <artmore@protonmail.com>
2026-05-26 20:30:16 +03:00
Dave OteroandBohdan Triapitsyn becd240168 Add Windows Electron desktop support (#1093)
* fix: make upstream sync actions target the selected remote

Ensure fetch and pull actually honor upstream selection so fork maintenance works from the Git sidebar, and surface upstream branch status alongside the primary origin-tracking indicators.

* feat: add Windows Electron desktop foundation

* fix(electron): stabilize Windows desktop packaging

* fix(electron): stabilize Windows desktop chrome

Use native Windows titlebar behavior with an Alt-accessible hidden menu, and harden Windows dev command launching so the desktop app follows platform conventions.

* fix(electron): stabilize Windows dev startup

* fix(electron): clarify desktop artifact names

* fix(electron): harden Windows desktop release and launch

* fix(electron): address Windows release review

* fix(electron): point updater and release links to org repo

* Fix Windows settings persistence fallback

* Fix Windows Electron dev startup

* Add Windows Electron window controls

* Fix Windows Electron install and opencode launch

* fix: resolve git status for repositories without upstream

Fixes repository detection stuck on Checking repository
Handles git status when no upstream is configured
Adds regression coverage for git status loading

* Add Windows app menu button

* fix: preserve file editor line endings

* ci: add desktop release smoke workflow

---------

Co-authored-by: Bohdan Triapitsyn <artmore@protonmail.com>
2026-05-26 18:13:59 +03:00
youfch cc7969ac00 fix: session rename exits immediately due to focus race (#1429)
* fix: session rename exits immediately due to focus race

Replace fragile onBlur handler with document mousedown listener for click-outside detection. Defer dropdown-initiated rename to onOpenChangeComplete (fires after CSS transition + cleanup). Use finalFocus instead of dead onCloseAutoFocus (never forwarded to Base UI).

* chore: remove dead editCancelledRef after onBlur removal

onBlur was replaced by document mousedown listener. editCancelledRef was only read in the old onBlur handler — its write in the Escape key handler was the sole remaining use.
2026-05-26 11:50:16 +03:00
kostazolandKonstantin Zolin 4c34031f8d Keep completed todos at the end (#1430)
Co-authored-by: Konstantin Zolin <zolin_ka@vk.com>
2026-05-26 11:49:30 +03:00
Bohdan Triapitsyn db2464d94d fix: restore live streaming in VS Code
Forward SSE chunks without reserializing events
Prevent generic proxy from buffering SSE endpoints
Add regression tests for VS Code stream proxy
2026-05-26 11:42:20 +03:00
JiaandBohdan Triapitsyn 6dbe7d0445 feat(i18n): add Traditional Chinese locale (#1360)
* feat: add Traditional Chinese locale

* feat: add Traditional Chinese locale

* feat(i18n): Update Traditional Chinese translation

* fix(i18n): sync Traditional Chinese locale keys

---------

Co-authored-by: Bohdan Triapitsyn <artmore@protonmail.com>
2026-05-26 02:34:58 +03:00
Adrian EckardtandBohdan Triapitsyn 5cde9ca88c fix: switch model when selecting an agent (#1362)
* fix: switch model when selecting an agent

The early return in setAgent() checked if the current model was valid
and returned immediately without ever falling through to the agent's
configured model. This meant selecting an agent never updated the
model dropdown to match the agent's preferred model.

Removing the early return allows the fallback chain to work correctly:
1. Persisted session-specific agent-model selection
2. Settings default model
3. Agent's own model (previously unreachable)
4. No change (current model stays)

* fix: prefer agent model over saved selection

* fix: preserve restored model on agent hydration

---------
Co-authored-by: Bohdan Triapitsyn <artmore@protonmail.com>
2026-05-26 02:19:54 +03:00
Erman HAVUÇ 684d55f4aa feat(usage): add toggle to hide prediction rows on usage cards (#1420)
* feat(usage): add showPredValues setting to quota store

* feat(usage): register usageShowPredValues in settings sanitizers

* feat(usage): add i18n key for show predictions toggle

* feat(usage): add show predictions toggle to sidebar

* feat(usage): hide pred row by default, gate on showPredValues

* fix(usage): gate header dropdown PaceIndicator behind showPredValues

* fix(usage): gate VSCodeLayout PaceIndicator behind showPredValues

* fix(usage): correct indentation drift in Header.tsx PaceIndicator blocks
2026-05-26 01:54:24 +03:00
Bohdan Triapitsyn ceee53576b fix: keep context panel within app bounds
Prevents the context panel from overflowing past the right edge
Clamps resize width to the available layout space
Handles previously saved oversized panel widths
2026-05-26 01:51:44 +03:00
Bohdan Triapitsyn 2014303bc0 feat: add startup launch support (#1421)
Add launch-at-startup support across the Electron desktop app and the web CLI.

Electron now supports macOS launch-at-login through the native login item API. Login launches start OpenChamber in the background without opening a window, while Dock activation, deep links, and second-instance launches still open or focus the normal app window. The desktop Settings UI now exposes a localized launch-at-login toggle in Desktop Network Access.

The web CLI now includes `openchamber startup status|enable|disable`, backed by native user services:
- macOS: launchd LaunchAgent
- Linux: systemd --user service
- Windows: Task Scheduler

Startup services run `openchamber serve --foreground` so the OS service manager owns process lifetime and restarts. Foreground service updates now defer restarts to the service manager instead of spawning duplicate CLI restarts.

Startup services snapshot useful environment variables by default so provider tokens, PATH, SSH agent settings, and OpenCode configuration survive login/reboot starts. The snapshot avoids shell/session-only state, uses systemd-compatible env quoting on Linux, and avoids unused env artifacts on macOS.

Also adds localized docs for startup services and environment variables.
2026-05-26 01:36:11 +03:00
Bohdan Triapitsyn e97bf0d9dc fix: prevent malformed tool diffs from breaking chat
Safely falls back to raw patch text for invalid diffs
Protects individual tool parts from crashing the chat
Covers malformed apply_patch and edit diff cases
2026-05-25 22:10:50 +03:00
Bohdan Triapitsyn b2f7373b79 fix: simplify mobile composer keyboard handling
Use browser keyboard resizing by default on mobile
Remove mobile-only autocomplete button and tabs
Keep autocomplete behavior consistent across mobile and desktop
2026-05-25 21:27:10 +03:00
Bohdan Triapitsyn 6e16504dac release v1.11.6 2026-05-25 19:32:26 +03:00