Skip to content

Releases: OdradekAI/opi

v0.3.0

25 May 02:00

Choose a tag to compare

What's new in v0.3.0

Phase 2 hardening: multi-provider support (6 LLM providers), session
persistence, context compaction, configurable TUI, and cost tracking.

Added

  • 6 LLM providers — OpenAI Chat, OpenAI Responses, Google Gemini, Mistral, OpenRouter, plus existing Anthropic support
  • opi-ai: retry/backoff/rate-limit support with configurable strategies
  • opi-ai: usage accumulation and cost tracking across turns
  • opi-agent: session v1 JSONL storage for conversation persistence
  • opi-agent: compaction engine with trigger and hook support
  • opi-agent: thinking config passed through to provider requests
  • opi-coding-agent: session list/resume/delete CLI flags
  • opi-coding-agent: --json NDJSON output mode for non-interactive use
  • opi-coding-agent: usage accumulation wired to TUI status bar
  • opi-coding-agent: edit tool captures before/after content
  • opi-coding-agent: workspace path validation for all tools
  • opi-tui: configurable keybindings with TOML parsing
  • opi-tui: Theme struct with default and monokai palettes
  • opi-tui: DiffView widget for edit/patch visualization

Fixed

  • Session runtime tests serialized to avoid env var races

Full Changelog: v0.2.0...v0.3.0

v0.2.0

21 May 17:07

Choose a tag to compare

Summary

Phase 1 MVP: functional Anthropic-based coding assistant with six tools, basic TUI, TOML config, and mock-provider integration tests.

Added

  • opi-ai: Provider-agnostic LLM streaming with Provider trait, message/stream types, Anthropic SSE provider, provider registry, and shared MockProvider test harness
  • opi-agent: Agent loop with turn lifecycle, Tool trait with JSON Schema validation, Agent wrapper with prompt/continue/abort/subscribe, hooks and steering/follow-up queues
  • opi-coding-agent: Six built-in tools (read, write, edit, bash, glob, grep) with workspace safety boundaries, system prompt builder, TOML config with 5-tier precedence, interactive TUI mode, and non-interactive mode with high-risk tool safety policy
  • opi-tui: TUI shell with message list, input editor, status bar, tool call view, markdown and code block rendering

Fixed

  • SSE parser surfaces malformed events instead of silently dropping them
  • SSE parser handles CRLF line endings for cross-platform robustness
  • BashTool uses cmd.exe on Windows, sh on Unix
  • Agent loop emits ToolExecutionStart before parallel tool spawning
  • AuthFailed error variant maps to exit code 3
  • Config: explicit --config validation and env precedence fix
  • Agent loop uses tokio::select! for responsive stream cancellation

Migration Notes

  • Config format is TOML with [defaults], [thinking], [providers.anthropic] sections
  • CLI flags: -m (model), -c (config), -s (system prompt), --non-interactive, --allow-mutating, -v (verbose), -V (version)
  • Non-interactive mode blocks write/edit/bash tools by default; use --allow-mutating or allow_mutating_tools = true in config to enable

What's NOT Included

Sessions, compaction, JSON output mode, MCP, plugins, web UI, rich diff views, and syntax-highlighted code blocks are not in this release.

v0.1.1

20 May 15:14

Choose a tag to compare

What's Changed

Added

  • opi-implement skill for structured implementation workflows with phased gates, verification tiers, and JSON ledger tracking.
  • CI workflows: ci.yml (fmt, clippy, test, doc) and release.yml (cross-platform binary builds on tag push).
  • Opi technical specification document (docs/opi-spec.md).

Fixed

  • Release skill: keep SHA256SUMS local-only, use version-based artifact directory.

Changed

  • opi-web-ui marked as publish = false (not ready for crates.io).

Full Changelog: v0.1.0...v0.1.1

v0.1.0 — scaffolding release

19 May 17:41

Choose a tag to compare

opi v0.1.0 — scaffolding release

Initial release of the opi workspace, a Rust reimplementation of earendil-works/pi.

This is a scaffolding release: the workspace layout, crate boundaries, and module structure are in place, but the implementations are stubs. The opi binary supports --version and --help; running it without arguments prints a placeholder message.

What's in this release

Five crates under lockstep versioning:

Crate Purpose
opi-ai Unified multi-provider LLM API
opi-tui Terminal UI with differential rendering
opi-agent Agent runtime with tool calling and transport
opi-web-ui Reusable web chat components
opi-coding-agent Produces the opi binary

The release also ships the opi-release skill — a seven-phase release workflow with explicit irreversibility gates for GitHub Releases and crates.io.

Binaries

Pre-built opi binary for Windows x64 is attached. Verify with the included SHA256SUMS.txt.

What's next

Implementation work begins in v0.2.0. Subsequent releases will add real functionality and publish to crates.io.