You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
apiforge rollback auto-detects the rollback target when --to is omitted: newest version older than the currently deployed image tag, sourced from successful audit-history releases with semver git tags as fallback.
rollback now verifies the configured health check after the rollout and supports --yes to skip the confirmation prompt.
Live terminal spinners for pipeline steps with streaming progress from Docker build/push, Kubernetes rollout (replica counts), and health-check attempts. Renders only on interactive terminals; CI/piped output keeps the plain line format, and JSON output on stdout stays clean.
apiforge init adds .apiforge/ to .gitignore.
Fixed
Apiforge's own .apiforge/ state directory no longer trips the require_clean preflight check (first release's audit write used to block every subsequent release).
release --output json now emits only the JSON document on stdout; the release plan and step progress go to stderr, so output can be piped straight into jq/CI parsers.
${VAR} environment variable references in apiforge.toml (GitHub token/repository, Slack/webhook notification fields, health-check URL) are now resolved at config load; missing variables fail fast naming the variable.
Notifications now use the Slack and generic webhook notification steps, fire on both success and failure (honoring notify_on), and sanitize error text. Previously only an inline Slack-only success path existed.
Audit records now capture the real outcome: per-step name/status/duration, total duration, and success/failed/rolled_back status. Failed releases are recorded, so history --filter failed works (and includes rolled-back releases).
--dry-run no longer writes audit records or creates .apiforge/ (dry-runs are side-effect free).
Removed double Kubernetes rollback: only k8s-update reverts the deployment revision; k8s-rollout rollback is a no-op, preventing an over-rollback to two revisions back.
k8s-rollout no longer divides by zero when a deployment is scaled to 0 replicas.
git-commit only stages CHANGELOG.md when the changelog step actually ran, fixing failures with --no-changelog or missing changelog files.
Changelog generation inserts new sections before existing release sections (header/description stay on top) and includes full history on the first release instead of an empty section.
history applies status filters before the --limit, and no longer creates the audit directory just to read it.
release --output json now includes step names, textual statuses, rolled_back, and error fields.
[github].create_release = false is now honored (release step is skipped).
Fixed potential panic when truncating multi-byte webhook URLs in config validate output.
Release workflow action versions aligned with CI (checkout@v6, upload-artifact@v7, download-artifact@v8).