Every breaking change in the Engine gets a migration guide. Each guide explains what changed, what the new behavior is, and what code you need to update. For all changes (breaking and non-breaking), see the Changelog.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.
Active migrations
v2.2 → v2.3 — orchestrator extraction + super_thinking
Status: required if you’re using the orchestrator or the legacy effort parameter.What changed
-
Orchestrator removed.
orchestrator.pyis no longer in the Engine. It moved tobap-engine. If your deployment used the in-process orchestrator, switch to running bap-engine alongside the Engine. -
super_thinkingreplaceseffort. The 4-level effort parameter (none/low/medium/high) was a poorly-calibrated knob. It’s replaced by a booleansuper_thinkingthat turns extended thinking on or off explicitly. -
scripts/deploy.shandscripts/pg-backup.shremoved. Postgres support is gone; the deploy script moved to bap-engine. -
src/infra/pg.pyremoved. SQLite is the only durable store.
Migration steps
If you used the in-process orchestrator:- Set up bap-engine alongside the Engine. See bap-engine deployment docs.
- Point the upstream router (BAP) at the bap-engine orchestrator URL instead of the Engine’s orchestrator endpoint.
- The Engine continues to serve
/executeand friends as before.
effort parameter:
Before:
effort: "high" → super_thinking: true; everything
else → super_thinking: false.
If you used the Postgres adapter:
Postgres is no longer supported. The Engine is SQLite-only. Migrate
your data to SQLite or run multiple Engines (one per user, each with
its own SQLite brain).
Validation
After migration:curl /health— should returnok.- Run a test
/executewithsuper_thinking: true. Stream should includethinking_deltaevents. - Run regression evals — see Regression.
v1.x → v2.0 — pip package distribution
Status: required if you used a git-submodule install.What changed
The Engine moved from git-submodule distribution to a pip package via private GitHub.Migration steps
Before (Dockerfile snippet):Validation
After migration:python -c "import src; print(src.__version__)"should print the Engine version.curl /healthshould returnok, with the migrations subsystem reporting all applied.
Migration playbook
For any upgrade, regardless of size:- Read the changelog. Identify breaking changes.
- Read the relevant migration guides. This page.
- Back up the brain. Snapshot the volume or run
/memory/export. - Bring up the new Engine in a staging environment with a copy
of the brain. Confirm
/healthreturnsok. - Run regression evals. Compare against the pre-upgrade baseline.
- Spot-check critical workflows. A coding agent run; a research agent run; a support tier-2 run with HITL.
- Roll out to production when the staging signal is green.
When migration goes wrong
If the new Engine fails to start:- Check logs for migration errors. A failed migration leaves the brain in an inconsistent state.
- Roll back to the previous version (the brain remains compatible with prior versions if no breaking schema changes happened).
- Restore from snapshot if the brain is in a bad state.
- Run a regression eval to identify which behaviors regressed.
- Check the Changelog for
Changedentries that match the symptoms. - Roll back if the regressions are unacceptable.
Versioning
The Engine follows Semantic Versioning:- Major (X.0.0) — breaking changes. Always has a migration guide.
- Minor (X.Y.0) — new features, no breaking changes.
- Patch (X.Y.Z) — bug fixes, no new features.
See also
- Changelog — every release.
- Regression — checking behavior across versions.
- Upgrade — operational steps for the deploy itself.

