Skip to content

sx v2.0.0

Choose a tag to compare

@github-actions github-actions released this 07 Jul 00:32
1cfb99c

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 sees unsupported 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 migrate once, 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 copy migrates 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