Skip to content

v3.0.0

Choose a tag to compare

@github-actions github-actions released this 25 May 04:18
· 497 commits to main since this release
caa635a

brew update && brew upgrade agentops · bash <(curl -fsSL https://raw.githubusercontent.com/boshu2/agentops/main/scripts/install.sh) · checksums · verify provenance


Highlights

AgentOps v3.0.0 is the hookless, in-session-only major. The thesis sharpened: AgentOps is what runs inside a session — skills, the ao CLI, the RPI / evolve / crank / swarm loops, and the .agents/ context-compiler. Everything that tried to be an always-on orchestration runtime is gone, and out-of-session orchestration (when work runs, who supervises it, how agents coordinate) is delegated to a substrate you choose: Gas City (a reference City ships here) or Mount Olympus. Roughly 117K lines were removed across a five-wave rip, the default install now registers zero hooks, and CI is the authoritative gate. docs/3.0.md is the north star.

Upgrade Notes

  • If you ran AgentOps in a session, nothing you rely on changed — ao rpi, ao evolve, crank, swarm, and the .agents/ corpus are unchanged.
  • If you ran the daemon, scheduler, or hooks, those are removed; see Breaking Changes below and the migration guide.
  • See docs/MIGRATION-3.0.md for the full breaking-change migration.

Breaking Changes

  • Hooks are removed (soc-57b7f). The default install registers no hooks; ao hooks install, --with-hooks, and the embedded hook surface are gone. What a hook enforced locally, a CI job in .github/workflows/validate.yml now enforces; author bounded gates with the hooks-authoring skill.
  • The daemon is removed (soc-2rtm0). ao daemon / agentopsd no longer exist. For always-on work, run the reference Gas City (city.toml + packs/agentops) or Mount Olympus.
  • Scheduling is removed (soc-2rtm0). ao schedule, ao plans, ao watch, and ao overnight are gone; Gas City Orders own out-of-session scheduling.
  • The factory command is removed (soc-2rtm0). ao factory and its contract corpus are gone; the factory is the loop (crank / swarm in-session, or a mayor-driven City).
  • runtime=gc is removed (soc-2rtm0). ao rpi keeps its auto / direct / stream / tmux backends; Gas City now dispatches whole ao rpi loops as one unit.

At a Glance

Product Area Added Changed Refactored Fixed Deprecated/Removed
Install, Upgrade, and Distribution 0 1 0 0 0
CLI and Operator Commands 1 0 0 0 3
Daemon, Scheduling, and Factory 0 0 0 0 4
Skills and Workflows 1 1 0 0 0
Hooks and Lifecycle 0 0 0 0 1
Knowledge Flywheel, Search, and Memory 0 0 3 0 0
Eval, Validation, and Release Gates 2 0 0 0 0
Docs and Onboarding 3 1 0 0 0

Product Areas

Install, Upgrade, and Distribution

  • Changed: version synced to 3.0.0 across .claude-plugin/plugin.json, .claude-plugin/marketplace.json, and the City pack's pinned AO_VERSION.

CLI and Operator Commands

  • Added: ao validate --gate collapses PASS/WARN/FAIL to a process exit code — the retry hook for Gas City check and CI, no network or LLM.
  • Removed: ao daemon, ao schedule / plans / watch / overnight, and ao factory (see Breaking Changes).
  • Removed: the runtime=gc phased-engine mode.

Daemon, Scheduling, and Factory

  • Removed: internal/daemon + the agentopsd binary, the scheduler lane, the factory command + contract corpus, and the CLI gc-bridge glue (soc-2rtm0, ~117K LOC). AgentOps ships no out-of-session runtime; Gas City or Olympus owns that surface.

Skills and Workflows

  • Added: the AgentOps reference Gas City — a turnkey City (city.toml + packs/agentops + skills overlay) demonstrating out-of-session orchestration on AgentOps skills.
  • Changed: skill consolidation merged overlapping skills into mode flags, taking the catalog to 75 skills.

Hooks and Lifecycle

  • Removed: all 53 runtime hooks. The lifecycle is guided by skills and enforced by CI gates (see Breaking Changes).

Knowledge Flywheel, Search, and Memory

  • Refactored: real hexagonal port adapters wired to their core consumers — a filesystem CorpusReader/Writer, a bd-backed TrackerPort, and a git-backed WorkspacePort.

Eval, Validation, and Release Gates

  • Added: a BDD acceptance layer — scenario→test linkage runner plus a CI gate (soc-63xfx), with canonical .feature acceptance across skills.
  • Added: ao validate --gate as a deterministic exit-code verdict for CI and Gas City retry loops.

Docs and Onboarding

  • Added: the 3.0 doctrine — docs/3.0.md north star, docs/adr/ADR-0009-daemon-deletion-in-session-only.md, and the canonical-loop model.
  • Added: docs/MIGRATION-3.0.md, the breaking-change migration guide.
  • Changed: README and PRODUCT reconciled to the in-session core, with the out-of-session autonomous-dispatch gap explicitly labeled (soc-5jwah).

Known Issues

  • Gas City order-level autonomous dispatch is still maturing upstream (soc-5jwah); today the reference City dispatches via a long-lived mayor agent (bd readygc sling) plus cron exec orders for maintenance.

Full changelog


Full changelog

AgentOps 3.0 is the hookless-first major. The headline: AgentOps is what runs in-session — skills + the ao CLI + the RPI/evolve/crank/swarm loops + the context-compiler. Out-of-session orchestration (scheduling, daemons, autonomous dispatch) is delegated to Gas City (a reference City ships in this release) or Olympus. The default install registers zero hooks; the lifecycle is driven by skills and CI gates. See docs/3.0.md for the north star.

⚠️ Breaking Changes

  • Hookless by default (soc-57b7f) — the default install registers no hooks. All 53 runtime hooks were audited and removed; capabilities that lived in hooks (standards injection, commit-review gating, noise injectors) are now CLI ports + CI gates. Opt back in with --with-hooks (AGENTOPS_INSTALL_HOOKS=1) or ao hooks install --force. Migration: if you relied on hook-driven behavior, switch to the CI gate or the equivalent ao subcommand.
  • Daemon carved out (soc-2rtm0, daemon-carve wave 5) — internal/daemon + the agentopsd binary were deleted. AgentOps no longer ships an out-of-session daemon; Gas City is the orchestration substrate. Builder cores that previously ran as daemon jobs (wiki build, llmwiki loop) keep their in-process / GC-callable core but lose the daemon-job-executor wrapper.
  • Scheduling/plans/watch/overnight commands removed (soc-2rtm0, kill-schedule-overnight) — ao schedule, ao plans, ao watch, and the overnight engines were deleted. Gas City owns scheduling. The phased RPI engine keeps its non-gc backends (auto/direct/stream/tmux); runtime=gc is no longer a valid mode.
  • factory command + contract corpus retired (soc-2rtm0, cascade-rip) — the ao factory command and its contract corpus were removed.
  • Gas City (gc) bridge severed (soc-2rtm0, wave 2) — the CLI gc-bridge glue (gc_bridge.go, gc_events.go, rpi_phased_gc.go) was deleted; the daemon-side GasCity client is a separate, retained surface.

Added

  • AgentOps reference Gas City — a turnkey City (city.toml + agentops pack + overlay) that demonstrates out-of-session orchestration on top of AgentOps skills.
  • ao validate --gate — exit-code verdict for Gas City retry loops and CI; PASS/WARN/FAIL collapses to a process exit code.
  • Real hexagonal port adapterscorpus_fs CorpusReader/Writer, a bd-backed TrackerPort, and a git-backed WorkspacePort, each wired to its core consumer. Port-realness audit in docs/architecture/.
  • BDD acceptance layer — scenario→test linkage runner + CI gate (soc-63xfx); canonical .feature acceptance added across skills (research/plan/validation/trace/handoff/readme/autodev/flywheel/inject and more) and daemon-lifecycle Gherkin linked to tests.
  • scripts/ship.sh (#346, soc-33uy) — single-command wrapper that auto-detects inventory-touching diffs and routes through the full pre-push gate (no --fast skip on skill/contract changes), preemptively running the regen sweep (sync-skill-counts, codex-hashes, domain-map, context-map, registry, sync-hooks). Mechanical fix for ship-loop anti-pattern #1.

Changed

  • Honest 3.0 doctrinedocs/3.0.md is the canonical north star: AgentOps is in-session; Gas City and Olympus own out-of-session. Doctrine, PRODUCT, and README were reconciled to the in-session core (skills + rpi + evolve + crank + swarm + context-compiler), with the out-of-session autonomous-dispatch gap explicitly labeled (soc-5jwah).
  • Version sync to 3.0.0.claude-plugin/plugin.json, .claude-plugin/marketplace.json (metadata + plugins[0]), and the City pack's pinned AO_VERSION (packs/agentops/assets/scripts/install-ao.sh) all bump to 3.0.0.
  • Coherent-arc PR rule (#348, soc-1lp1) — replaces "one scenario per PR" default in CLAUDE.md + AGENTS.md. The unit of a PR is one closable bead (or small-epic slice) with a single rollback semantic. Small epics (≤5 child beads, same surface) ship as one PR with N commits; large epics ship as N PRs sliced by scenario or wave. Updates ship-loop skill (Claude + Codex twins). Derived from the 2026-05-19 8-PR merge-arc burn-through.
  • skill-auditor rubric scoring (soc-ads5v) — adds a Pass 3 rubric-scoring stage.
  • Executable-spec-link-integrity promoted warn→blocking (soc-x7y9f) — the scenario→test link gate is now a required CI check.

Fixed

  • Daemon robustness hardening — bounded idempotency key + request decode guards (soc-scg3h), heartbeat ledger-write timeout (soc-15g9f), heartbeat goroutine-lifecycle bound (soc-yyrrq), payload-shape validation before ledger append (soc-qra05), and executor-panic recovery in supervisor dispatch (soc-as401). (Hardening landed before the daemon carve-out for the GasCity-side client surface.)
  • goals trace --orphans parser now rejects bead prose and matches real orphans.
  • 6 pre-existing shellcheck warnings (#349, soc-j026) cleaned across validate-codex-api-conformance.sh, goal-failure-taxonomy.sh, purge-global-garbage.sh, nightly-pr-digest.sh, add-validate-job.sh, check-skill-size.sh. All in scripts unchanged from base — atomic side-quest per anti-pattern #2.
  • Local pre-push gate eval-canary strictness mismatch (#350, soc-nmhp) — full-mode eval-canaries now respect the same path filter as CI's eval-workbench-verify (HAS_EVAL=1 || is_ci_env). Previously needs_check eval short-circuited to true in full mode, producing 5 spurious FAILs on doc/script PRs against a baseline-less local env. Closes the "Local-vs-CI environment drift" learning (docs/learnings/2026-05-07-ci-push-gate-toil-pattern.md).
  • Eval fixtures referencing deleted hooks (soc-t40ai) cleaned; stale deleted-hook copies removed from cli/embedded/.

Full Changelog: v2.41.1...v3.0.0