Repository navigation
Releases
v0.5.80
Highlights
- Checks are no longer invalidated by RepoOS's own bookkeeping commits. While a task's check runs, RepoOS now holds a short-lived check lock: its own bookkeeping commits wait until the check finishes, new engineer turns are refused, and any real source change that lands during a check is detected and fails the check with the commit and paths named. This removes a major source of "the worktree changed while the check ran" handoff failures (#1061).
- Calmer task cards. A healthy running card no longer shows "active just now / N minutes ago"; the last-activity time appears in a popover on hover and keyboard focus. Silent and stuck cards still show their recency (#1058).
Known issues
- Source edits made by an already-running engineer during a check are detected after the fact, not blocked, and git submodules or nested repositories are not covered by that detection. A source change that is committed and then reverted within the same check window is not caught yet (follow-up #1077).
- Hover details on cards are mouse and keyboard only; touch support is planned as part of the mobile work (#1069).
- A handoff that arrives while the engineer's own check is still running can fail with "A check is running" instead of waiting; fix in progress (#1082).
- Remaining Docker/ssh failure-handling edge cases in remote validation are tracked in #1068.
Full Changelog: v0.5.79...v0.5.80
v0.5.79
Highlights
- Remote browser captures no longer stall. The runner now exits as soon as a capture finishes, finished captures are collected and cleaned up automatically, and a failed handoff cancels its own outstanding captures. This removes the 15-30 minute waits and the pile-up of stale capture containers that slowed every task's handoff (#1060).
- Faster checks for bookkeeping-only changes. When a diff only touches task bookkeeping or docs, the check skips the full test suite (#1059).
Improvements and fixes
- Review card no longer says "ready to finish" while checks are still running or failing (#1065).
- Pipeline view: card text uses a readable colour in every theme (#1066).
- Muse usage row: clearer messages and a better dashboard link (#1067).
Known issues
- Cancelling remote captures is verified on the Tailscale runner. Parity for the other remote provider (for example Hetzner) and a few rarer Docker/ssh failure-handling edge cases are tracked in #1068.
- Two further items are still in review and are not in this release: bookkeeping commits invalidating a running check (#1061) and hover-only "last active" details on cards (#1058).
Full Changelog: v0.5.78...v0.5.79
v0.5.78
Reviewed work now lands on repos with no remote
Move to done failed with "could not get main SHA" on a local-only repo when the machine's git init.defaultBranch named a branch that didn't exist (for example master on a repo whose branch is main). RepoOS now only trusts a default branch that really exists, and falls back to main, then master, then the branch that is checked out. If it still can't read the branch, the error now says which branch it tried and why.
Review reports no longer appear as Inbox tasks
While the server was running, each review report written under work/reports/ could show up on the board as a task named review-1, review-2 and so on. Reports are now ignored by the live board the same way they are on startup.
Clearer task cards and a faster board
- Cards and the task panel show running checks with a single status line and a live progress bar. The old fake progress bar is gone.
- A task no longer shows PAUSED during handoff, and a deferred handoff now wakes the engineer.
- The Done column loads lazily and starts collapsed, so boards with many finished tasks open faster.
- Pipeline cards show the review round and a "sent back" note.
- There is a simplified client project board for sharing progress.
Smarter project work
- When a task lands, the PM agent now writes a summary report of what changed.
- Human tasks have a Mark done dialog with a multi-line completion report.
- Diff highlighting follows your active theme pair.
- Muse appears on the Model providers tab, with a row of provider shortcuts at the top.
Fixes
- Task ids from 1000 up are no longer dropped from
depends_on. repoos messageand send-back accept stdin, files and heredocs, and never send junk as a message.- Remote validation no longer kills healthy runs as hung, keeps its evidence, and cleans up leaked containers.
Known issue
On the Work Pipeline view, the task id, type chips, elapsed time and model line on each card are hard to read in every theme. The next release fixes this.
Full Changelog: v0.5.77...v0.5.78
v0.5.77
More reliable Muse engineering runs
Muse engineers can now run with a higher step limit, clearer notice when that limit is reached, and smoother handling of streamed output. They’re also guided to scope screenshot selectors to the relevant fixture card.
Expanded Muse model support
The available Muse models now include Spark 1.3, Spark 1.2, and Wonder 1.0. Native Muse drivers for Spark 1.3 and Contributor can also be included in the budget allowlist.
Full Changelog: v0.5.76...v0.5.77
v0.5.76
A Pipeline view for work in flight
The Work page has a new Pipeline view alongside the board. Each active or review task gets its own lane and moves through Coding → Checks → Handoff → Review → Close-out → Merged, so you can see at a glance where everything stands, including rounds, models, and whether a task ran locally or on a remote runner. Recently merged tasks stay in the Merged column for a short window, tasks sent back from review carry an amber “sent back” note, and stuck, held, or paused tasks keep their stage with a clear state chip. Stages update live, clicking a card opens the usual task panel, and the view remembers your choice. The board remains the default.
Installs and uninstalls now match reality
- The curl installer puts the program in
~/.local/share/repoosand keeps machine state in~/.repoos, so reinstalling no longer wipes running-server and check-slot state. repoos uninstallremoves what it owns and tells you exactly what it left behind; per-repo configuration and caches are untouched.- The installer now enforces Node 20.6.0+, not just “Node 20”, and the docs explain the Bun/pnpm
PATHsetup steps. - mise is no longer presented as a recommended install method; its download threshold and minimum release age made it install the previous version.
- The Homebrew formula’s Node dependency is now documented rather than left as a surprise, and install examples consistently use
curl … | bash.
Clearer task and agent state
- Close-out progress in the task panel now appears as a full-width status line between the preview row and the tabs. It no longer looks like a button or pushes Stop MTD onto its own row.
repoos driver briefand the CTO no longer call an engineer “stalled” while its check is running with a live heartbeat, so a healthy check cannot be interrupted by a restart.- PM-added sections such as Problem, Desired UX, and Acceptance criteria now land above the original freeform prompt and screenshots instead of being buried below them.
- The macOS Hub CI job no longer fails on every run because of a keyboard-focus test that could not hold focus on a headless runner.
Interface polish
- The Hold task dialog uses the same outlined fields as the rest of the app, allows holding without a reason, and the held card handles a missing reason without a blank row or cramped padding.
- New schedule, New reminder, and New environment now match New task: accent style, plus icon, and top-right placement.
- The task-card agent popover fades out after 15 seconds by default; the delay is configurable in Settings,
0disables it, and interacting with the popover resets the timer. - The optional commit-message field in the Uncommitted changes panel is about three lines tall instead of filling most of the panel.
Smoother setup and CLI
repoos inittemplates no longer reference paths that do not exist in a new project, sorepoos doctorstarts clean.- The
servebanner states which interfaces are bound, and the docs explain Tailscale detection and how to force localhost with--host 127.0.0.1. - Zero-commit repositories and Git identity supplied through environment variables are handled correctly by
repoos status,repoos new, andrepoos init --new; auto-committing onnewis now documented. repoos listprints one short notice instead of a long warning when no server is running.- Saving a schedule warns when its task template is missing Problem, Acceptance criteria, or Notes for AI — advisory, with a badge on the schedule card and the same warning from
repoos schedule newandupdate. - CLI docs now cover
repoos uninstall,repoos service, and--version, and several messages point to the right docs and describe the runtime accurately.
Full Changelog: v0.5.75...v0.5.76
v0.5.75
The web app no longer eats your CPU while idle, and engineer agents survive server restarts
Top priority in this release was making RepoOS cheaper to run and less likely to stall your work in flight.
A quieter web app
An open dashboard used to burn 30–97% of a CPU after a day or two in a tab or PWA window, loaded the server, and in bad cases dragged whole-machine load up with it. Idle work in the renderer has been found and fixed: when nothing is changing, an open board costs essentially nothing. When the tab is hidden, polling and animations pause. Memory stays bounded over long sessions.
Engineers survive server restarts
An engineer agent that was mid-task when the server restarted used to silently go idle afterward — it looked alive to the new server process, but queued messages were never delivered and no progress was made until someone stopped and started it by hand. Restarting the server mid-task no longer needs your intervention: an adopted engineer that can't communicate is now detected and restarted automatically, and queued messages get delivered instead of sitting overdue for an hour.
Smoother closing out tasks
- Move to done no longer fails for bookkeeping churn. Previously, publishing a finished task could abort after the entire validation gate* (which can take 10–25 minutes) just because other live tasks' task files were momentarily dirty on
main— a routine state when several engineers are running. That no longer blocks the merge; genuinely dirty source files and repo settings still do. - Review timeouts are now fair. Reviews were cut off at a hard-coded 15 minutes, so large diffs on slower models died mid-review with a confusing "no usable report," ate a review round, and needed a manual retry. The timeout is now configurable in Settings, a timeout is reported as a timeout (not a missing report), and one automatic retry happens before your attention is asked for.
- Engineering reports count only your words. The 1,000-word cap used to include the server-generated change summary and file list, so a task touching many files got rejected at handoff even with a short report. The cap now applies to the engineer's own narrative only (soft target ~1,000, hard cap 1,200 words), regardless of diff size.
Project history that outlives your machine
- Review reports are now committed to the repo, side by side with engineering rounds under
work/reports/<task-id>/. Previously they lived in a local, gitignored cache and vanished with it — leaving no record of why a task passed through several review rounds. Existing reports were migrated and old locations still read. - Worktree cleanup is safer and explains itself. Clean worktrees for merged tasks are now reclaimed automatically at boot and close-out, instead of piling up until a manual
repoos gc.repoos gc --dry-runand status distinguish safe candidates from entries kept for a stated reason (unmerged commits, dirty source, active or human-owned work — all preserved), and outside-RepoOS worktrees are never touched.
Fixes and smaller improvements
- Stray test helper processes no longer accumulate for days, adding memory pressure and stalling checks. Test runs kill everything they spawn on teardown, and a background reaper (every 10–15 minutes, never matching by process name, never touching live work) cleans stragglers that slip through.
- The "Cancel stalled check" button on a task no longer flickers on and off every few seconds while a check is progressing.
- In the task drawer, the Review and Engineer report tables no longer let the selected row's accent bar cover the pass number, and the Dev tab now uses the same layout and styling as the Review tab (Report on the left, Chat on the right, with the model selector always visible above).
Full Changelog: v0.5.74...v0.5.75
v0.5.74
v0.5.73
v0.5.72
Project environments and secrets
Manage named project environments from the new Secrets page. See which expected keys are set, missing, or inherited, along with their visibility and consumers. Secret values stay masked and aren’t revealed after saving.
Deployments can be explicitly bound to an environment. Changing a binding does not upload values to a provider or implicitly propagate production secrets. Project environment files are plaintext local storage, not an encrypted vault; only explicitly bound local consumers receive values, and public-prefixed keys may be included in client assets.
Clearer handoff errors
When UI verification fails during a task handoff, the failure now includes more useful details—such as the shot or selector that failed—so it’s easier to diagnose.
Full Changelog: v0.5.71...v0.5.72
v0.5.71
Review evidence for native apps
RepoOS can now capture screenshots from command-based targets, not just web previews. Configure a command to render images for native macOS, iOS, Android, or desktop apps; RepoOS collects the images as task evidence and shows them with the review. For each shot, you can pass environment variables or arguments and use a glob to choose which output images to include.
Reviews now distinguish browser captures from command-based evidence, and guard checks are less likely to block unrelated config changes. You can configure test-file globs for projects using languages such as Swift or Python, and review feedback explains why a check clamped the result.
Task screenshots and agent budgets
Attach screenshots when creating or updating tasks with repeatable --screenshot options, so visual context travels with the task.
The Agents page’s Budget Controls tab lets you limit which coding agent and model pairs agent drivers can select. Leave the allowlist empty for unrestricted selection; people using the web UI are not restricted.
Full Changelog: v0.5.70...v0.5.71