Skip to content

Releases: UnlikeOtherAI/steroids-cli

v0.10.51 - Fix orphaned workstream blocking runner restart

27 Feb 20:49

Choose a tag to compare

Changes

  • fix: Mark orphaned workstreams as failed in closeStaleParallelSessions so stale parallel sessions auto-close when runners are stopped

Problem

When runners were stopped (SIGTERM or runners stop --all), workstream status stayed running. This caused hasActiveParallelSessionForProject to always return true, making wakeup skip every project indefinitely — even with no live runners.

Fix

closeStaleParallelSessions now runs a preflight step: any workstream whose session has no alive runners is marked failed. The existing session-close logic then auto-closes the session in the same call.

Compare v0.10.50...v0.10.51

v0.10.50 - Fix coordinator guidance persistence in death spirals

27 Feb 20:26

Choose a tag to compare

Fixes

  • Coordinator guidance now survives process restarts: guide_coder decisions are persisted to the audit table with category='must_implement', so fresh coder sessions can load them via getLatestMustImplementGuidance — previously guidance was lost in the in-memory cache on every runner restart
  • Fixed scope violation git instructions: The [OUT_OF_SCOPE] prompt previously told the coder to use git diff HEAD (shows only unstaged changes). Fixed to use git log --oneline + git diff --name-only <first-commit>^..HEAD (cumulative committed diff, what the reviewer actually sees). Also fixed revert commands: git rm <file> for task-introduced files, git restore --source= for modified baseline files — no more git rm --cached which left files re-committable

These two bugs together caused a 7-rejection death spiral where the coder could never see coordinator guidance and was looking at the wrong git output to find scope violations.

Compare v0.10.49...v0.10.50

v0.10.49

27 Feb 20:08

Choose a tag to compare

Fix: Stale task lock recovery via PID liveness detection

Fixes tasks getting permanently stuck when a runner dies mid-execution. Previously, recovery took 30-60 minutes or hung indefinitely.

Changes

  • Fix ISO/SQLite datetime format mismatchtoISOString() produces 2026-02-27T10:00:00.000Z but datetime('now') produces 2026-02-27 10:00:00. Since 'T' > ' ' in ASCII, ALL lock expiry SQL comparisons were silently broken on same-day locks. Fixed by using strftime('%Y-%m-%dT%H:%M:%fZ', 'now').
  • Close three-way detection gap — Tasks with running invocations from deleted/dead runners now detected via dead-owner invocation sweep with PID liveness check
  • Filter expired locks from listTaskLocks — TTL safety net now actually works for task selection
  • Conditional lock cleanup in sanitiser — Locks deleted atomically only when task state transition succeeds
  • Narrow parallel context guard — Per-invocation PID liveness check instead of blanket skip during parallel sessions

Result

Recovery now completes within one wakeup cycle (~60 seconds) instead of 30-60 minutes.

Full Changelog: v0.10.48...v0.10.49

v0.10.48 - Sort runners alphabetically

27 Feb 18:48

Choose a tag to compare

Changes

  • feat: Runners are now sorted alphabetically in all list views (flat table, tree view, JSON output)
    • Primary sort: project name
    • Secondary sort: current task title

Compare: v0.10.47...v0.10.48

v0.10.47

27 Feb 18:37

Choose a tag to compare

Changes

  • fix: Show actual project path for parallel session runners in UI — parallel session runners were displaying their workstream path instead of the real project name/path

Compare with v0.10.46

v0.10.46 — Branch Targeting + Auto-PR + Web UI

27 Feb 18:22

Choose a tag to compare

What's new

Branch targeting (Phases 1–4)

  • Per-section git branchessteroids sections add "Auth" --branch feature/auth targets all tasks in the section to a specific branch
  • Branch auto-created — if the section branch doesn't exist on the remote, the pool runner creates it from the repo's base branch (main/master)
  • Auto-PR on section completion--auto-pr flag creates a GitHub PR (via gh CLI) when all tasks in the section reach a terminal state
  • steroids sections update <id> --branch <branch> --auto-pr — update branch/PR settings on existing sections
  • steroids sections reset-pr <id> — clear a recorded PR number to re-trigger auto-PR
  • steroids init — now auto-detects the repo's default git branch and writes it to project config

Web UI

  • Section list now shows branch badge (⎇ feature/auth) and PR link (PR #N) when set
  • Auto-PR pending indicator when auto-PR is enabled but PR not yet created
  • Sections sorted by priority order (server sort respected; client alpha-sort override removed)
  • Dependencies shown inline under each section: "Depends on: X, Y"

Bug fixes

  • findExistingPr: fixed jq .[0].number // empty to avoid parseInt("null") → NaN blocking PR creation
  • createPr: switched from URL regex to --json number + JSON.parse for deterministic output
  • --no-auto-pr: fixed parseArgs not handling hyphenated boolean negation
  • Non-pool path: auto-PR now gated on pushResult.success
  • setSectionBranch: clears pr_number when branch changes (prevents stale PR guard)
  • Auto-PR decoupled from --no-hooks flag

Compare: v0.10.43...v0.10.46

v0.10.45

27 Feb 16:41

Choose a tag to compare

Changes

  • feat: Delete button added for custom skills — click the skill, hit Delete, confirm, done. Pre-installed skills remain read-only.

Compare with v0.10.44

v0.10.44

27 Feb 16:38

Choose a tag to compare

Changes

  • fix: AI section now hidden in the global settings page — consistent with project settings; use the "Reconfigure AI" button for AI configuration

Compare with v0.10.43

v0.10.43

27 Feb 16:36

Choose a tag to compare

Changes

  • fix: WebUI build error resolved — unused cmd parameter renamed to _cmd in TaskLiveTimelineComponents.tsx, unblocking steroids web from building the WebUI successfully

Compare with v0.10.42

v0.10.42

27 Feb 16:34

Choose a tag to compare

Changes

  • fix: steroids web now force-resets ~/.steroids/webui before every git checkout/pull — local changes (e.g. stale package-lock.json) no longer block version updates
  • feat: GitHub icon added to the footer of each web UI page, linking to the repo

Compare with v0.10.41