• v0.4.0 8ef5ec4bcf

    v0.4.0
    All checks were successful
    CI / audit (push) Successful in 24s
    CI / test (push) Successful in 50s
    Release / check (push) Successful in 17s
    Release / gate (push) Successful in 17s
    Release / image (push) Successful in 1m33s
    Release / forgejo-release (push) Successful in 14s
    Stable

    Mila released this 2026-10-27 20:18:45 +00:00 | 14 commits to main since this release

    Added

    • release_mode: tag: autopilot only creates the tag and leaves the Forgejo release to the
      project's release pipeline, then reports the pipeline result in the issue or PR. The deployer
      therefore only sees releases whose image exists.
    • Renovate PRs repaired by autopilot are handed over for review (label zu-prüfen, mention)
      instead of being merged; renovate_automerge restores the old behaviour per project.
    • Merged Renovate security updates (label security) trigger a release
      (renovate_security_release, default on). The first poll only sets the baseline.
    • Throwaway Postgres testdb in compose.yaml for sessions that run database tests.
    • docs/08-isolation-plan.md: isolation of sessions and CI, done and planned stages.

    Changed

    • Agent sessions run as their own user agent. They can no longer read the Forgejo token,
      state.db, config.yaml or the logs; they share only the worktrees with the service.
    • The container has no Docker socket and no Docker CLI any more; it starts as root only to set
      the permissions under /data and then drops to autopilot (service) or agent (CLI logins).
    • The image contains libmagic1 and shellcheck for the Horae toolchain.
    • compose.yaml limits memory and CPU (AUTOPILOT_MEM_LIMIT, AUTOPILOT_CPUS); the host also
      runs production.
    • The release image is built on the runner labelled docker.
    • A session timeout kills the whole process group, not only the CLI.
    • The git authorization header is passed via the environment instead of the command line.

    Fixed

    • Tags and releases point at the commit that was checked, not at the moving base branch: with
      release_after_ci a commit pushed in between could otherwise end up in the release.
    • CI logs for Renovate sessions are found on Forgejo 16 (commit_sha, job list, status);
      before, sessions never got any log. Post steps are cut so the error is not pushed out.
    • Renovate PRs are not picked up when the base branch is red itself, nor the onboarding PR.
    • A repair that changes CI workflows (.forgejo/, .github/) is not pushed but blocked.
    • A job that crashed on its last attempt gets the blockiert label; before, the next poll
      restarted it from attempt 0.
    • The deployer ignores draft releases.
    • Conflict resolution and approval merges of Renovate PRs use the PR branch.
    Downloads