Skip to content

v5.2.0

Choose a tag to compare

@github-actions github-actions released this 14 Jul 06:14
· 325 commits to main since this release
f09191a
  • Every provider streams the same live view in the loop. Codex dumped its banner and raw exec
    blocks, Gemini printed only errors, and Grok buffered run-on prose; each provider now enables its
    streaming JSON mode on a TTY and decodes it into the same model line, tool glyphs, text, and
    closing token line. Work and review stages led by Codex, Gemini, or Grok also record their token
    usage in the run's cost telemetry; dollars remain Claude-only because the other CLIs do not
    report cost.

  • Zsh completion now follows Coop's full target grammar. The first Tab after an exact command
    advances to that command's arguments, and target positions complete available providers, models,
    effort levels, credentials, and presets. Loop, fusion, and ACP peer positions also offer the
    contextually valid targets and flags instead of falling back to the top-level command list.

  • A gemini box can read the gitignored task queue. Gemini's read_file rejected every
    task.md as "ignored by configured ignore patterns": its file tools honor .gitignore, while
    the queue is gitignored working state. Coop's mounted per-box settings now force
    context.fileFiltering.respectGitIgnore=false without changing the host settings.

  • The pre-flight prompt no longer contradicts a queue-managing cleanup. The built-in unblock
    already runs host-side, but the custom-cleanup box still forbade queue moves; one agent wrongly
    responded by parking five healthy tasks in 50_blocked/. Its wrapper now permits only directed
    folder moves while task work, code, gates, and commits remain forbidden.

  • Long loops stop repeating and immediately retrying known rate limits. A provider's structured
    limit notice is rendered once while its full text still reaches the detector, and a failed custom
    pre-flight now carries the target's reset into work rotation. Cooling targets are skipped until
    their reset; when every target is limited, the loop still waits for the earliest one.

  • Loop boxes now enforce the same Staticcheck gate as the host. The shared image builds and
    installs a pinned analyzer, closing the gap that let a host-red commit pass inside a loop. The
    fork hardening fixture also neutralizes ambient global Git hooks repo-locally, so the stronger
    in-box gate remains deterministic.

  • coop fork stop now proves the fork's box is gone before reporting success. The worker still
    gets its graceful process-group shutdown first; the exact coop.fork=<name> container reap now
    has a deadline and surfaces runtime query/removal failures instead of confusing them with an
    already-gone box. Failed reaps and crashed-worker state stay retryable, and a per-fork lifecycle
    lock prevents a new start from racing that cleanup; fleet down also propagates any stop
    failures. Apple container uses its native JSON listing while Docker/Podman retain label filters,
    so the backstop is exact across the supported runtimes.

Full Changelog: v5.1.0...v5.2.0