Migration (pre-1.0)
Graphorin is pre-1.0. This page tracks how versions move and what to expect when upgrading.
Versioning policy
- Lockstep until 1.0. Every
@graphorin/*package shares one version and is released together. Install matching versions across the scope. - Pre-1.0 semantics. Per semver,
0.xminor bumps (0.1 → 0.2) may carry breaking changes. Patch bumps (0.1.0 → 0.1.1) are fixes only. - Breaking changes are called out in the changelog and in the package
CHANGELOG.mdfiles, generated from changesets.
Upgrading
bash
# Upgrade the whole scope together (lockstep).
pnpm up "@graphorin/*@latest"
pnpm install
pnpm build && pnpm typecheck && pnpm testAfter upgrading:
- Re-read the changelog for the target version's breaking section.
- Rebuild so producer
dist/*.d.tsare current before downstream typecheck. - Run your tests. Strict TypeScript surfaces most contract changes at compile time.
Data & schema migrations
- SQLite store migrations run automatically at startup inside a transaction. Take a backup and test on a staging copy before upgrading production. See Storage backends.
- Embedder changes are governed by the migration policy (
lock-on-first/multi-active/auto-migrate) — see Embedders. Changing the embedder model is a data migration, not just a config change. - Durable run / workflow state carries a schema version (
graphorin-run-state/1.x). Forward-compatible fields are synthesized when reading older snapshots; a major schema bump is documented in the changelog.
Wire & export formats
- The WebSocket protocol is versioned via the
graphorin.protocol.v1subprotocol; a futurev2will negotiate explicitly. - Session JSONL export and tool-cassette formats are versioned (schema
1.0) and read back compatibly within the documented support window.
When in doubt
Pin exact versions, upgrade in a branch, and run the full gate (pnpm run mvp-readiness) before promoting. Report regressions on the issue tracker with the from/to versions.