Skip to content

Releases: UnlikeOtherAI/steroids-cli

v0.12.24

21 Mar 23:20

Choose a tag to compare

Enhanced First Responder Agent

  • Removed circuit breaker — agent no longer disables projects after failed remediations, keeps trying with increasingly sophisticated approaches
  • New query_db action — read-only SQL queries against project databases for deep debugging
  • New update_task action — surgical task field updates with safety whitelist (status, failure/rejection counts, blocked_reason, description)
  • New add_dependency action — fix section ordering by adding dependencies (with circular dependency check)
  • New add_task_feedback action — leave guidance notes for future coder/reviewer runs
  • Extracted prompt to investigator-prompt.ts for maintainability
  • Expandable action cards in run detail UI — click to see query results, dependency info, error details

Full Changelog: v0.12.23...v0.12.24

v0.12.22

21 Mar 17:53

Choose a tag to compare

What's New

Auth Error Auto-Recovery

  • Provider 401/auth errors now trigger a 24-hour backoff instead of burning invocations
  • Running tasks finish their current phase gracefully (no kill), but no new phases start
  • Wakeup probes auth-backed-off providers with a quick "say ok" test each cycle
  • When auth recovers, backoff clears automatically and runners resume

First Responder Presets & Fix Buttons

  • Monitor run detail page: "Dispatch First Responder" (default preset) + "Investigate & Fix" (fix_and_monitor preset)
  • After investigation completes: "Try to Fix" and "Stop All Runners" re-dispatch buttons
  • API and CLI accept --preset override for first responder dispatch

Investigator → First Responder Rename

  • Full rename across DB (V22 migration), API, CLI, and WebUI
  • Severity reclassification: info=doesn't block, warning=suboptimal, critical=blocks progress
  • Remediation attempt tracking: auto-disables projects after 3 failed fix attempts
  • New disable_project and reset_project first responder actions

Project Detail — All Task States

  • 6 stat cards now show all 10 task states with grouping:
    Pending | In Progress/Review | Completed | Failed/Disputed | Skipped/Partial | Blocked

Cookie Persistence

  • Projects page "Show disabled" toggle persisted in cookie
  • Monitor config collapse state persisted in cookie

Full Changelog: v0.12.21...v0.12.22

v0.12.16 — Monitor Agent

21 Mar 15:42

Choose a tag to compare

Monitor Agent

New autonomous health monitoring system that watches all registered projects for anomalies and can dispatch an AI investigator to diagnose and fix issues.

Features

  • Deterministic Scanner: Reuses detectStuckTasks() + new checks (failed/skipped tasks, high invocations, repeated failures, idle projects)
  • Rules Engine: Severity-threshold escalation (info/warning/critical) — no LLM for detection
  • Investigator Agent: Structured action interface with provider fallback chain. Returns JSON actions (reset_task, kill_runner, stop_all_runners, trigger_wakeup, report_only) — no shell access
  • WebUI Page: /monitor with enable/disable toggle, config section (interval, severity threshold, response presets, investigator agent fallback chain using AISetupRoleSelector), and run history table with expandable rows
  • API Routes: Config CRUD, run history, manual scan/run triggers with idempotency guard
  • CLI Commands: steroids monitor status|enable|disable|scan|run|investigate
  • Wakeup Integration: monitorCheck() runs after runner spawns (<5s, no LLM)
  • Detached Investigation: Spawns steroids monitor investigate as detached process when escalation triggers

Architecture

  • Scanner + rules run inside wakeup cycle (fast, deterministic)
  • LLM investigation spawned as detached child process (no wakeup timeout)
  • Investigation pause: loop skips while investigation is in progress (with stale timeout)
  • Global DB V21 migration: monitor_config (singleton) + monitor_runs tables

Full Changelog: v0.12.15...v0.12.16

v0.12.15

21 Mar 14:07

Choose a tag to compare

Bug Fix

  • fix(reset): Clear invocation history when resetting tasks via steroids tasks reset. The invocation cap (introduced in v0.12.14) counts all-time invocations, so tasks that were stuck in a pre-fix runaway loop would immediately trip the cap after being reset. Now tasks reset also deletes invocation records, giving the task a clean slate.

Full Changelog: v0.12.14...v0.12.15

v0.12.14 — Fix runaway invocation loops

21 Mar 13:23

Choose a tag to compare

Bug Fix

Prevents runaway invocation loops from burning API quota — Tasks in workspace pool mode could loop 642-2178 times without transitioning, consuming entire weekly Codex quota.

Root Cause

clearTaskFailureCount() in the coder phase reset the push-failure counter before it could accumulate. The push in the orchestrator loop's finally block would increment to 1, but the next coder iteration would clear it back to 0. The escalation threshold of 3 was never reached.

Fixes

  • Root cause fix: clearTaskFailureCount now deferred in pool mode until after a successful push
  • Safety net: New health.maxInvocationsPerTask setting (default 150) — absolute cap on total invocations per task
  • Lock leak fix: Task locks now properly released when invocation cap triggers a skip
  • Batch mode: Uses configurable maxRecoveryAttempts instead of hardcoded 3

Other

  • Extracted batch mode to orchestrator-batch.tsorchestrator-loop.ts reduced from 723 to 484 lines
  • execSyncexecFileSync for safety
  • Updated test mocks

Full Changelog: v0.12.13...v0.12.14

v0.12.13

20 Mar 15:56

Choose a tag to compare

Fixes

  • Purge abandoned idle runner rows during wakeup so dead idle runners no longer linger in the registry.
  • Include stale idle runners in abandoned-runner detection.

Compare

v0.12.12

20 Mar 15:45

Choose a tag to compare

Fixes

  • Fix project detail pages failing to load in older Safari/WebKit browsers by transpiling the lazy-loaded dashboard bundles to an older JavaScript target.

Compare

v0.12.11

20 Mar 15:26

Choose a tag to compare

Fixes

  • Fix the Project Instructions panel on project detail pages so local dashboard requests no longer crash on require is not defined.
  • Document that ~/.steroids/webui is a pulled runtime artifact and repo changes must be committed here before release.

Compare

v0.12.10 — Pool Commit Durability

20 Mar 15:13

Choose a tag to compare

Pool commit durability fixes for parallel workspace handoff.

Changes:

  • push task branches before review handoff so reviewer slot changes do not strand commits
  • recover submission history from sibling pool slots as well as workstreams
  • purge abandoned runner rows on wakeup
  • delete remote steroids/task-* branches only after proving their commits are reachable from the target branch

Compare:

v0.12.9 — Task Dependencies, Description, Project Reset

14 Mar 00:49

Choose a tag to compare

What's New

Task-Level Dependencies

  • steroids tasks depends-on <A> <B> — task A waits for task B to complete
  • steroids tasks no-depends-on <A> <B> — remove dependency
  • --depends-on <id> flag on tasks add
  • Task selector respects both section and task dependencies
  • Circular dependency detection

Task Description Field

  • --description / -d flag on tasks add and tasks update (max 4000 chars)
  • Shown in tasks audit output
  • Content hashing best practices in LLM docs

Project Reset

  • steroids reset-project -y — reset all tasks to pending, clear execution history
  • Preserves task/section/dependency structure
  • Stops runners, cleans parallel sessions

WebUI Improvements

  • blocked_error / blocked_conflict status display with reason banner
  • Sidebar reordered: Dashboard, Projects, Runners first
  • Wakeup modal sorted by action priority

Git Lifecycle Guard

  • Tasks blocked with blocked_error when .steroids/ is tracked in git
  • Symlink re-established after git reset --hard in workspace pool slots

Other

  • LLM reference updated with task authoring best practices
  • Codex review timeout increased to 30 minutes
  • Shared terminal status constants (SECTION_DEP_TERMINAL / TASK_DEP_TERMINAL)

Full Changelog: v0.12.8...v0.12.9