Skip to content

Releases: charleypeng/opencoder

opencoder v1.2.4

Choose a tag to compare

@github-actions github-actions released this 08 Sep 16:33

[1.2.4]

Changed

  • feat(sessions): Preserve unsent composer drafts per server and session, restoring failed prompt text for a safe retry after a session switch. (sessions)
  • feat(sessions): Add roving keyboard navigation, F2 rename, Shift+F10 menus, and copy actions for workspace directories and session identifiers in the desktop workspace tree. (sessions)
  • feat(sessions): Redesign desktop session context menus with grouped actions, consistent outline icons, visible keyboard focus, and an opaque elevated surface. (sessions)
  • docs(desktop): Add a prioritized desktop UI plan for mouse and keyboard workflows, stable disclosures, panel recovery, and practical acceptance criteria. (desktop)
  • feat(messages): Add restrained live-status highlights and smooth chat disclosures, and collapse tall user messages into expandable previews measured at the current width and scale. (messages)

Fixed

  • fix(desktop): Use compact 208px context menus with 13px labels, 26px rows, and smaller icons and corners for native desktop proportions. (desktop)
  • fix(messages): Extend the chat scroller alongside a sticky composer, include its measured height in the scroll range, and clip virtual overflow so the newest message and scrollbar reach their bottom together. (messages)
  • fix(messages): Fall back to progressively larger history windows when OpenCode rejects documented before cursors, preserving infinite scroll and compacted session history. (messages)
  • fix(messages): Render the first visible page of compacted history immediately, protect paged-history cursor cycles, and derive chat scrolling from one reconciled virtual height. (messages)
  • fix(desktop): Keep right-panel resizing direct by removing width easing while dragging, saving only the final width, clamping it to the available window, and restoring the default width on double-click. (desktop)
  • fix(messages): Restore stable height-and-opacity disclosure motion and remove unrelated activity-card restyling that caused manual folding to jitter. (messages)
  • fix(messages): Continue restoring paged history when the initial session page contains only hidden compaction control records, avoiding an empty chat until the next prompt. (messages)
  • fix(messages): Clamp stale virtual-list scroll offsets and scope row measurements per session so switching chats cannot leave a blank transcript viewport. (messages)

opencoder v1.2.3

Choose a tag to compare

@github-actions github-actions released this 05 Sep 16:05

[1.2.3]

Fixed

  • fix(messages): Keep process entries and tool summaries compact by default, revealing full reasoning, updates, commands, and output only when their individual row is opened. (messages)

opencoder v1.2.2

Choose a tag to compare

@github-actions github-actions released this 05 Sep 02:16

[1.2.2]

Fixed

  • fix(sessions): Keep the native folder picker behind explicit onboarding, add-workspace, settings, and change-directory actions, so workspace and session navigation never request folder access. (sessions)

opencoder v1.2.1

Choose a tag to compare

@github-actions github-actions released this 04 Sep 15:58

[1.2.1]

Fixed

  • fix(messages): Fetch the authoritative message parts when opening a tool card so bash and edit details remain available even if the streamed part is incomplete. (messages)
  • fix(messages): Remove the redundant important-command summary from completed run outcomes. (messages)
  • fix(messages): Make nested tool output disclosures a single unambiguous clickable row inside activity traces. (messages)
  • fix(messages): Allow tool cards within expanded activity traces to reveal their output, and remove redundant AI badges from chat messages. (messages)
  • fix(messages): Remove redundant patch event cards from the chat transcript while retaining their diff data for run summaries. (messages)
  • fix(messages): Reveal one selected file diff at a time from completed-run summaries, keeping multi-file output scannable. (messages)
  • fix(sessions): Increase the overflow session-title marquee speed by a further 20%. (sessions)
  • fix(messages): Retrieve line-level patch content for expanded run summaries and merge absolute patch paths with relative diff paths. (messages)
  • fix(desktop): Show a completed run's diff inline on expansion, open its full review in the right workspace panel, and remove the right-panel splitter's fixed width bounds. (desktop)
  • fix(messages): Render patch diffs when patch events use absolute paths, add visible attachment-button hover feedback, and remove the redundant streaming progress line. (messages)
  • fix(ui): Rebase the desktop UI scale so 100% matches the former 120% visual size, and simplify session rows to title-only labels. (ui)
  • fix(sessions): Refine the open-workspace folder outline, reduce session-title scale, and speed overflow-title scanning. (sessions)
  • fix(sessions): Show open workspace folders, reveal truncated session titles on hover or focus, prevent IME Enter commits from sending early, and restore reverted user text to the composer. (sessions)

opencoder v1.2.0

Choose a tag to compare

@github-actions github-actions released this 04 Sep 08:31

[1.2.0]

Changed

  • feat(messages): Group streamed assistant work into a collapsible task timeline with immediate waiting feedback and final file and command summaries. (messages)

opencoder v1.1.1

Choose a tag to compare

@github-actions github-actions released this 04 Sep 06:12

[1.1.1]

Changed

  • feat(messages): Replace the streaming process fold with a collapsed Activity Trace for observable operation states, attention events, and restrained active progress motion. (messages)
  • fix(desktop): Match the default right workspace-tools width to the 256px session sidebar while preserving pointer and keyboard resizing. (desktop)

Fixed

  • fix(servers): Start local OpenCode from Finder-safe executable paths on the configured loopback port, initialize health monitoring immediately, and persist selected folder scopes to prevent repeated macOS authorization prompts. (servers)

opencoder v1.1.0

Choose a tag to compare

@github-actions github-actions released this 02 Sep 11:24

[1.1.0]

Added

  • feat(messages): Replace the composer image placeholder with a plus attachment picker that sends image and video FilePartInput payloads and renders inline previews. (messages)
  • feat(desktop): Add a Codex-style right workspace-tools panel for review, files, and browser views with collapsible, maximizable, keyboard-accessible splitter resizing. (desktop)
  • feat(pet): Bundle original orange-tabby, Shiba Inu, and retro helper-robot sprite packs as built-in animated defaults. (pet)
  • feat(terminal): Restore existing PTYs when opened and dock the terminal below the chat transcript for a working in-context terminal. (terminal)
  • feat(sessions): Add a checkable workspace-tree batch mode with API-confirmed delete and archive operations, including partial-failure recovery. (sessions)
  • feat(desktop): Add a keyboard-accessible, persisted splitbar for resizing the workspace sidebar. (desktop)
  • feat(servers): Add an app-managed local opencode serve mode with automatic startup and lifecycle cleanup. (servers)
  • feat(pet): Present available pet packs as searchable preview cards for faster visual selection. (pet)
  • feat(settings): Add a system file-picker button for importing .opet pet packs and selecting the newly installed pack. (settings)
  • feat(pet): Add data-driven sprite-sheet playback and tap/hover/drag reactions so pets can blink, move, and show expressions from pack manifests. (pet)
  • feat(desktop): Move the sidebar toggle beside the native window controls in the title bar with a restrained hover and pressed-state treatment. (desktop)

Changed

  • fix(desktop): Match the right-tool maximize and collapse controls at the same size and place maximize before collapse in the title bar. (desktop)
  • feat(desktop): Add an embedded right-side Browser preview with a safe system-browser fallback while preserving the Codex-style tool panel layout. (desktop)
  • feat(desktop): Remove redundant center-pane chrome, move right-tool controls into the title bar, and align the right-panel surface with the chat canvas. (desktop)

Fixed

  • fix(ci): Download the Windows .exe/.msi installers alongside their signatures when assembling latest.json; Tauri v2 signs those self-contained installers directly and never produces *.nsis.zip/*.msi.zip, so the missing download silently dropped the windows-x86_64 updater entry and failed the release. (ci)

  • fix(sessions): Remove the redundant standalone batch actions button and keep batch controls in the session context menu. (sessions)

  • fix(settings): Register custom providers with the OpenAI-compatible package and model metadata, refresh them into the shared catalog, and search providers hidden by the collapsed view. (settings)

  • fix(desktop): Use one overlay divider per workspace boundary so sidebar resizing and maximized tools never stack or leave a splitbar gap. (desktop)

  • fix(desktop): Hide the right workspace tools completely when collapsed so no empty rail remains beside the chat. (desktop)

  • fix(desktop): Keep file content in the right workspace tool, portal context menus above clipped navigation layers, and long-press menu taps working across the overlay. (desktop)

  • feat(desktop): Keep right-side tool controls in sync with the title bar, show file contents in the Files tool, and raise the navigation columns above the workspace so their menus remain visible. (desktop)

  • fix(desktop): Keep the titlebar sidebar control icon static so toggling the sidebar does not rotate it. (desktop)

  • fix(desktop): Animate sidebar collapse and expansion with a measured width, opacity, and content-slide transition instead of an abrupt display toggle. (desktop)

  • fix(desktop): Suppress the WebView reload and inspector context menu in release builds. (desktop)

  • fix(styles): Make the light workspace canvas white while retaining a contrasting gray sidebar and controls. (styles)

  • fix(settings): Give desktop settings navigation items a uniform full-width selection background. (settings)

  • fix(desktop): Sync tray menu labels with the language selected in app settings. (desktop)

  • fix(sessions): Use the native folder picker only for local-mode servers and keep the in-app browser as the remote fallback. (sessions)

  • fix(models): Show only connected providers and defer catalog filtering so model search stays responsive. (models)

  • fix(settings): Explain that bundled pet packs are already installed instead of exposing a raw reserved ID. (settings)

  • fix(pet): Prevent concurrent renderer mounts from appending duplicate pet canvases to the companion window. (pet)

  • fix(pet): Resize the native companion window in logical pixels so Retina displays no longer clip the sprite to a partial image. (pet)

  • fix(pet): Fill the companion window with the rendered pet and clear every webview background layer so its transparent edge blends into the desktop. (pet)

  • fix(pet): Discover bundled pet packs from Tauri's deployed resources/pets directory so the default companion appears without an import. (pet)

  • feat(pet): Let Settings show selectable pet packs and make enabled companion movement a slow local wander instead of screen-wide jumps. (pet)

  • feat(pet): Add typed pet-pack state, binary asset URL caching, and a safe migration from legacy character preferences to selected pack IDs. (pet)

  • feat(pet): Add a secure desktop registry for data-only .opet packs, including manifest/media validation, atomic import, version selection, quarantine diagnostics, and binary-only asset reads for the interactive pet system. (pet)

opencoder v1.0.4

Choose a tag to compare

@github-actions github-actions released this 30 Aug 17:12

[1.0.4]

Added

  • Desktop UI audit report (docs): docs/ui-audit-2026-08.md — a Playwright-driven pass over every desktop screen (21 evidence screenshots in docs/screenshots/audit-2026-08/) covering layout/design, desktop-operation convenience, performance (prod bundle re-measured) and the settings center, with a prioritized findings table. (docs)

  • Rail sidebar toggle button (feat(desktop)): the server rail gains a sidebar-toggle button above the settings gear — the collapsed sidebar is restorable with a click instead of only ⌘/Ctrl+B, and the button doubles as a discoverable collapse control. (desktop)

Changed

  • Providers edit on double-click (feat(settings)): double-clicking a provider row opens an edit dialog with the API key field, Save, Remove (when connected) and Authorize (for OAuth providers) — the key and connection become editable without hunting for the inline form. (settings)

  • Config section re-laid out around one model editor (feat(settings)): the opencode.json model dual-select row is gone — the "Default model" row is the single model editor (its hint now explains it wins over the config-file key, which stays editable through the JSON editor); all config rows now drop their control BELOW the label on narrow windows instead of squeezing it into a fixed-width box where it clipped against the dialog edge. Config rows are now fully STACKED — label, hint, then the control in a bounded column below — replacing the side-by-side grid whose right-aligned controls kept clipping against the dialog edge at real-world widths (select intrinsic widths grow with the longest option text; the zh "未设置——采用服务端默认" made every select ~250px). One vertical lane cannot clip horizontally at any width, language or UI scale, and the section body forbids horizontal overflow. (settings)

  • Providers collapse to the connected set (feat(settings)): the Providers section now lists only connected providers; known-but-unconnected ones hide behind a "Show {{count}} more" toggle (with no connection at all the full list stays visible). (settings)

  • The opencode.json model editor is "Config file model" (fix(settings)): the Config section had two adjacent rows both titled "Default model" (the client-side default and the model key of opencode.json); the config-file one is renamed with a hint explaining the override order, and the effective-default chip is width-capped so it no longer crowds the dialog edge on narrow windows. (settings)

Fixed

  • UI scale slider commits on release (fix(settings)): dragging the Appearance scale slider applied the scale on every input event, which re-scaled the root font size, re-laid-out the centered dialog and moved the slider under the pointer — a jitter loop that made the slider undraggable. The drag now only previews the readout; the value applies and persists on release. (settings)

  • Pet controls sit on one row with their labels (fix(settings)): the pet type/movement selects and size/opacity sliders were stacked full-width blocks under their labels; they now render as label-left / control-right rows matching the toggle rows below. (settings)

  • Search / diff / changes refinements (feat(vcs)): the Changes panel's "Apply patch" moved from a permanent bottom box into a dialog opened from the header (the change list gets the full panel height; the confirm step stays), stats-only diff files render a styled empty block with an explanation instead of a bald text row, and the search "No matches" state names the directory that was searched. (vcs)

  • Instant default-shell terminal (feat(terminal)): the "+" button now spawns the server's default shell immediately — the shell picker moves to a chevron next to it and the empty state gains a "New terminal" button (docs/ui-audit-2026-08 §3: creating a terminal no longer requires routing through the picker). (terminal)

  • Status-bar chip labels on wide windows (feat(desktop)): the branch / LSP / formatter / usage chips gain a brief text label at window widths ≥1280px (hidden below, where the dense icon+value form and the hover tooltips remain). (desktop)

  • CI startup-bundle size guard (chore(ci)): pnpm build && pnpm check:bundle now runs in CI — the vite startup chunk fails the build once its gzip size leaves the 330 KB budget (2026-08 audit measured 320.46 KB with +57 KB raw drift since 2026-08-05), turning further bundle drift into a hard signal. (ci)

  • Deduplicated settings sections (refactor(settings)): the About section merged into General (server version/status, license and copyright now live there — both sections showed the same identity, version and links), and the Models section folded into Config as a "Default model" row (the nav entry was a single row duplicating Config's editor); the settings search keywords now index the sections' control labels ("accent", "default model"…) so queries land on the right section. Nav shrinks from 15 to 13 entries. (settings)

  • Sidebar tree tab renamed and ignored entries hidden (feat(files)): the sidebar's second tab is now "Tree" instead of a second "Files" (the main pane's Files viewer kept the name — one label for two scopes was confusing), and the file tree hides ignored entries (node_modules, build output) behind a persisted "Show ignored" toggle by default. (files)

  • Command palette hints and honest grouping (feat(desktop)): the palette gains a keyboard-hint footer (↑↓ Navigate · ↵ Open · Esc Close) and the section holding "New session / Open settings / Toggle sidebar / Open terminal / Open session diff" is now labeled "Actions" instead of "Settings" — it never contained settings entries. (desktop)

  • Composed server-home empty state (fix(servers)): with no servers saved, the home page now centers one block — guide copy plus a primary "Add server" button — instead of a dashed card in the corner with a detached hint line below it. The e2e/L2 entry points (testids) are unchanged. (servers)

  • Grouped settings navigation (feat(settings)): the desktop settings sidebar renders four group headers — App, Connections, System, Advanced — instead of a flat 15-entry list, and the settings search now collapses to the matching group (headers of empty groups hide). The Servers section's per-server switch gains a visible "Notifications" label (it carried only an aria-label before). (settings)

Fixed

  • Defer provider-id validation hints (fix(settings)): the Add-provider dialog no longer shows "Provider ID is required" on a pristine form — the hint appears once the field was typed into (or cleared), matching when validation is actually actionable. (settings)

  • Dispatch ⌘/Ctrl shortcuts while typing (fix(desktop)): the input guard no longer blocks ⌘/Ctrl combos — ⌘K (command palette), ⌘P (quick open), ⌘⇧F (search), ⌘D (diff), ⌘J (terminal) and ⌘, (settings) now work from inside any text field (composer, search boxes), since a modifier combo types nothing into the control. Plain-key shortcuts (Tab, ↑, Esc) keep the guard. (desktop)

  • Localize the desktop workspace chrome (fix(desktop)): the "Select a session" empty state (chat and diff views) no longer ships the dev placeholder "Select a session — M2", and the "Back to servers" button, the sidebar Workspaces/Files tabs and the main Chat/Files tabs now render through i18n — all follow the app language instead of hardcoded English. (desktop)

opencoder v1.0.3

Choose a tag to compare

@github-actions github-actions released this 18 Aug 08:30

[1.0.3]

Added

  • Process fold for thinking steps (feat(messages)): reasoning and tool-call parts of a message now render in ONE collapsed fold below the answer instead of interspersed between text parts — the header shows a status summary before expanding (tool-call count, succeeded/failed/running, reasoning volume), the fold auto-expands while the session is generating and auto-collapses when it ends, and expand/collapse animates with the standard motion tokens (0ms under reduced motion). (messages)

Changed

  • Publish releases immediately on tag push (chore(ci)): release.yml now creates a PUBLISHED release instead of a draft — no manual publish step, matching the previous debug-channel behavior users relied on for three-platform installers. (ci)

  • Tag pushes trigger only the release pipeline (chore(ci)): ci.yml, e2e.yml and mobile.yml had their automatic triggers commented out (kept as manual workflow_dispatch) so they no longer run on every push. (ci)

Removed

  • Debug CI release channel (chore(ci)): removed .github/workflows/debug.yml and folded its immediate-publish, unsigned-macOS behavior into release.yml — a single tag-triggered pipeline now produces the three-platform installer set without polluting the release with throwaway-signature artifacts. (ci)

Fixed

  • Do not reference secrets in step if conditions (fix(ci)): GitHub Actions cannot read the secrets context inside if, which made it fail to parse release.yml (workflow name came back as the file path and tag pushes never started a Release run). The Apple certificate presence flag is now materialized as workflow-level env.HAS_APPLE_CERTIFICATE and checked in the step instead. (ci)

  • Scope Apple signing secrets to the import step (fix(ci)): release.yml previously set APPLE_CERTIFICATE etc. at the workflow level, so a missing secret reached tauri-cli as a present-but-empty variable and broke macOS builds (security import keychain failure). The variables now live only inside the Import Apple certificate step (which runs only when the secret has a value), so without a certificate tauri falls back to ad-hoc signing. (ci)

  • Update tauri-action updater-json input (fix(ci)): renamed uploadUpdaterJson to includeUpdaterJson in release.yml to match the current tauri-action@v0 input schema (the old name now warns as an unexpected input). (ci)

  • Gate dock-reopen handling to macOS (fix(desktop)): RunEvent::Reopen exists only on macOS, so the previous #[cfg(desktop)] broke Linux/Windows builds (E0599: no variant named Reopen); restrict the branch to target_os = "macos". (desktop)

  • Pin ident_case to 1.0.1 (fix(build)): Cargo.lock referenced ident_case 1.0.2, a version that does not exist on crates.io, breaking every tagged build (darling_core resolution failure); downgrading to 1.0.1 restores a resolvable dependency graph. (build)

opencoder v1.0.2

Choose a tag to compare

@github-actions github-actions released this 18 Aug 02:23
docs: note secrets-in-if fix in changelogs