sx v2.0.0
sx 2.0 — the desktop app, vault format v2, and collections
sx 2.0 is the biggest release yet: a native desktop app for the
non-technical half of your team, a new vault format that keeps your
skills directly usable on disk, and collections that install as a unit.
⬆️ Upgrading — read this if you share a vault
Vaults move to format v2 the first time a 2.0 client publishes to
them (or when you run sx vault migrate). After that, older sx clients
can't use the vault until they update.
- sx updates itself. The CLI checks for updates daily in the
background, so most machines will already be on 2.0 before they ever
meet a v2 vault. If anyone seesunsupported manifest schema version,
the fix is one command:sx update— or simply retrying a bit later. - Coordinated teams: have everyone update (
sx update), then run
sx vault migrateonce, deliberately. - Nothing already installed breaks: existing installs keep working
throughout; only vault reads/writes gate on the schema. - skills.new vaults live server-side and have no format to migrate.
🖥️ The sx desktop app (new)
A native Mac / Windows / Linux app for browsing, sharing, and publishing
skills without touching a terminal — drag a markdown file in, edit as
drafts, publish when ready. Onboarding covers every library type,
including a shared folder in Dropbox / Google Drive / OneDrive /
iCloud — team sharing with no git and no server.
macOS builds ship as a DMG. Until our Apple Developer enrollment
completes they are unsigned — macOS will warn on first open (right-click
the app → System Settings → Privacy & Security → Open Anyway). Signed
and notarized builds will follow shortly in a patch release.
📦 Vault format v2
The latest version of every asset now lives directly at
assets/<name>/ — readable, grep-able, and usable in place (point
Obsidian or .claude/skills straight at it). Version history moves to
.sx/versions/. Migration is automatic and one-way.
🗂️ Collections
Group related skills and share the group. Collections install as a
unit, resolved at read time: share a collection with a team and
skills added to it later reach the team automatically; un-sharing never
touches anyone's direct installs. Manage them in the app or with
sx collection.
Also in 2.0
- Teams can own repositories; team-shared assets install into them.
- Repository-scoped views in the app (per-library opt-in).
- Multi-select bulk actions in the app — share, delete, or drag many
skills at once, with confirmation before anything changes. sx vault copymigrates a whole vault — assets, versions, scopes,
teams, bots, collections, audit, and usage — between any two backends.- Git vaults refresh automatically in long-running sessions.
Full commit-level changes below.
Changelog
- 0c4d23b Add app collections and AI-tool installs
- dfa85ff Add app release CI, update check, verification log
- 820bbcf Add app write path: drafts, publish, restore
- 163224f Add cloud-sync folder detection helper
- fc4f436 Add desktop app skeleton with library and onboarding
- d6b36ad Add layout-aware vault storage for format v2
- 0026ae0 Add library icons and multi-vault sync controls
- e20adfe Add library removal, repo creation, native menus
- b85ef4f Add library-level Sync button
- 65c81da Add migration e2e tests and rebase-abort recovery
- 9f358dd Add per-library repository tracking
- 976d099 Add shared-folder and skills.new paths to app onboarding
- eac3d2e Add shared-folder choice to Add Library settings
- 46c58f0 Add shared-folder option to sx init
- eb0ed79 Add teams and sharing, simplify LHN, custom app icon
- 1c65abe Add v1 to v2 vault migration on first write
- 4d1784c Age-gate staging sweep, normalize before audit
- f76bded Align new-asset modal controls, drop Blank prefix
- ccc24ab Align team-view rows when collections are listed
- eb115a0 Align type column, Skills rename, identity footer
- f3eea9c App feedback round: editor, zips, create button, settings
- 2d2027d Audit collection scopes cleared by team delete
- 8478750 Auto-install wails for app targets
- f388db8 Batch bulk collection adds into one save
- a5106ae Build DMG for macOS releases
- d853134 Bulk share/drop polish
- e0cac37 Clean up library switcher header
- 43cb520 Confirm bulk operations before applying
- d4160dc Copy collections in vault copy
- c8701e8 Curated release notes for tagged releases
- 68cdb55 Dedupe sleuth repo assets per repository
- eec3a8d Delete buttons with confirmations
- cd45444 Detect git availability, allow sign-in cancel
- bf680df Disable sync toggle on the current library
- 86e645b Document synced-folder vault sharing
- eff3f6e Download button on skill detail
- 7b8dee7 Drag assets/collections onto teams, add repo picker
- 52c792a Drag repositories onto teams
- 3d8e8aa Expose vaults as plugin marketplaces
- 0d499b4 Extend app menu, address review findings
- 5bc1ead Fix branch review findings
- c69625d Fix drag-to-collection, list collections in team view
- 077e872 Fix false update banner, auto-update the app
- 3e1229d Fix install detection, unify new-asset dialog, persist window
- 9815120 Fix migration edge cases found in Docker verification
- bcc4ca2 Fix org dedup and CI identity in collection installs
- 6fcb501 Fix profile refresh, tracker-aware installs, wider detail
- 70912dd Fix refresh flicker, narrow header, new app icon
- c55cdc0 Fix release build on fresh checkouts
- 4ab2cfd Fix typeless drafts from sleuth metadata endpoint
- 3d39009 Force bash for app version ldflags on Windows
- 8f317b5 Gate manifest loads on sync conflicts
- 9fef62b Guard nil collection rename payload
- 5b55fe6 Guard vault icon reads
- 55f77d3 Handle all install kinds in reach check
- b136313 Hide drafts from Skills list, fix LOW findings
- 7de5f7b Match Kind dropdown height to inputs in draft sheet
- 3496a10 Multi-select skills with bulk actions
- 1c58ecf Name macOS artifacts by notarization outcome
- 582b218 Neutral near-black dark theme
- 1ea0eee Personal-scope installs, calmer toolbar
- 7f47510 Prefer top-level summary line in sync toast
- a512d03 Provision go:embed dir in make, stop tracking it
- 78b28a7 Re-pull git vaults after a sync TTL
- c9ad290 Redesign app layout from UX research
- c8c3f7e Remove test artifacts from tracking
- 6f9f127 Rename collections and teams from the app
- f4bc2a6 Render frontmatter as a labeled panel in asset view
- 88f6614 Repo pins, full app release matrix, app README
- dfb16cd Resizable sidebar and detail panel, persisted
- ee44d6d Restore dist/.gitkeep for go:embed
- 2abe806 Restore file mode on generated runtime files
- e3dceb0 Retry org icon fetch after transient failures
- 7af0ef5 Rewrite format docs for v2 and add collections
- eb158f0 Runtime-dereferenced collection installs
- 1a523af Scope drafts to their library
- 4ce695f Serialize update checks
- e926716 Skip cloud-sync artifacts in vault scans
- 68e7c15 Store git/path library icons in the vault
- 2bab60e Style sidebar sx chip as dark gradient icon
- c005c3b Sync GraphQL schema with Pulse collections API
- faafcf0 Team repositories editor and drag-to-repo scoping
- 376f6f1 Team views, share modal, pins, collection share
- 1325c4e Toolbar polish, library switcher header, add-library flows
- dd8468b Track dist/.gitkeep so go:embed resolves in CI
- 9be71b0 Treat manifest-absent assets as unshared
- ec99168 Update packaging script header to three-state naming
- b2275d3 Use the org icon for skills.new libraries
- 7773dee Wire SleuthVault into CollectionStore