Skip to content

refactor(skills): migrate to runtime registry install architecture#34

Closed
senamakel wants to merge 2 commits into
mainfrom
feat/skills-desync
Closed

refactor(skills): migrate to runtime registry install architecture#34
senamakel wants to merge 2 commits into
mainfrom
feat/skills-desync

Conversation

@senamakel
Copy link
Copy Markdown
Member

Summary

  • Replaced submodule-based/bundled skill sourcing with a runtime registry installer model.
  • Added Rust registry services and new Tauri commands for core sync, catalog listing, install/update, and uninstall.
  • Switched runtime discovery source to installed workspace skills (.../skills/installed) and added startup core sync before auto-start.
  • Updated Skills UI to expose a registry section with core/contributor entries and install/update/uninstall actions.
  • Removed bundled skills resource and submodule wiring (.gitmodules, tracked gitlink), and adjusted path/script assumptions accordingly.

Problem

  • Skills were effectively compile-time/submodule-coupled, making contribution and distribution centralized and heavyweight.
  • There was no first-class runtime registry workflow for mandatory core skills vs user-installed contributor skills.
  • Existing runtime path resolution depended on legacy skills/skills layouts.

Solution

  • Implemented src-tauri/src/runtime/registry.rs to:
    • pull/refresh the skills source repo (skills/),
    • parse registry/manifest.json,
    • verify directory hashes,
    • install/update atomically into runtime install directory,
    • persist install state.
  • Added new commands in runtime command surface:
    • registry_sync_core
    • registry_list_catalog
    • registry_install_skill
    • registry_update_skill
    • registry_uninstall_skill
  • Updated runtime engine fallback source dir to managed install output and wired startup core sync in app boot before auto_start_skills().
  • Updated frontend/provider/pages to consume registry commands and show install/update controls in UI.
  • Removed submodule/bundle assumptions from Tauri resources and scripts.

Testing

  • yarn -s compile
  • cargo check --manifest-path src-tauri/Cargo.toml
  • Other checks run (list commands)
  • yarn -s tsc --noEmit
  • yarn -s prettier --check . (via push hook)
  • yarn -s eslint . --ext .ts,.tsx (via push hook)
  • Manual validation completed (list scenarios)

Impact

  • Desktop runtime behavior changes: skills are now runtime-installed/synced from registry entries instead of bundled/submodule lookup.
  • Improves extensibility for contributor skills and enforces integrity checks via hash verification.
  • Introduces migration impact for developers relying on old skills/skills discovery/resource bundling assumptions.

Breaking Changes

  • None
  • Yes (describe clearly, including migration steps)
  • Removed tracked skills submodule/gitlink and .gitmodules.
  • Removed bundled ../skills/skills Tauri resource entry.
  • Runtime now expects installed skills in managed install directory and registry metadata in skills/registry/manifest.json.

Related

  • Issue(s): N/A
  • Follow-up PR(s)/TODOs:
  • Add registry schema/version validation and stronger trust metadata handling.
  • Add automated integration tests for install/update/uninstall command flows.
  • Add explicit migration docs for maintainers and contributors.

@senamakel senamakel closed this Mar 30, 2026
@senamakel senamakel deleted the feat/skills-desync branch March 31, 2026 18:12
graycyrus added a commit that referenced this pull request May 15, 2026
…-state (#3R #3S #33 #34 #97) (#1795)

Co-authored-by: Cyrus Gray <cyrus@tinyhumans.ai>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant