Skip to content

Releases: chriswritescode-dev/opencode-manager

v0.9.11

25 Mar 20:19

Choose a tag to compare

v0.9.11

20 commits | 82 files changed | +6,820 / -2,271 lines

Ralph Loop Overhaul

  • Worktree-based session tracking — Ralph loops are now keyed by worktree name instead of session ID, with a KV-backed session mapping (registerSession/resolveWorktreeName/unregisterSession) enabling session rotation without losing loop state (#172)
  • Session rotation — Loops can now rotate to a fresh OpenCode session mid-run, preventing context bloat while preserving iteration state and worktree
  • Watchdog with stall detection — Watchdog now tracks by worktree name, resolves the current session dynamically, and includes compact as an active work status (#170)
  • Ralph status dialog — New frontend UI (RepoRalphList, useRalphStatus hook) showing active/completed loops with status icons, duration, iteration count, phase badges, and cancel buttons (#171)
  • Audit improvements — Auditor now checks KV store for prior review findings (review-finding: prefix), verifies if issues are resolved, and cleans up stale findings
  • Partial name matchingfindCandidatesByPartialName for fuzzy Ralph loop lookup from CLI
  • Graceful cancellation — Cancelled loops now commit and clean up worktrees (same as completed)

KV Store Enhancements

  • Extended default TTL — KV entries now expire after 7 days (was 24 hours)
  • Configurable TTLcreateKvService accepts defaultKvTtlMs for project-level TTL override
  • Prefix filteringmemory-kv-list supports optional prefix parameter for scoped queries
  • Delete support — New memory-kv-delete tool for removing individual entries

Schedule Run History

  • New Run History tab on GlobalSchedules page with run detail panel and history cards
  • listAllScheduleRuns API endpoint and DB query for cross-schedule run listing

Frontend Improvements

  • PWA update prompt — Notification when a new service worker version is available
  • Dynamic prompt overlay height — Session detail page now measures prompt input height with ResizeObserver instead of fixed padding
  • Session statuscompact state now treated as active (prevents premature "session ended" display)
  • Scroll-to-bottom — Improved auto-scroll UI and session status handling

Backend Refactoring

  • Shared route helpers — New route-helpers.ts utility (parseId, handleServiceError) used across schedule, STT, TTS, prompt-template, and OAuth routes
  • Discovery cache — New discovery-cache.ts for caching model discovery results with 1-hour TTL
  • Schedule hooks refactored to accept repoId as parameter

Memory Package (v0.0.23)

  • CLI commands enhanced with partial matching and improved formatting
  • Memory package tests added to root test script
  • Comprehensive test suites for CLI commands (cancel, cleanup, list, stats, status), Ralph, and partial matching

Bug Fixes

  • Fixed TypeScript errors in schedule components and useSchedules hook mutation callbacks
  • Fixed global schedule repo selector broken mutations (#168)
  • Removed unnecessary bottom padding from repo list container

Release v0.9.10

22 Mar 23:05

Choose a tag to compare

Features

Global Schedules Dashboard (#167)

  • Mobile-responsive UI for managing schedules across all repositories
  • New GlobalSchedules page with comprehensive schedule management
  • Backend API endpoints for global schedule queries

Skills Editor UI & Backend Service (#165)

  • Full skills management interface with dialog components
  • Backend service for CRUD operations on skills
  • Shared schema for skills validation
  • Repository-level skills with prompt injection support

Cron-Based Scheduling with Prompt Templates (#164)

  • Database migrations for cron support
  • Prompt templates integration
  • New routes for prompt template management
  • Enhanced schedule service with cron job support

Question Prompt UI Simplification (#166)

  • Space-saving design with minimized state
  • Drag-down gesture support
  • Orange theme accents

Mobile Fullscreen Settings (#163)

  • Added mobileFullscreen option to settings dialogs
  • Improved responsive layout

Enhancements

  • Cross-origin cookie support with credentials include
  • Dialog button spacing improvements
  • Auto-focus disabled on dialog open

Bug Fixes

  • TypeScript build errors in frontend
  • Schedule-related test mocks
  • Duplicate import in repo.ts
  • Dialog button spacing and auto-focus issues

v0.9.09

21 Mar 01:13

Choose a tag to compare

v0.9.09

Folder Discovery & Session Reconnection

  • Discover local repositories — point OpenCode Manager at a parent directory and import all nested git repositories and worktrees in one step
  • Link existing repos in place — discovered repositories keep their original source path instead of being copied, with a persisted sourcePath for session matching
  • Reconnect existing OpenCode sessions — first-run import of existing OpenCode config/state automatically links prior chats to matching discovered repositories
  • Updated onboarding flow with folder discovery dialog in the add-repository UI
  • Docker documentation for preserving host absolute paths so imported sessions still match

Memory Plugin (v0.0.21)

  • Ralph iterative development loops — new execution mode with stall detection watchdog, session lifecycle management, and automatic cleanup
  • Project KV store — ephemeral key-value storage with 24-hour TTL (memory-kv-set, memory-kv-get, memory-kv-list tools)
  • Plan approval interception — user-in-the-loop workflows with question tool result handling
  • CLI commands for Ralph loop management: status, cancel, restart, upgrade
  • Upgrade command with version check and caching
  • Model fallback utilities for API resilience
  • Agent rename to lowercase conventions (code-review → auditor, memory → librarian)
  • Memory curation guideline added to architect agent

Frontend

  • LSP server status UI — toolbar button with color-coded status indicator, dialog showing active LSP servers with connection state and root paths
  • KV store UI — form dialog and list components for managing project key-value entries
  • Improved delete/unlink messaging for local vs cloned repos
  • SSE event handling for lsp.updated events

Backend

  • LSP initialization fix — pre-initializes OpenCode bin directory to prevent Bun package resolution conflicts causing pyright timeouts
  • Replace shell commands with native fs operations in repo service
  • Repo source path migration and discovery API endpoints

Documentation

  • Updated memory plugin docs with KV store tools and architecture
  • Docker setup guide for folder discovery with path preservation
  • Quickstart updates for the new onboarding flow

Tests

  • Comprehensive test suites for Ralph loops, KV store, plan approval, tool blocking
  • LSP status hook and component tests
  • OpenCode single-server service tests

Release v0.9.08

07 Mar 15:53

Choose a tag to compare

Changes

  • Fixed Docker build failure by adding jsonc-parser to shared/package.json dependencies
  • The shared package now explicitly declares jsonc-parser ^3.3.1 as a dependency, resolving strict pnpm install issues in Docker environments

v0.9.07

07 Mar 15:46

Choose a tag to compare

What's Changed

  • Memory plugin v0.0.15: improved code-review workflow with actionable findings, updated agent prompts and tool permissions
  • Replaced strip-json-comments with jsonc-parser for better JSONC error reporting with line/column details
  • Shared JSONC utilities extracted to @opencode-manager/shared
  • Config editor error line highlighting and improved error messages
  • Enhanced API fetch wrapper error detail formatting
  • Skip notifications for subagent sessions

v0.9.06

04 Mar 01:14
c15e53f

Choose a tag to compare

v0.9.06

Memory Plugin

  • Add executionModel config option for plan execution model override
  • Refactor CLI from monolithic export.ts into modular command architecture (ocm-mem binary)
  • New CLI commands: list, stats, cleanup alongside existing export and import
  • Add global CLI options (--db-path, --project, --dir) with project name resolution
  • Add default executionModel field to bundled config

Frontend

  • Improve MemoryPluginConfig component UI/UX
  • Update combobox component for better selection experience

Documentation

  • Add full CLI section to plugin docs with all commands and usage examples
  • Update README CLI section from legacy bun run pattern to ocm-mem binary

What's Changed

Full Changelog: v0.9.05...v0.9.06

v0.9.05

27 Feb 23:26

Choose a tag to compare

v0.9.05

Memory Plugin

  • Add Code Review agent with /review command support
  • Add Architect agent for planning workflows
  • Add memory-planning-search and memory-plan-execute tools
  • Add CLI export/import functionality for knowledge bases
  • Add dimension mismatch detection and version injection
  • Remove deprecated keyword and params hooks
  • Project-scoped storage with projectId support
  • Security: Restrict planning tools to Memory subagent only

Frontend

  • Add agent color styling and session persistence
  • Fix mobile input prompt command selection
  • Improve mobile table and heading styles

Documentation

  • Major updates to Memory plugin documentation
  • Add Memory Plugin callout to docs landing page
  • README redesign

Release v0.9.04

23 Feb 21:44

Choose a tag to compare

Features

  • Memory plugin with semantic search and session planning (#145)
  • Enhanced source control: discard changes, commit detail view, commit file diffs, and UI improvements (#138)
    Git-Commit-Demo

Release v0.9.03

17 Feb 02:25

Choose a tag to compare

Features

  • SSH known hosts support and optimized git status fetching (#140)
  • Version notifications for new releases (#139)

Release 0.9.02

16 Feb 15:49

Choose a tag to compare

Changes

  • refactor: Inline message parts with batched SSE updates (#137)
    • Remove Zustand messagePartsStore - parts now stored inline with messages
    • Add partsBatcher to batch SSE part updates for better performance
    • Fix SSE render sync issues by keeping messages and parts in query cache
    • Simplify stream detection by passing hasActiveStream as prop