Skip to content

Skills storage location is not switchable (web migrate_skill_storage → 501; no CLI/TUI control) #311

Description

@SaladDay

Summary

The Skills storage location setting (CC Switch default ~/.cc-switch/skills vs ~/.agents/skills) is surfaced in the settings UI but is not actually switchable on any surface. In the web console it even errors.

Details

  • Web (cc-switch web serve): the frontend calls invoke("migrate_skill_storage", { target }), but that command is not wired in the web bridge — it is left commented out in src/web/handlers/skills.rs, so it falls through to HTTP 501 Not Implemented. Selecting a different location throws / shows an error toast instead of migrating.
  • CLI: there is no subcommand to view/set/migrate the skills storage location.
  • TUI: there is no setting for it in the interactive Settings screen.
  • Backend model: the skills SSOT base directory is effectively hardcoded to get_app_config_dir()/skills in src/services/skill.rs (honors CC_SWITCH_CONFIG_DIR only). ~/.agents/skills is only a read-only discovery/import source, not a configurable target, and there is no skill_storage_location field in AppSettings (src/settings.rs).

Impact

  • Web users see the option and get a 501 error on click.
  • CLI/TUI users have no way to change it at all.
  • This is inconsistent with the desktop UI, which presents the option as if it were functional.

Suggested resolution (pick one)

  1. Implement it for real: add an AppSettings field for the skills storage location + a working migrate_skill_storage command, and wire it across web/CLI/TUI; or
  2. Drop the option from the UI if ~/.cc-switch/skills (under CC_SWITCH_CONFIG_DIR) is the only supported location.

Note

In the web build the control has been temporarily hidden to avoid the 501 until this is resolved.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions