Problem
Squad has two different "version" concepts, but only one is auto-maintained:
| Version |
Location |
Auto-updated? |
Risk |
| CLI version |
squad.agent.md HTML comment |
Yes (init + upgrade) |
None |
| Config version |
squad.config.ts version field |
No |
Stale after upgrades |
| Schema version |
.squad/config.json version: 1 |
No (hardcoded) |
Never incremented |
What works
squad.agent.md version is auto-stamped by stampVersion() during both init and upgrade
upgrade.ts compares the stamped version to detect if already current
What does not work
squad.config.ts version is set to 1.0.0 at init and never touched again
.squad/config.json version is hardcoded to 1 and never incremented
- If SDK introduces breaking config schema changes, users have no migration path
squad upgrade does not bump config versions
Customer impact
- Users assume
squad upgrade handles everything (it does not touch config version)
- No warning when config schema is stale vs. installed CLI version
- Breaking changes to config format silently fail at runtime
Proposed fix
- Auto-stamp config version during
upgrade (similar to squad.agent.md stamping)
- Track schema version separately from CLI version
- Add migration hooks: when schema version changes, run config migration
squad doctor should validate config version matches installed CLI expectations
Related
Problem
Squad has two different "version" concepts, but only one is auto-maintained:
squad.agent.mdHTML commentsquad.config.tsversionfield.squad/config.jsonversion: 1What works
squad.agent.mdversion is auto-stamped bystampVersion()during bothinitandupgradeupgrade.tscompares the stamped version to detect if already currentWhat does not work
squad.config.tsversion is set to1.0.0at init and never touched again.squad/config.jsonversion is hardcoded to1and never incrementedsquad upgradedoes not bump config versionsCustomer impact
squad upgradehandles everything (it does not touch config version)Proposed fix
upgrade(similar to squad.agent.md stamping)squad doctorshould validate config version matches installed CLI expectationsRelated
packages/squad-cli/src/cli/core/version.ts-- stampVersion()packages/squad-cli/src/cli/core/upgrade.ts-- lines 453-513packages/squad-cli/src/cli/core/init.ts-- line 258