> ## Documentation Index
> Fetch the complete documentation index at: https://internal.september.wtf/llms.txt
> Use this file to discover all available pages before exploring further.

# Changelog

> Engine release history.

This page tracks notable changes to the Engine. The format follows
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and the Engine
adheres to [Semantic Versioning](https://semver.org/).

For the full commit history, see the
[engine repository](https://github.com/septemberai/engine).
For migration walk-throughs, see [Migration guides](./migration-guides).

## [v2.3.0] — orchestrator extraction + hardening

### Changed

* The orchestrator is no longer part of the Engine. It has been
  extracted into the [`bap-engine`](https://github.com/septemberai/bap-engine)
  repo as a separate service. Engines are pure agent runtimes; the
  orchestrator handles provisioning and routing.
* `super_thinking` (boolean) replaces the previous 4-level effort
  parameter. Set it on a per-call basis to enable extended thinking;
  leave it off for normal calls.
* Hydration of `ToolDef` fields is now complete — all metadata fields
  are wired through to the model.

### Added

* MCP connector improvements: PKCE in OAuth flows, OAuth state
  validation in `/assets/callback`, session tracking on connections.
* Migration `014_token_issued_at.sql` adds `token_issued_at` for cache
  validation on outbound credentials.
* `/admin/lc/trigger` accepts a request body for forcing a fresh batch
  with optional scope.

### Fixed

* AD error failures are now included in the execution audit log.
* Tombstoning stale entries in `action_registry` when the server
  refreshes its catalog.
* `task_id` is propagated to all `execute` and coordinator log lines.
* Skill auto-promotion now uses the maximum confidence value rather
  than the latest, preventing premature promotion on a single
  high-confidence run.

### Security

* OAuth state validation in `/assets/callback`.
* MCP connectors require PKCE for the auth code flow.

### Removed

* `orchestrator.py` (moved to bap-engine).
* `scripts/deploy.sh` and `scripts/pg-backup.sh` (now part of
  bap-engine deployment).
* `src/infra/pg.py` (Postgres adapter — Engine is SQLite-only).

[v2.3.0]: https://github.com/septemberai/engine/releases/tag/v2.3.0

***

## [v2.1.1] — packaging fix

### Fixed

* Packaging metadata corrected after migration from PyPI to private
  GitHub distribution. Wheels now ship with the catalog and migrations
  intact.

[v2.1.1]: https://github.com/septemberai/engine/releases/tag/v2.1.1

***

## [v2.1.0] — SQLite tables fix

### Fixed

* Resolved missing SQLite tables in the post-PyPI distribution path.
* Migration runner now correctly applies on first boot regardless of
  whether the volume is fresh or pre-populated.

### Changed

* Engine package now installs from GitHub via tag (not PyPI).
* Migrations and catalog ship with the wheel; no more manual
  `COPY catalog/migrations` in Dockerfiles.

[v2.1.0]: https://github.com/septemberai/engine/releases/tag/v2.1.0

***

## [v2.0.0] — pip package distribution

### Changed

* **Breaking.** Engine is now distributed as a pip package rather than
  a git submodule. Update your Dockerfile or installation flow
  accordingly.
* Catalog and migrations are bundled with the package.

### Migration

See [Migration guide v1 → v2](./migration-guides) when one is
published.

[v2.0.0]: https://github.com/septemberai/engine/releases/tag/v2.0.0

***

## Earlier versions

For releases prior to v2.0.0, see the
[engine repository releases page](https://github.com/septemberai/engine/releases).

## How to read this changelog

Each release section uses these subsection conventions:

* **Added** — new features, endpoints, events, or env vars.
* **Changed** — non-breaking changes to existing behavior.
* **Deprecated** — features still working but planned for removal.
* **Removed** — features no longer present. **Breaking** changes are
  flagged in bold.
* **Fixed** — bug fixes.
* **Security** — vulnerability disclosures and hardening.

When a change is marked **Breaking**, see
[Migration guides](./migration-guides) for the upgrade path.
