-
Notifications
You must be signed in to change notification settings - Fork 0
Releases
The canonical release index is the GitHub Releases page. Every release has a tag, full notes, and a downloadable archive.
For the per-release breakdown of what changed and why, the source of truth is CHANGELOG.md. It follows Keep a Changelog and Semantic Versioning.
Why this page is short. We used to maintain a separate wiki page per release. That meant 17 stale wiki pages last updated when v1.15.0 shipped, while the real release notes lived in
CHANGELOG.mdand on GitHub Releases. As of v1.35.0 the wiki only links to those canonical sources — no copies, no drift.
v1.35.0 — Tiered Logging, Crash-Safe Vault, Runtime LLM Control (2026-04-08)
- Vault single-file v2 format with embedded random salt and crash-safe atomic migration
- Tiered structured logging (long-tier ~30d, short-tier ~6h) with hourly cron prune sweep and unified
*_HOURSenv contract - Runtime LLM operator control (flip
cli↔apiper session via dashboard or/api/operator/llm) - Telegram + Claude CLI fail-closed deny guard
- Headless CLI auto-approve with sandbox lockdown
- mypy 147 errors → 0 across 112 source files
- 27+ new regression tests; 1762 passed total
Full notes: GitHub Release v1.35.0.
| Version | Date | Theme |
|---|---|---|
| v1.35.0 | 2026-04-08 | Tiered logging, crash-safe vault, runtime LLM control, security hardening |
| v1.34.0 | 2026-04-02 | Self-host onboarding closure (setup doctor, runtime data dir, identity config) |
| v1.33.0 | 2026-04-01 | Docker-isolated build execution |
| v1.32.0 | 2026-04-01 | LLM build pipeline (codegen → BuildOperation[]) |
| v1.31.0 | 2026-04-01 | Runtime contract closure (auth, public API, extraction readiness) |
| v1.30.0 | 2026-04-01 | Deployment contract hardening |
| v1.29.0 | 2026-04-01 | Settlement workflow closure |
| v1.28.1 | 2026-04-01 | Phase 4 enterprise hardening complete |
| v1.24.1 | 2026-03-31 | Phase 3 complete + runtime bug fixes |
| v1.21.1 | 2026-03-31 | Deployment portability + dynamic identity in consolidation |
For older versions and the full per-version diff, browse GitHub Releases.
- MINOR releases when a coherent set of operator-visible features is ready. No fixed cadence — when it's ready, it ships.
- PATCH releases for bug fixes and security findings. Fast turnaround, usually within days of the report.
- MAJOR releases would mean breaking changes. We've not had one since v1.0.
Every release goes through:
- Feature branch off
main. - PR with the full CHANGELOG entry, version bump, doc updates.
- CI gate (ruff + mypy + 1762 tests + architecture invariants + release-readiness).
- Codex review (automated PR review bot).
- Squash merge.
- Tag on the merge commit.
-
gh release createwith the CHANGELOG body. - Production deploy on operator hosts.
The full pre-release checklist is in docs/RELEASE_CHECKLIST.md.
When a release needs operator action, the CHANGELOG entry has an explicit Migration Notes section. We never assume operators read every line — the migration steps are called out under their own header so you can find them with one keypress.
Notable migrations:
| From → To | What you have to do |
|---|---|
| pre-1.34 → 1.34 | Setup doctor + runtime data dir adoption (auto-detected for legacy installs) |
| pre-1.35 → 1.35 | Vault auto-migrates to v2 single-file format on first boot. Add AGENT_CLI_AUTO_APPROVE=1 for headless deployments. Switch AGENT_LOG_LONG_RETENTION_DAYS to _HOURS (deprecated env still works but emits a warning). |
We try hard not to break operators. The contract:
-
Public CLI flags (
python -m agent --foo) are stable across MINOR releases. Removal needs a deprecation warning + a major version bump. -
HTTP API endpoints (
/api/*,/api/operator/*) are stable across MINOR releases. The wire format is documented in API Reference and breaking changes get a CHANGELOG callout. - Telegram commands are stable. New commands get added; old ones get deprecation warnings before removal.
-
Env vars are stable. Renames keep both names working through at least one MINOR cycle (see
AGENT_LOG_LONG_RETENTION_DAYS→_HOURS). - Storage formats auto-migrate. We never ask operators to manually convert SQLite tables.
If a release breaks any of these without a CHANGELOG callout, please open an issue.
v1.35.0 · Latest Release
Getting started
Architecture
Subsystems
- Security model
- Vault
- Tiered logging
- Runtime LLM control
- Build pipeline
- Review pipeline
- Finance
- Cron & Maintenance
Development