What's Changed
- chore: in Mac OS X, try to use the Keychain in order to read credentials by @ereslibre in #295
- feat: add custom agent image and init script support by @ereslibre in #293
- feat(extension): load workflows using the Rover CLI by @ereslibre in #294
- feat: document agent images by @ereslibre in #298
- refactor: migrate config schemas to packages/schemas by @Angelmmiguel in #305
- chore: refer to the latest iteration if there is more than one available by @ereslibre in #300
- feat: add automatic sandbox tool installation based on project config by @Angelmmiguel in #306
- feat: implement new agent image release strategy by @ereslibre in #304
- chore: mark task as in progress after sandbox has been created by @ereslibre in #314
- chore: automate publish workflow trigger from release workflow by @ereslibre in #312
- fix: reset task to NEW status when stopping by @ereslibre in #317
- feat: improve iterate CLI experience using common display utils by @Angelmmiguel in #320
- feat: show file changes summary in diff and inspect commands by @Angelmmiguel in #318
- feat: implement dynamic pre-context workflow step injection by @ereslibre in #309
- chore: fix gemini installation in agent container by @ereslibre in #322
- chore: do not run build-dev-image on PR's rather than skip by @ereslibre in #324
- chore: forward verbose option to the rover agent by @ereslibre in #323
- chore: skip pre-context injection on first iteration by @ereslibre in #325
- chore(extension): improve iteration status display by @ereslibre in #327
- feat: allow multiple agents to be triggered simultaneously for a single task by @ereslibre in #326
- chore: build agent image from versioned commit by @ereslibre in #328
- feat: add interactive session mode for task iterations by @Angelmmiguel in #329
- chore: rename common package to core by @Angelmmiguel in #363
- feat: cache container image for task consistency on restart by @ereslibre in #331
- feat: add central directory management for Rover by @ereslibre in #364
- chore(cli): hide file changes from inspect command for active tasks by @ereslibre in #365
- feat: add GlobalConfigManager for centralized configuration by @Angelmmiguel in #366
- chore(gh-actions): improve release workflow idempotency and trigger publish by @ereslibre in #370
- fix: prevent stdio option conflicts in launch and launchSync by @ereslibre in #368
- init: Update
.gitignoreso that it does not ignore future Rover metadata by @ereslibre in #367 - chore(gemini): recover from exit due to yolo mode enabled by @ereslibre in #372
- feat: support HTTP URLs and file paths in workflow inspect command by @ereslibre in #369
- chore: improve agent container startup and process handling by @ereslibre in #377
- fix: prevent -a option from consuming task description by @dataforxyz in #381
- fix: use undefined instead of empty strings for optional datetime fields in migration by @ereslibre in #378
- feat: add ProjectManager for centralized project management by @Angelmmiguel in #376
- feat: migrate from npm to pnpm by @Angelmmiguel in #383
- feat: support agent:model colon syntax for model selection by @dataforxyz in #386
- fix: build the agent image using pnpm by @Angelmmiguel in #390
- feat: enable source-mapped stack traces in development builds by @Angelmmiguel in #389
- feat: migrate project to use biome for formatting by @Angelmmiguel in #391
- feat: configure biome linter for the telemetry package by @Angelmmiguel in #392
- feat: add configurable watch interval for list command by @dataforxyz in #385
- feat: consolidate TypeScript and tsdown configurations by @Angelmmiguel in #393
- fix: replace rmdirSync with rmSync for Node.js 22+ compatibility by @dataforxyz in #395
- fix: use source to export types in private libs by @Angelmmiguel in #397
- feat: add task lifecycle hooks system by @dataforxyz in #384
- feat: implement workflows list by @ereslibre in #379
- feat(cli): show model name in task list agent column by @dataforxyz in #402
- docs: add FAQ documentation by @dataforxyz in #400
- docs: add telemetry documentation to README by @dataforxyz in #403
- feat: implement workflows add by @ereslibre in #380
- chore: use exit helpers in all commands for clean shutdown by @ereslibre in #396
- feat: add sandbox extraArgs option for flexible container configuration by @dataforxyz in #406
- feat: mount .claude/settings.json file to load user preferences by @Angelmmiguel in #408
- feat(agent): extract and display model, tokens, cost from Claude response by @dataforxyz in #404
- feat(agent): add total workflow cost and tokens to summary by @dataforxyz in #409
- feat: add sourceBranch, summary, and fileChanges to inspect --json output by @dataforxyz in #411
- feat: add project store and CLI context for auto-registration by @Angelmmiguel in #412
- feat: test the CLI build against all LTS and active Node versions by @Angelmmiguel in #415
- chore: resolve workflow names later after commander.js parses the name of the workflow by @ereslibre in #420
- feat: create tasks in central store via ProjectManager by @Angelmmiguel in #414
- feat: add network allowlist/blocklist for container sandboxes by @dataforxyz in #398
- refactor: decouple project operations from process.cwd() by @Angelmmiguel in #426
- chore: remove
--debugfrom task and use--verbosefrom toplevel command by @ereslibre in #425 - feat: add --project flag and ROVER_PROJECT env variable support by @Angelmmiguel in #427
- feat: update CLI header to show project scope and agent info by @Angelmmiguel in #428
- feat: update list command for multi-project view by @Angelmmiguel in #429
- feat: add info command for the store by @Angelmmiguel in #430
- feat: implement the Agent Communication Protocol (ACP) and migrate Claude by @ereslibre in #417
- fix: remove duplicate JSON output in inspect command by @dataforxyz in #438
- feat: associate GitHub issue with tasks created via --from-github by @dataforxyz in #432
- feat: add interactive project selector by @Angelmmiguel in #431
- feat: add excludePatterns to rover.json for file exclusion by @dataforxyz in #434
- feat: add --base flag to diff command for base commit comparison by @dataforxyz in #440
- fix: ensure project is resolved when possible and allow watch in global mode by @Angelmmiguel in #452
- fix: make iteration instructions more explicit in pre-context by @ereslibre in #448
- fix: prevent onComplete hooks from firing multiple times by @dataforxyz in #453
- chore: stop docker log following when SIGINT is received by @ereslibre in #457
- chore: use workflow store for resolving workflows in setup by @ereslibre in #458
- fix: allow push command to push already committed but unpushed changes by @dataforxyz in #455
- chore: improve workflows using central and local store by @ereslibre in #451
- feat: configure default models per agent in user settings by @dataforxyz in #387
- fix: onComplete hook should fire on every terminal status transition by @dataforxyz in #463
- chore: update README.md to reflect latest changes by @ereslibre in #472
- feat: add -a/--agent flag to iterate command by @dataforxyz in #470
- feat(task): add --include-comments flag for GitHub issue comments by @dataforxyz in #454
- feat: show agent:model in rover inspect output by @dataforxyz in #475
- feat: add --json flag to diff command by @dataforxyz in #477
- feat: add sandboxMetadata to store DOCKER_HOST for remote sandbox execution by @ereslibre in #478
- chore: do not detach from terminal in interactive shells by @ereslibre in #479
- fix: support multiple GitHub accounts and fix error logging by @dataforxyz in #461
- feat: add E2E testing framework with test specifications and initial test suites by @ereslibre in #473
- chore: add Ctrl-n and Ctrl-p navigation to interactive selectors by @ereslibre in #459
- feat(core): add context provider abstraction and URI parser by @Angelmmiguel in #491
- feat(core): add LocalFileProvider for local file context by @Angelmmiguel in #492
- feat: add GitHub context provider for issues and PRs by @Angelmmiguel in #495
- feat: add HTTPS context provider by @Angelmmiguel in #497
- feat: add context tracking to iteration schema by @Angelmmiguel in #498
- feat: add context manager and workflow integration by @Angelmmiguel in #499
- chore: migrate agent base image from Alpine to Debian by @ereslibre in #494
- feat: integrate context system into CLI, sandbox, and agent by @Angelmmiguel in #501
- fix: prevent PostHog telemetry from blocking CLI exit by @dataforxyz in #507
- Add OpenCode with ACP support by @ereslibre in #503
- feat: add GitHub Copilot agent support with ACP by @ereslibre in #482
New Contributors
- @dataforxyz made their first contribution in #381
Full Changelog: cli/v1.5.1...cli/v2.1.0