Problem
The ~/.deepseek/ → ~/.codewhale/ state migration is completely silent. When migrate_legacy_state_dir() relocates a legacy directory (sessions, skills, tasks, etc.), it only emits a tracing::info!() log entry that users never see. Users have no idea their data was moved, where it went, or why their sessions suddenly appear empty.
Reported in:
Current behavior
crates/config/src/lib.rs migrate_legacy_state_dir() (line 3344-3403):
tracing::info!(
target: "config::migration",
"Migrated legacy state directory {} -> {} (relocated). The .deepseek copy was removed.",
legacy.display(), primary.display()
);
This goes to the debug log — invisible to the end user.
Desired behavior
When legacy state is migrated on first run, CodeWhale should print a clear, hard-to-miss banner to the terminal explaining:
- What was moved (
~/.deepseek/<subdir> → ~/.codewhale/<subdir>)
- That data is preserved
- That the user should now use
~/.codewhale/ as the canonical location
- Optionally: that they can safely remove
~/.deepseek/ if no other apps use it
The banner should appear once per migration (not every launch), and should be visible even when TUI starts (e.g., in the startup welcome area or as a dismissible notification).
Related
Problem
The
~/.deepseek/→~/.codewhale/state migration is completely silent. Whenmigrate_legacy_state_dir()relocates a legacy directory (sessions, skills, tasks, etc.), it only emits atracing::info!()log entry that users never see. Users have no idea their data was moved, where it went, or why their sessions suddenly appear empty.Reported in:
Current behavior
crates/config/src/lib.rsmigrate_legacy_state_dir()(line 3344-3403):This goes to the debug log — invisible to the end user.
Desired behavior
When legacy state is migrated on first run, CodeWhale should print a clear, hard-to-miss banner to the terminal explaining:
~/.deepseek/<subdir>→~/.codewhale/<subdir>)~/.codewhale/as the canonical location~/.deepseek/if no other apps use itThe banner should appear once per migration (not every launch), and should be visible even when TUI starts (e.g., in the startup welcome area or as a dismissible notification).
Related