Overview
Migration guides in rousseau-agent cover three axes:
- Version upgrades — moving between tagged releases.
- Deployment mode changes — bare-metal to containerised, single-host to multi-host.
- Provider or transport swaps — switching LLM backends or chat channels mid-project without losing conversation history.
Every migration guide follows the same structure so operators can skim to the section they need.
Guide structure
Each migration page contains, in order:
- What changed — the concrete diff at the config / CLI / data-store level. Never a philosophical summary.
- Config diff — a before/after YAML block. Copy-pastable.
- Data-store compatibility — whether
sessions.dbopens as-is, requires a schema migration, or must be exported/reimported. - Downgrade path — the reverse recipe. Rousseau follows a "one release backward" downgrade promise; further back requires the sessions.db backup.
- Verification — the commands that prove the migration succeeded (
rousseau doctor,rousseau session list,rousseau version).
Available guides
| Guide | When to read |
|---|---|
| 0.4 → 0.5 | Upgrading from an early single-transport release. |
| 0.5 → 0.6 | Upgrading to the current line-up of nine transports and five providers. |
| Container migration | Moving from go install on bare metal to rootless Podman + systemd Quadlet. |
| Provider migration | Switching LLM backend without losing conversation history. |
Versioning discipline
Rousseau uses semver: MAJOR.MINOR.PATCH.
- PATCH — bug fixes, no config-file changes, no data-store schema changes.
- MINOR — new fields with sensible defaults, additive tables. Backwards-compatible with a
PATCHrelease. Downgrade allowed. - MAJOR — renamed fields, removed subcommands, or a data-store migration. Requires reading the migration guide.
Every release ships:
- Signed checksums (
cosign verify-blob). - CycloneDX SBOM (
rousseau_<v>_sbom.cdx.json). - SLSA-3 provenance (
rousseau_<v>_provenance.intoto.jsonl).
Verify the signature before any upgrade — see Security for the trust root.
Change types you might encounter
Old key deprecated but honoured for two MINOR releases with a WARN-level log message. New key wins if both present. Env-var counterparts follow the same policy.
New flags are additive with defaults. Removed flags are only removed at MAJOR bumps and are documented in the migration guide with the replacement.
Rousseau runs schema migrations automatically at startup (sqlitestore.Open executes PRAGMA user_version checks and DDL). Downgrade requires either an older binary that understands the newer schema (rare) or a restore from backup.