Skip to content

v0.20.1

Latest

Choose a tag to compare

@github-actions github-actions released this 03 Oct 13:56
a8545a3

Highlights

  • A unified Files workspace: Browse Workspace, Changes and Commits in one panel, open central file/diff previews, edit text with Save or Ctrl/Cmd+S, and inspect historical image changes without checking out another revision.
  • Better mobile and narrow-window layouts: Conversation controls stay compact, the composer follows the visible conversation height, and desktop minimum sizes respect application zoom. Mobile browser-preview templates now use native touch emulation when available.
  • Questions and permissions above the composer: Answer native requests in a dedicated dock without losing your draft. Completed questions retain selected-option descriptions and free text, and permission decisions remain available as durable receipts.
  • Native skills and web search: Attach Location skills through @, view structured search results and provider-consent requests, and configure global or project web-search defaults in Preferences.
  • Provider account controls: Select, rename and remove native provider accounts, with optional Codex account rotation based on fresh quotas. Usage stays stable across catalog refreshes and repeated connection events.
  • Fewer responsiveness stalls: Event routing no longer waits behind worktree discovery, compaction-related discovery is deferred safely, and supported pending-request recovery avoids loading historical Locations.

Files and conversation workflow

  • Workspace, staged/unstaged Changes and paginated Commits share file-row preview controls. Selecting a row no longer opens a preview implicitly.
  • Stage or unstage files with explicit actions or drag-and-drop; commit actions remain at the top of the staged section.
  • Workspace text and Markdown source stay editable in the central reader. Unsaved drafts survive closing or switching readers, and saving checks for external changes before overwriting.
  • Git image previews use the actual compared revisions rather than substituting the current file. Historical diffs remain read-only.
  • File trees, Git status and history serve cached snapshots and revalidate lazily; Monaco tokenizers ship locally for offline highlighting.
  • Question and permission queues retain stable selection and request drafts across refreshes and session navigation. Multiple requests use bounded previous/next navigation.
  • Full-history search fills result pages correctly and avoids redundant counting work.
  • Enter in a composer picker no longer accidentally submits a draft; model favorites mode persists independently of the active model.
  • Preview and persistent utility windows expose a close action in their existing toolbar.

Providers, skills and native tools

  • Preferences separates model providers and web-search providers, including a global search default and project override.
  • Search results and provider-consent Forms use dedicated native presentation, with raw output retained for unrecognized responses.
  • @ skill selection attaches removable badges and sends explicit native skill IDs with the prompt.
  • Code Mode output displays native tool-call metadata alongside the existing image/output surface.
  • Native provider account ordering determines the active account; environment-based connections remain read-only.
  • Codex quota reads follow the selected native account. Optional account rotation is opt-in, checked before prompt/command admission, and never replays a failed prompt.
  • Usage panels preserve quota values during provider catalog refreshes and duplicate connection notifications, and explain feature-local runtime limitations.

Mobile, desktop and reliability

  • Composer context selectors and actions stay on one row; narrow conversation headers use their overflow menu and hide the timeline below 420 CSS pixels without changing the saved preference.
  • Manually resized composer heights are stored proportionally and adapt to visible-viewport changes, including the mobile keyboard. Long drafts remain scrollable.
  • Electron and Tauri desktop minimum sizes follow application zoom. Native mobile browser previews automatically apply touch emulation; iframe fallback changes dimensions only.
  • Tauri on macOS avoids startup geometry-event feedback; Electron avoids accessing destroyed windows during close.
  • OpenCode installation shows sustained progress and can recover interrupted Windows installations.
  • Local TLS certificates use positive serial numbers, with repair of affected local certificates.
  • Server information distinguishes the server platform from the client environment.
  • Event ownership checks use registered worktrees without joining slow discovery scans. Pending queues remain intact on incomplete coverage or recovery errors.
  • Missing-session errors remain identifiable for orphaned subsessions, and parent-session creation is fenced against invalid lifecycle transitions.

Runtime and upgrading

  • OpenCode 2.0.22 is the recommended and qualified runtime for this release. The technical minimum remains 2.0.7; feature-local API requirements do not raise the global minimum.
  • Codex quota reads require the native credential API introduced in 2.0.20. Older services show feature-local unavailability rather than blocking the application.
  • Loaded-only pending-request recovery uses a connection-negotiated capability qualified with 2.0.22. Older services retain their discovery behavior; updating CodeNomad alone does not give them this recovery optimization.
  • Upgrade remote CodeNomad servers to 0.20.1 for the published UI. Its manifest requires the matching backend for the new routes.
  • Installing or updating the OpenCode CLI does not silently restart an already-running shared service. Restart remains an explicit action.

Full Changelog: v0.20.0...v0.20.1

What's Changed

  • fix(setup): recover interrupted Windows OpenCode installations by @pascalandr in #783
  • docs: refresh README and workspace screenshot for 0.20 by @pascalandr in #782
  • fix(models): persist the favorites mode and keep the active model listed by @pascalandr in #787
  • chore(opencode): qualify and recommend stable 2.0.18 by @pascalandr in #788
  • fix(setup): show sustained OpenCode installation progress by @pascalandr in #784
  • fix(electron): avoid destroyed window access on close by @pascalandr in #785
  • chore(opencode): qualify and recommend stable 2.0.19 by @pascalandr in #799
  • fix(missions): replace reader return action with upper-right close icon by @pascalandr in #802
  • fix(ui): expose close actions in existing preview and utility toolbars by @pascalandr in #803
  • fix(status): keep connected MCP indicators static at rest by @pascalandr in #806
  • chore(opencode): qualify and recommend stable 2.0.20 by @pascalandr in #810
  • fix(files): restore workspace-root and visible parent navigation by @pascalandr in #807
  • fix(usage): use selected native V2 Codex credentials by @pascalandr in #811
  • fix(mobile): responsive conversation controls and proportional prompt sizing by @pascalandr in #813
  • chore(opencode): qualify and recommend stable 2.0.21 by @pascalandr in #815
  • fix(proxy): preserve missing-session errors for orphaned sub-sessions by @pascalandr in #814
  • feat(files): unify Workspace, Changes and Commits with central previews by @pascalandr in #797
  • fix(usage): prevent quota panel flicker and explain older service limitations by @pascalandr in #818
  • fix(layout): make desktop minimums zoom-aware and compact headers at 420px by @pascalandr in #817
  • fix(tauri): prevent macOS startup window event feedback by @pascalandr in #821
  • fix(info): distinguish server platform from client environment by @pascalandr in #820
  • fix(usage): preserve quotas during provider catalogue refreshes by @pascalandr in #823
  • fix(composer): prevent picker Enter from submitting drafts by @pascalandr in #827
  • fix: reduce compaction and cross-session responsiveness stalls (#824) by @pascalandr in #825
  • fix(ci): stabilize Windows native tests and artifact comments by @pascalandr in #828
  • feat(transcript): native Code Mode presentation (1/8) by @pascalandr in #789
  • feat(websearch): native results and provider consent (2/8) by @pascalandr in #790
  • feat(composer): native skill attachments (3/8) by @pascalandr in #791
  • feat(missions): add native dynamic session workflows by @pascalandr in #673
  • feat(settings): scoped web search configuration (4/8) by @pascalandr in #792
  • feat(chat): dock native questions and permissions above the composer by @pascalandr in #829
  • fix(opencode): qualify 2.0.22 and fence parent session creation by @pascalandr in #830
  • revert(missions): undo accidental merge of PR #673 by @pascalandr in #831
  • feat(providers): expose per-account controls for existing credentials (5/8) by @pascalandr in #793
  • fix(tls): generate positive serials and repair local certificates by @pascalandr in #834
  • fix(usage): preserve quotas on duplicate connection notifications by @pascalandr in #835
  • fix(chat): simplify and polish question and permission requests by @pascalandr in #836
  • fix(events): prevent relay timeout on worktree discovery waits by @pascalandr in #837
  • feat(chat): preserve permission decisions and richer question receipts by @pascalandr in #838
  • fix(history): fill search pages and remove redundant counting by @pascalandr in #839
  • fix(performance): recover pending requests without warming historical Locations by @pascalandr in #840
  • chore(release): prepare stable 0.20.1 by @pascalandr in #842
  • Release v0.20.1 - unified Files, mobile layouts, provider accounts and responsiveness by @pascalandr in #843

Full Changelog: v0.20.0...v0.20.1