Skip to content

v0.20.0-dev-v2-20260829-993f3245

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 29 Aug 08:02
· 1 commit to dev since this release
5615682

CodeNomad 0.20: OpenCode V2 preview

This is the first CodeNomad 0.20 development prerelease built from DEV-v2. It is an experimental preview of the native OpenCode V2 migration described in PR #647.

Important: OpenCode version requirement

  • CodeNomad 0.20.x uses OpenCode V2 and requires the opencode2 CLI.
  • CodeNomad V1 remains on the 0.19.x line and continues to use the opencode CLI.
  • CodeNomad 0.20 has no V1 runtime fallback. Install OpenCode V2 before starting this build:
npm install -g @opencode-ai/cli@beta

Other supported installation methods are documented at https://opencode.ai/v2/docs/.

Important: first-start database migration

Back up your OpenCode data before the first V2 start, and close CodeNomad 0.19/OpenCode V1 while the migration runs. The default database is the existing OpenCode SQLite file, commonly:

~/.local/share/opencode/opencode.db

On the first opencode2 service start:

  1. OpenCode V2 opens the same default opencode.db used by V1.
  2. It keeps the legacy V1 session/message tables and creates the V2 session/message representation in new tables.
  3. Existing V1 sessions and messages are converted/copied into that V2 representation. The database file itself is not duplicated, but session history is represented in both the V1 and V2 schemas and can therefore consume additional disk space.
  4. After this one-time migration, the two histories are not synchronized. V1 continues writing its legacy tables and V2 writes its V2 tables, so sessions created or changed in one version will not automatically appear or update in the other. Treat the migration point as the beginning of a V1/V2 data fork.

One-time copy, then permanent fork: the migration copies the existing history once. From that point onward, there is no synchronization in either direction. A session created or changed later in CodeNomad 0.19/OpenCode V1 remains on the V1 side; a session created or changed in CodeNomad 0.20/OpenCode V2 remains on the V2 side. Starting either version again does not import the other version's newer changes.

Do not interpret side-by-side installation as two-way session synchronization. Keep the backup if you may return to V1, avoid running V1 and V2 concurrently during migration, and wait for migration completion before retrying startup. Migration can take a long time for very large databases; the upstream large-database startup issue is tracked at anomalyco/opencode#41739.

Highlights

  • Replaces the OpenCode V1 SDK, custom plugin, and one-runtime-per-workspace architecture with the native V2 client and one authenticated shared OpenCode service.
  • Uses native locations, projects, sessions, cursor pagination, Forms, permissions, Shells, providers, models, agents, MCP resources, files, and worktrees.
  • Adds authoritative reconnect reconciliation, bounded 200-message transcript windows, virtualized timelines, and safer optimistic prompt handling.
  • Adds UUID-based multi-window Electron/Tauri state, content-addressed restore data, duplicate-folder tabs, and hardened shutdown/recovery behavior.
  • Fences worktree deletion against active or in-flight session mutations, with native session evacuation, verification, and rollback.
  • Strengthens proxy ownership, cursor, location, authentication, path, and remote-window security boundaries.
  • Adds the Developer Automation foundation for isolated Electron/Tauri launch, inspection, diagnostics, restart, and process cleanup.

Beta limitations

OpenCode V2 is still beta. Its server and plugin APIs may change, V1 plugins do not work without migration, and CodeNomad 0.20 intentionally does not emulate unsupported V1 behavior with private APIs or a fallback runtime.

Full migration details: MIGRATION_V2.md and DESKTOP_V2_COMPARISON.md.

Included contribution

  • fix(usage): parse credit-based quota limits for z.ai coding plans by @Kondziosz in #664

Full Changelog: v0.19.0-dev-20260828-0fbf7b25...v0.20.0-dev-v2-20260829-993f3245