Chore: Remove migration templates#386
Merged
Merged
Conversation
Drop the `new` dict parameter from migrate_settings, migrate_defaults, and migrate_wingman in BaseMigration and all subclasses. All values previously read from version-specific template YAML files are now inlined directly in the migration code. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…backs Scaffold now copies settings/defaults from old version and uses templates/configs/ for wingman templates and assets. Migration callbacks no longer receive the `new` parameter. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Migration templates are no longer needed. Default values are inlined in migration code, and wingman templates come from templates/configs/. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Remove hardcoded version from template YAML files. The version is now stamped automatically whenever a wingman config is created from a template (fresh install, new wingman, or reset). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Pull request overview
This PR removes version-specific migration template snapshots and refactors the migration pipeline to rely on inline defaults inside migration code plus the current templates/configs directory.
Changes:
- Deleted
templates/migration/*config snapshots and stopped bundling them in build scripts. - Updated migration APIs (
migrate_settings/defaults/wingman) to accept only the old config and inline any needed defaults. - Reworked config bootstrapping during multi-step migrations to build new-version directories from the user’s prior configs plus current templates, and added a helper to stamp
created_with_versionon copied Wingman YAMLs.
Reviewed changes
Copilot reviewed 75 out of 103 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
templates/migration/** |
Removes frozen migration template snapshots across many versions. |
templates/configs/** |
Removes created_with_version from shipped Wingman templates; relies on runtime stamping instead. |
services/migrations/base_migration.py |
Simplifies migration method signatures (no “new template” arg) and updates no-op helper. |
services/migrations/migration_170_to_180.py |
Inlines new default structures instead of pulling from templates; signature update. |
services/migrations/migration_181_to_182.py |
Inlines ElevenLabs prompt + new provider defaults; signature update. |
services/migrations/migration_200_to_210.py |
Inlines new settings/defaults; signature update. |
services/migrations/migration_210_to_211.py |
Removes template-derived “new model” lookup; uses fallback constants; signature update. |
services/migrations/migration_211_to_300.py |
Inlines new llama/parakeet defaults; signature update. |
services/migrations/migration_300_to_301.py |
Signature update (settings migration only needs old). |
services/migrations/migration_310_to_311.py |
Signature update (settings/defaults only need old). |
services/migrations/README.md |
Updates migration chain and docs to match the new approach (no migration templates; inline defaults). |
services/config_migration_service.py |
Removes dependency on templates/migration/**; bootstraps new version dirs from old configs + current templates; adjusts callback signatures. |
services/config_manager.py |
Adds _stamp_created_with_version() helper and stamps copied Wingman YAMLs created from templates. |
build.py / build_macos.py |
Stops packaging templates/migration/** into builds. |
Comments suppressed due to low confidence (1)
services/config_migration_service.py:900
migrate_settings(...)results are not written tonew_filefor intermediate migration steps (onlysave_settings_config()is called, which writes to the current versioned config dir). This breaks multi-step migrations because the next migration reads settings from the intermediate version directory. Mirror thedefaults.yamlhandling: whennew_config_path != self.latest_config_path, writemigrated_settingstonew_filewithout Pydantic validation; keep the current validated save path for the final step.
elif filename == "settings.yaml":
self.log_highlight("Migrating settings.yaml...")
migrated_settings = migrate_settings(
old=self.config_manager.read_config(old_file),
)
try:
if new_config_path == self.latest_config_path:
self.config_manager.settings_config = SettingsConfig(
**migrated_settings
)
self.config_manager.save_settings_config()
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Prevents overwriting user configs copied from old version with template defaults during multi-step migration scaffold. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Shackless
added a commit
that referenced
this pull request
Apr 8, 2026
The templates/migration directory was removed in #386 but the spec still referenced it, breaking the build. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.