Skip to content

Releases

v0.30.0

Choose a tag to compare

@github-actions github-actions released this 30 Oct 19:09
efff69f
  • Operator rules: a .orch/knowledge/ file with kind: rule reaches every task whose files its area covers, outside knowledge.max_in_prompt, and the local verify's review checks the diff against it. Only the operator writes one (orch knowledge add --kind rule). In area, ** now matches any depth.
  • orch-discover: a new skill, step 0 of orch-plan on a repository that already has code. It writes docs/arch/000-discovery.md (every claim citing its file: stack, architecture, tracked secrets, boot-time side effects, questions for the client) and proposes config and rules it applies only once you confirm.
  • Your own critical and protected paths: gate.critical_paths replaces the built-in Supabase layout for orch run --mode semi; guard.protected_paths blocks any change to files you name (guard.protected: block | warn | off), for credentials no token pattern can match.
  • Verify checks what the task touched: detected checks run only for the packages the change touches, so a missing toolchain elsewhere no longer sends work back; every verify command gets ORCH_CHANGED_FILES.
  • CI that never started: a red CI because GitHub gave the job no runner (Actions billing, spending limit) blocks the task at once, without spending an agent retry.
  • Low disk: dispatch.min_free_disk_mb (orch init writes 2048) holds a new dispatch while the disk is low, instead of letting a task fail with No space left on device.
  • orch moved to github.com/Guria-Studio/orch. Old URLs and orch upgrade redirect.

What's Changed

Full Changelog: v0.29.0...v0.30.0

v0.29.0

Choose a tag to compare

@github-actions github-actions released this 27 Oct 11:36
8b3788f
  • Pre-PR guard: before orch pushes a task, its diff is scanned. Secrets (GitHub/AWS/Slack/Anthropic/OpenAI/Google/Stripe keys, private keys, .env files) block the task; debug leftovers (console.log, debugger, breakpoint()…) are listed in the PR body. Config guard.secrets / guard.debug: block | warn | off.
  • Agent watch: orch run flags an agent whose log goes silent (watch.stall_after_s, default 10 min) or that repeats the same call, with the orch task stop command to end it. New events in the dashboard.
  • Conflict radar: radar: warn | serialize | off compares a task's files with the running ones before dispatch, and a new PR with the other open PRs after.
  • orch tui: a live read-only terminal view — tasks, phases, spend per provider and the selected task's log.
  • Sandbox (Linux, opt-in): dispatch.sandbox: true confines each agent to its worktree with Landlock; dispatch.sandbox_allow adds paths (e.g. your Claude hooks). orch doctor checks support. No network restriction yet.
  • New dependencies: golang.org/x/term, github.com/landlock-lsm/go-landlock.

What's Changed

Full Changelog: v0.28.0...v0.29.0

v0.28.0

Choose a tag to compare

@github-actions github-actions released this 24 Oct 22:41
e72ee6d
  • Project memory: lessons in .orch/knowledge/ reach later tasks' prompts; orch drafts them from blocked tasks and verify findings. orch knowledge add|list|show|rm|stats|curate, MCP orch_learn / orch_knowledge_search, and a Knowledge page in the dashboard with a Curate now button.
  • Review in the dashboard: a task's diff, Accept and Send back (orch task accept, orch task note --retry).
  • vcs.provider: local: finished tasks merge into the base branch here, with no remote and no gh.
  • Plain-language run summary in the receipt, plus orch report summary --ai.
  • orch router suggest: which route works for which kind of task, based on the project's history. orch router refresh and doctor say when an agent CLI is behind its latest release.
  • Robustness: provider failover when one runs out of quota, conflict retry for a PR that conflicts with its base, orch doctor --smoke, a warning before the run when a configured command is not on PATH, and duplicate findings deduped.
  • Fixes: gemini runs in task worktrees (GEMINI_CLI_TRUST_WORKSPACE); the local verify's review records its spend and respects the budget gate.
  • Covers milestones v0.25.0–v0.28.0, released together.

What's Changed

  • fix(verify): a configured command sh cannot find is skipped, not sent back to the agent (#433) by @hectorcanaimero in #436
  • feat(doctor): orch doctor --smoke — a real throwaway task per installed CLI, checked end to end (#437) by @hectorcanaimero in #447
  • fix(mcp): orch_report_finding comments on a likely duplicate instead of filing it again (#441) by @hectorcanaimero in #446
  • fix(doctor,run): say before the run when a configured command is not on PATH (#440) by @hectorcanaimero in #443
  • feat(engine,router): fail over to another provider when one runs out of quota (#439) by @hectorcanaimero in #444
  • feat(engine): a PR that conflicts with its base gets a conflict retry instead of blocking (#438) by @hectorcanaimero in #445
  • fix(providers,engine): gemini runs in a task's worktree — orch tells it to trust the workspace by @hectorcanaimero in #449
  • test(doctor): cover dispatch.worktree_setup and the all-resolved check in config.commands by @hectorcanaimero in #450
  • feat(knowledge,state,cli): project lessons in .orch/knowledge/, an FTS5 index and orch knowledge (#451, 1/3) by @hectorcanaimero in #465
  • feat(doctor,update,router): say when an agent CLI is behind its latest release, with the command to update it by @hectorcanaimero in #458
  • feat(router,estimate,dashboard): orch router suggest — which route works for which task kind (#457) by @hectorcanaimero in #459
  • feat(receipt,report): a run's summary in plain words, with what to do next (#456) by @hectorcanaimero in #460
  • feat(prompt,mcp,engine): project lessons reach later tasks' prompts, and orch drafts them (#451, parts 2–3) by @hectorcanaimero in #468
  • feat(dashboard,web,cli): review a task's changes in the dashboard — diff, accept, send back (#454) by @hectorcanaimero in #462
  • feat(vcs,engine): vcs.provider local — finished tasks merge into the base here, no remote or gh (#455) by @hectorcanaimero in #464
  • feat(verify,dashboard): record verify passes and structured findings (#463) by @hectorcanaimero in #473
  • feat(project,dashboard): Accept lands a task locally with vcs.provider: local by @hectorcanaimero in #474
  • feat(report,engine): orch report summary --ai — a one-shot dispatch with recorded spend explains the run by @hectorcanaimero in #471
  • feat(knowledge,cli): orch knowledge curate — one task merges, fixes and prunes the lessons, as a PR (#452) by @hectorcanaimero in #472
  • feat(dashboard,web,knowledge): a Knowledge page — search, edit and see how each lesson did (#453) by @hectorcanaimero in #476
  • feat(engine): draft verify lessons from the review's blocking findings, their files as the area (#475) by @hectorcanaimero in #477
  • feat(verify,engine): the local verify's review records its spend and respects the budget gate (#470) by @hectorcanaimero in #478
  • feat(dashboard,web,knowledge): Curate now runs orch knowledge curate, estimate first by @hectorcanaimero in #479
  • test(cli): skip report.txtar's publish lines without the stakeholder bundle by @hectorcanaimero in #480

Full Changelog: v0.24.0...v0.28.0

v0.24.0

Choose a tag to compare

@github-actions github-actions released this 23 Oct 17:13
7883bac
  • New provider: muse (Muse Code): route tasks to muse/wonder (muse-wonder-1.0, standard tier). orch reads its verdict, tokens and quota windows (session and seven-day), and shows them in the dashboard's Tools, Usage and Quota pages.
  • Routes from the models your CLIs really have: orch init and orch start ask opencode, agy and codex which models they list and drop packaged routes they do not have, saying what is left unrouted. claude, gemini and muse keep the packaged routes.
  • Permissions granted by default: init and start add orch's scoped done/block rules to each CLI the project routes to (--no-permissions to skip). orch run warns before the first dispatch when a CLI still lacks them.
  • orch doctor is a readiness report: five sections (config, backends, tasks, permissions, environment) and a verdict, either "Ready to orch run." or the first blocker. New checks include tasks.parse, tasks.valid, tasks.ready and vcs.base_branch. --json adds section and verdict.
  • Planning by vertical slices: orch-arch and orch-spec now plan each phase as one PRD milestone that starts with a walking-skeleton task, after which the layers run in parallel on disjoint files. Run orch install-skills after upgrading to refresh the installed skills.
  • Dashboard: System › Skills has a "How it works" tab from idea to dispatched tasks, and task descriptions render as markdown with highlighted code.

What's Changed

Full Changelog: v0.23.0...v0.24.0

v0.23.0

Choose a tag to compare

@github-actions github-actions released this 23 Oct 10:49
4f37b41
  • The dashboard is a backoffice now: a Linear-style console with a collapsible sidebar ([), Inter, and a bottom bar plus "More" on phones. Its places are Now, Work (list, kanban, graph, phases, pace), Usage (usage and quota), Delivery, and System (providers, tools, skills, logs, settings).
  • Share from the dashboard: the Share button opens a Cloudflare quick tunnel or Tailscale (serve on the tailnet, funnel in public). It shows the connected repo and branch and gives a client link. The client view lives in the same SPA, read-only.
  • Install guidance in the UI: System › Tools lists cloudflared, tailscale, playwright and the provider CLIs, says which are missing and how to install each one. The sidebar counts the missing ones.
  • Usage and quota: usage by period, model, provider and source. Quota per provider shows the windows Claude reports (5-hour and weekly) or orch's own budget window, plus the routing table.
  • Every switch is a command: orch provider disable|enable|list (while a provider is off, orch run leaves its tasks waiting), orch budget set (edits budgets.yaml and keeps its comments) and orch config set|unset (validates before it writes; Settings never shows secrets). The dashboard calls the same functions.
  • Task page: editable properties in a foldable panel, "attempt N of M", an activity timeline from the task's events, and "+ Task" in the list and the kanban.

What's Changed

Full Changelog: v0.22.0...v0.23.0

v0.22.0

Choose a tag to compare

@github-actions github-actions released this 23 Oct 00:26
da5adbd
  • Edit tasks without touching tasks.json by hand: orch task add, orch task edit and orch task set --model change a task's definition through one editor that locks, validates the DAG (duplicate id, missing dependency, cycle, model with no route) and writes atomically (#390). The dashboard writes through the same editor: POST /api/tasks, PATCH /api/task/{id}, and POST /api/task/{id}/status for the board's moves, which stops a running task instead of changing its status behind the run's back.
  • orch run picks up tasks.json changes while it runs: a new or edited task that has not started joins the running run.
  • codex service tier per route: service_tier: default in model_router.yaml keeps a global Fast mode from burning your plan on every dispatch. A tier the model does not offer no longer fails and retries a dispatch that had answered (#416).
  • Where the tokens went: orch report usage (and GET /api/usage) splits use into input, cached input, output and reasoning, per model, per task and per attempt, with what retries used. opencode's reasoning tokens now count as output and reach the budget. orch's budget window is its own guardrail, not your provider plan's quota (#417).

What's Changed

  • feat(cli,project,state): edit task definitions through one path — task set --model, task add, task edit (#390) by @hectorcanaimero in #419
  • feat(engine,run): orch run takes tasks.json again when it changes by @hectorcanaimero in #420
  • fix(codex): a route can set codex's service tier, and a tier the model lacks no longer fails the dispatch (#416) by @hectorcanaimero in #422
  • feat(dashboard,project): the operator adds, edits and moves tasks from the dashboard by @hectorcanaimero in #421
  • feat(usage): reasoning tokens, attempts, and a usage breakdown by kind, model, task and attempt (#417) by @hectorcanaimero in #423

Full Changelog: v0.21.0...v0.22.0

v0.21.0

Choose a tag to compare

@github-actions github-actions released this 22 Oct 22:29
4f4091e
  • codex works in worktrees: its agents can report their task done or blocked again. The sandbox now grants the directory holding orch.db, where it used to answer "readonly database" (#387). A route's effort reaches codex too (#388), and cached input counts in the budget like other providers' (#389).
  • Committed work is never thrown away: a retry keeps an earlier attempt's unpushed commits under orch/<id>-salvage-… instead of deleting the branch, and orch task salvage --id X --accept <branch> takes them as the task's result without running the agent again (#391).
  • A retry whose branch already has an open PR reuses that PR instead of blocking with "no PR was opened" (#386).
  • The task page: details and activity split 70/30 with a resizable handle, and comments read as a thread instead of raw JSON (#404, #405). report_findings is on again in new projects (#399).

What's Changed

Full Changelog: v0.20.0...v0.21.0

v0.20.0

Choose a tag to compare

@github-actions github-actions released this 22 Oct 21:14
9c0b4df
  • Local verify before the push (verify:, on in new projects): each task's work runs the repository's checks and a read-only review by another provider in its worktree; what fails goes back to the agent, and only passing work is pushed. orch ci setup stops offering the GitHub review job.
  • Test-first agents (dispatch.tdd, skill orch-tdd): one failing test per acceptance criterion, then the code; the verify sends back a change with no test.
  • E2E against the task's own app: verify.app brings it up on a port from ORCH_TASK_SLOT, verify.e2e runs Playwright against it, and Delivery → Tests shows every run with the failing step, screenshot, video and trace. The orch-e2e skill has an agent explore the app and write the specs.
  • A CI retry now keeps its earlier work and is told to read the failing logs (it used to start over, blind).

What's Changed

Full Changelog: v0.19.0...v0.20.0

v0.19.0

Choose a tag to compare

@github-actions github-actions released this 18 Oct 14:17
feb08b0
  • orch start "what you want to build": one command from an idea to agents working — it sets up the project with the AI CLIs you have, plans it with claude (/orch-plan), checks every task routes to an installed CLI, shows the estimate and runs the first two tasks with the dashboard open (#381)
  • orch init asks three questions and Enter works through all of them: the project lands in the current directory, default models come from the CLIs on PATH, a blank project gets a sample task, and a repo on master, with no commits or with no remote no longer blocks the first task (#380)
  • gemini and agy tasks get their prompt (every one was dispatched with an empty one), agy 1.4 works without the retired executor agent and with its current models, and orch agy-permissions lets agy agents report a task done (#384, #385)
  • A task opens as its own page, /work/tasks/<id>, with the live activity feed as the main area (#375)
  • orch doctor shows how far a project got: init → first dispatch → first finished task (#379)

What's Changed

  • feat(web): a task opens as its own page, with the activity feed as the main area by @hectorcanaimero in #375
  • feat(telemetry,doctor): measure how many installs reach a first finished task by @hectorcanaimero in #379
  • feat(cli,scaffold,router): orch start — from one sentence to agents working by @hectorcanaimero in #381
  • fix(init,run,doctor): Enter through the wizard gives a project that runs by @hectorcanaimero in #380
  • fix(engine,providers): gemini and agy get the prompt, and agy runs without an agent it no longer has by @hectorcanaimero in #384
  • fix(providers,cli,doctor): agy agents can report a task done — orch agy-permissions by @hectorcanaimero in #385

Full Changelog: v0.18.1...v0.19.0

v0.18.1

Choose a tag to compare

@github-actions github-actions released this 17 Oct 15:08
fa079f9

What's Changed

  • fix(estimate): empty run set encodes as [] so the dashboard's Now page renders by @hectorcanaimero in #373

Full Changelog: v0.18.0...v0.18.1