Release Notes
Added
- Embed the built web UI into the binary (rust-embed), so
opendev run ui
serves the frontend for cargo install and release-binary installs, not
just repository checkouts (#183)
- Fall back to the built-in provider list in first-run setup and
/model
switching when the models.dev registry is empty or unreachable; keyless
local providers (ollama, lmstudio) skip the API-key prompt (#109, #42)
- Offline / air-gapped usage documentation covering
OPENDEV_DISABLE_REMOTE_MODELS, OPENDEV_API_BASE_URL, and
OPENDEV_MODELS_DEV_PATH (#42)
- Display-width-aware soft-wrapping for long input lines in the TUI, with
cursor scroll-into-view (#61)
- Post-release checksum-verification job that downloads every published
artifact and diffs its SHA256 against the manifest, installer, and Homebrew
formula (#41, #84)
Changed
- Adopt the XDG Base Directory Specification (#45). Fresh installs use
$XDG_CONFIG_HOME/opendev (settings, auth, agents, commands, mcp.json),
$XDG_DATA_HOME/opendev (sessions, projects, plans, skills, memory,
worktrees, snapshots), $XDG_CACHE_HOME/opendev (provider cache), and
$XDG_STATE_HOME/opendev (logs, crash reports, debug recordings) on Linux,
or the platform-native equivalents on macOS (~/Library/Application Support/opendev, ~/Library/Caches/opendev). Existing ~/.opendev/
directories keep working unchanged (legacy mode), with a one-time
deprecation notice logged per run. OPENDEV_DIR still overrides everything.
- Refreshed ROADMAP.md to reflect the Rust codebase and linked it from the
README (#115)
Fixed
- Non-interactive (
-p) mode hanging indefinitely on Anthropic
extended-thinking models: capture and echo back thinking signatures across
multi-turn requests, disable the tool-approval channel when nothing drains
it, and cap agent iterations (#103)
- Streaming LLM errors (invalid key, wrong base URL, unreachable host) being
silently retried forever with no UI feedback; fatal errors now fail fast and
the error is surfaced in the TUI and web UI (#13, #110)
- Web UI serving 404 on installed binaries because the static directory was
resolved from a compile-time build path (#183)
- Session title generation panicking (exit 101) when a multibyte character
straddled the truncation boundary (#110)
- Homebrew SHA256 mismatches: the release pipeline mutated archives after
computing checksums, and staged a macOS-only microsandbox resource on all
platforms; checksums are now recomputed after bundling and the formula
resource is platform-scoped (#41, #84)
- All remaining hardcoded
~/.opendev call sites now route through the
centralized path abstraction, so fresh XDG installs no longer silently flip
back into legacy mode when the TUI history, tool-output overflow, memory
tool, crash reporter, recovery snapshots, worktrees, or web MCP editor
write to disk (#45)
/models picker read its model cache from ~/.opendev/cache while the
provider sync wrote to the XDG cache dir, showing "No models available" on
fresh installs (#45)
- Global custom agents, slash commands, and skills are now discovered in the
XDG config/data directories on fresh installs instead of only
~/.opendev/... (#45)
- Flaky MCP stdio/connection tests that were deterministically broken by lost
Python indentation during test extraction (#19)
- Credential-store persistence test failing on machines with
ANTHROPIC_API_KEY set
Install opendev-cli 0.1.9
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/opendev-to/opendev/releases/download/v0.1.9/opendev-cli-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/opendev-to/opendev/releases/download/v0.1.9/opendev-cli-installer.ps1 | iex"
Install prebuilt binaries via Homebrew
Download opendev-cli 0.1.9