This release includes 1 breaking change for platform teams planning a safe upgrade.
✓ No known CVEs patched in this version
Affected surfaces
Summary
AI summaryVaults upgrade to format v2 on first write, breaking compatibility with older sx clients.
Full changelog
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
- 0c4d23b9254100328914ca33812a7f92e331c628 Add app collections and AI-tool installs
- dfa85ff3fa118853f159e08883340458739d3e18 Add app release CI, update check, verification log
- 820bbcf10391019f09bb7060fc1fb5f3b6ebc91c Add app write path: drafts, publish, restore
- 163224fe28f1e01f7a4d10cb31c512034403cec3 Add cloud-sync folder detection helper
- fc4f4368cfe2a86baefc290276cf1aae9007203d Add desktop app skeleton with library and onboarding
- d6b36ade1cac5642169413b88934a425b86ecf45 Add layout-aware vault storage for format v2
- 0026ae0fd8f68486cba2202a3305cc54236c659b Add library icons and multi-vault sync controls
- e20adfe2bbcd6d18827309fa00108ead9cc0489d Add library removal, repo creation, native menus
- b85ef4f112fde3bc8319fb03f228ace88c334f16 Add library-level Sync button
- 65c81da76e9050cfe981143a3f70ac47c51a07eb Add migration e2e tests and rebase-abort recovery
- 9f358dd8828f6c1672ecdaa83891c714c641be78 Add per-library repository tracking
- 976d099e84e3d58eb9d897e14ac67d07122ab459 Add shared-folder and skills.new paths to app onboarding
- eac3d2e9d50ac84cd12a4754bcf62ba7d442fa2e Add shared-folder choice to Add Library settings
- 46c58f065850975fada4e2bac989e344c8cccbcd Add shared-folder option to sx init
- eb0ed790a0caaed25c434c41190947b397d8b0ec Add teams and sharing, simplify LHN, custom app icon
- 1c65abef6fd98f718366d5c9fb823d1cb51a450a Add v1 to v2 vault migration on first write
- 4d1784ccc8ec2b14002fc82e0e8b60272b7fde78 Age-gate staging sweep, normalize before audit
- f76bded49f34c3baa5f81869e8049bc66bc50318 Align new-asset modal controls, drop Blank prefix
- ccc24ab56a1e82e3deb63cddf2be0cdf2dacb794 Align team-view rows when collections are listed
- eb115a027a3712ae3fce2a849d2723f2cb3402d8 Align type column, Skills rename, identity footer
- f3eea9ca096a547ca3ad925b18f5d7d9716b9595 App feedback round: editor, zips, create button, settings
- 2d2027d4a065dcf4ba1f19cd8b24a05d3448dc88 Audit collection scopes cleared by team delete
- 847875055f0f600e733273981b7da3095ca04db5 Auto-install wails for app targets
- f388db8065e797ba4260a52b7cd4552e668dd9b3 Batch bulk collection adds into one save
- a5106ae337b45f86db69d30a17b935ed8114e5b3 Build DMG for macOS releases
- d853134a66b058520690b9a919049a8042754adc Bulk share/drop polish
- e0cac3772de395a0093cd2b3fc8c2493adf9c977 Clean up library switcher header
- 43cb5206ab28ab108f9d79fa2af0cb2a5ec933a8 Confirm bulk operations before applying
- d4160dc510b5d0b375fdc19eb9d9d01665cb53a6 Copy collections in vault copy
- c8701e873e7b846791f9ef64ccc3f191b57a66f9 Curated release notes for tagged releases
- 68cdb55a9a2790b54e059d2249e1a80c97d43ad6 Dedupe sleuth repo assets per repository
- eec3a8d8f087d1c811725b94c681c69f856de249 Delete buttons with confirmations
- cd45444d88453c6bea3de66d4be22d9cbc69c93b Detect git availability, allow sign-in cancel
- bf680df9e0888d73af65f4d395cc82d8614da91c Disable sync toggle on the current library
- 86e645b581cd18d5ccfe278ce9998bf8ee364b84 Document synced-folder vault sharing
- eff3f6e04625287030019f8a198b7d49d7e282a8 Download button on skill detail
- 7b8dee7ed22e63449d803339803e4f322c9cafa4 Drag assets/collections onto teams, add repo picker
- 52c792a8c68502a6b14192f272d175addf0d7793 Drag repositories onto teams
- 3d8e8aa172af3d37c90b52a18d6efd842ce3d570 Expose vaults as plugin marketplaces
- 0d499b4a298a8597ad59d0f0090362ad9ef0422e Extend app menu, address review findings
- 5bc1eadf19ccb9128cb105f834dfd981a83a296e Fix branch review findings
- c69625de4571b0ee4d6521df454739d6c15e550f Fix drag-to-collection, list collections in team view
- 077e8727fdce5a24160e155083c20859e578eba4 Fix false update banner, auto-update the app
- 3e1229deff1f3395cd800350fc307a4370d21dfc Fix install detection, unify new-asset dialog, persist window
- 9815120c13bf769fcda4cee837a84b13f2fa73df Fix migration edge cases found in Docker verification
- bcc4ca20349ab0469505c03daaec3ea19624cc62 Fix org dedup and CI identity in collection installs
- 6fcb501fdd1da71142ac8405a8381e8f740894ad Fix profile refresh, tracker-aware installs, wider detail
- 70912dd11b8bd2654308d5ac7b3504715f12ad2f Fix refresh flicker, narrow header, new app icon
- c55cdc04d65d2ed79bf4cce434a32dda9322f80b Fix release build on fresh checkouts
- 4ab2cfd0a7bd7c4091d061dc0724bd0c694e88fc Fix typeless drafts from sleuth metadata endpoint
- 3d3900940975cc66e1aad3992a02e3c3e14d46fd Force bash for app version ldflags on Windows
- 8f317b51fc055bee52d10635ead50174b946fdc7 Gate manifest loads on sync conflicts
- 9fef62bb78bbf9778bb95f25cb723b8e7e633a81 Guard nil collection rename payload
- 5b55fe6311b15b5ebb68c49cb3925312ebc592d2 Guard vault icon reads
- 55f77d3c5231895bb30c2e2bab1066b16d411589 Handle all install kinds in reach check
- b136313941cdd647c640dcb82c5789a4a51665e4 Hide drafts from Skills list, fix LOW findings
- 7de5f7b7847fccd470c4d84fdd10d0376739c7c3 Match Kind dropdown height to inputs in draft sheet
- 3496a101613e96add16331315da925fb1612fd90 Multi-select skills with bulk actions
- 1c58ecfc54d8cb7b5cb79daa4db28361c53fcdf9 Name macOS artifacts by notarization outcome
- 582b2186ab5a78094787f9bfeda7277784f75ff7 Neutral near-black dark theme
- 1ea0eeea85afc20b17ecbfc3137991e468c06372 Personal-scope installs, calmer toolbar
- 7f47510a4cbb4c58b8b52c010a4c16794b6f0abf Prefer top-level summary line in sync toast
- a512d03d5f99fca2f3609365a76e2d0b719710f4 Provision go:embed dir in make, stop tracking it
- 78b28a71055cb3a06e27521ad25bb4ec2878b106 Re-pull git vaults after a sync TTL
- c9ad290c7970fdf5e7edf52f8f3d6fb728475042 Redesign app layout from UX research
- c8c3f7ec09bf4961779d04ecf66f7dad6847e569 Remove test artifacts from tracking
- 6f9f1272e82fdbd97530eab277a811a763d8c5bc Rename collections and teams from the app
- f4bc2a69a1503163da07f94cd4c57168ee651eb8 Render frontmatter as a labeled panel in asset view
- 88f66142ec73d1374f659aac2294933b2671b6e4 Repo pins, full app release matrix, app README
- dfb16cd73e299320fa1e4fb428a89fd0bc0b664a Resizable sidebar and detail panel, persisted
- ee44d6dedfa06f1ae687719e4a6aa0811c6a9844 Restore dist/.gitkeep for go:embed
- 2abe806c6f7eedb7a727df1eaa0b32bbb788a887 Restore file mode on generated runtime files
- e3dceb0d6255cd96b61f5bbfdaf17ffe02c765da Retry org icon fetch after transient failures
- 7af0ef5557f5c4f3bb088c0217f40581f652c9a2 Rewrite format docs for v2 and add collections
- eb158f094f70a486aeaf27aa783656a7866ccd3d Runtime-dereferenced collection installs
- 1a523afe3866364db5d4b9d6586e21b733de8ab5 Scope drafts to their library
- 4ce695fb7bf33ecf1df17f036c9ea5639715871e Serialize update checks
- e9267169d196689c803fb7ad06cd7c9afe391845 Skip cloud-sync artifacts in vault scans
- 68e7c15b9054a87b7241b9ebdcd2a6c7385ad63a Store git/path library icons in the vault
- 2bab60e29d2e2b68fcc4e80cf6351bd36243a5fc Style sidebar sx chip as dark gradient icon
- c005c3bc978fcb4ee6c6b743cda83b2de9d2aa92 Sync GraphQL schema with Pulse collections API
- faafcf0a8d4d60d43c9d184a5415b5ed1bd9e168 Team repositories editor and drag-to-repo scoping
- 376f6f16fb3b21f1662d666ed072f1869cc31dbe Team views, share modal, pins, collection share
- 1325c4e5922e4bcbad8828298caf33b631918753 Toolbar polish, library switcher header, add-library flows
- dd8468bbf6aefef510f65134ca62b6dfae1c6f3e Track dist/.gitkeep so go:embed resolves in CI
- 9be71b0e37ab7f0a6a1b051ef2c45eeb02b38147 Treat manifest-absent assets as unshared
- ec99168612582270a5819b7554d17dc25d1ca691 Update packaging script header to three-state naming
- b2275d396167b14e93d92e25f297d30c50fec01b Use the org icon for skills.new libraries
- 7773deebb077d2d2416f8e29351a72957e8ecae7 Wire SleuthVault into CollectionStore
Breaking Changes
- Vault schema upgrades to version 2 on the first write from a 2.0 client (or via `sx vault migrate`), after which older sx clients cannot read or write the vault until they update.
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About Sx
All releases →Related context
Related tools
Beta — feedback welcome: [email protected]