Skip to content

v0.2.0

Latest

Choose a tag to compare

@srtab srtab released this 01 Sep 14:24
· 8 commits to main since this release
3853da7

Session-based execution, patches, and GHCR image

This release is a total refactor that focuses the project on safe, session-based command execution. You can now run multiple commands across multiple requests within the same session, get a patch of the changes produced by those commands, and optionally fail fast on the first error. A Docker image is now built and pushed to GitHub Container Registry on pushes to main.

⚠️ Breaking changes

  • The run commands endpoint is now session-based. You can run multiple commands over multiple requests using the same session.
  • The run commands response now returns a patch (diff) of file changes instead of an archive of changed files.
  • Removed support to run arbitrary code.

Please review the migration guide below before upgrading.

Highlights

  • Session-like API for multi-step executions.
  • Patch-first design: concise diffs instead of full archives.
  • Safety & ergonomics: fail_fast to stop early on errors.
  • CI enhancement: Docker image automatically published to GHCR.

Migration guide

  1. Adopt sessions

    • Before: single-shot command execution per request.
    • Now: create/use a session, then send one or more command batches tied to that session until you close it.
  2. Consume patches instead of archives

    • Update downstream tooling to parse unified diffs.
    • Apply with standard tools (e.g., git apply or patch) if you need to materialize file changes.
  3. Stop on first failure (optional)

    • Opt into stricter behavior with fail_fast=true to abort on the first failing command.
  4. Enable/handle extract_patch

    • Use extract_patch=true when you specifically want to retrieve the generated patch artifact.
  5. Audit any arbitrary code execution paths

    • Replace usage with explicit command execution via sessions.

Tip: If you previously automated downloads of an archive, switch to saving the returned patch (e.g., changes.patch) and apply it where needed.

Documentation

  • README.md has been updated to reflect session-based execution and patch responses.

Full Changelog

Compare changes