π οΈ skillshare v0.16.3 Release Notes
Release date: 2026-02-27
TL;DR
v0.16.3 is a polish and reliability release focused on hub install UX, sync correctness, and Web UI fixes:
diffoutput redesign β action-oriented labels with grouped summary- Hub install UX β real-time git progress, colored risk badges, classified failure output, repo-grouped cloning
- Install progress β tree-style steps with summary line and git clone progress
- Batch install performance β O(nΒ²) reconciliation eliminated, same-repo skills share a single clone
- Sync race conditions fixed β two separate race conditions in target deduplication and group key generation
- Copy mode symlink fix β directory symlinks now dereferenced instead of producing broken files
uninstall --allUX β stale summary fix, skip count message, natural pluralization- Empty TUI guard β
listandlogskip TUI when no data - Web UI fixes β stats bar, correct timestamp ordering, audit log integration
- Oplog data safety β write errors checked before truncating original file
- New target: Verdent β added Verdent AI coding agent
What's New
1) diff output redesign
The diff command output now uses action-oriented labels (add, remove, update, restore) instead of generic descriptions. Items are grouped by action with counts, and an overall summary line appears at the end:
add 3 skills (new in source)
remove 1 skill (not in source)
update 2 skills (content changed)
Summary: 6 changes across 4 targets
2) Hub install UX improvements
Three improvements to multi-skill installs from search --hub:
- Real-time git progress β each skill shows live clone progress (
cloning 45%,resolving 67%) instead of a static "installing..." label; only the actively-installing skill is shown to keep the display compact - Colored risk badges β risk labels in the search TUI list and detail panel are now color-coded by severity (green/yellow/red) using the same palette as audit results
- Classified failure output β batch install failures are categorized by type (security block / ambiguous path / not found) with distinct icons; long lists are truncated to 3 lines with "(+N more)" to prevent screen flooding
3) Batch install performance
Two performance improvements for large batch installs:
- Deferred reconciliation β config reconciliation (directory walk + symlink check) now runs once after all installs complete instead of after each skill, eliminating O(nΒ²) behavior that caused batch installs of 10+ skills to appear stuck
- Repo-grouped cloning β skills from the same git repository are now cloned once and installed from the shared clone, reducing network requests proportionally to the number of unique repos
4) Web UI log stats bar
The Log page in the web dashboard now displays a stats bar with:
- Overall success rate
- Per-command breakdown (install, sync, update, etc.)
Stats on the "All" tab now correctly include both operations and audit logs.
5) Sync fixes
Three sync-related bugs fixed:
- Race condition (shared path) β targets sharing the same filesystem path (e.g., two aliases pointing to the same directory) no longer produce duplicate or missing symlinks
- Race condition (group key) β group keys are now canonicalized to prevent non-deterministic sync results across runs
- Copy mode symlinks β
syncin copy mode now dereferences directory symlinks to concrete directories instead of copying broken link files; this fixes missing content in targets like Windsurf that use file copying instead of symlinks
6) Install progress output
Config installs (skillshare install) and search installs now show tree-style step output with a summary line:
β react-skill skill
β vue-patterns skill
β already-exists skipped
3 installed, 1 skipped (2.3s)
Git clone spinners show real-time progress (cloning 45%, resolving 67%).
7) uninstall --all UX fixes
Three fixes to batch uninstall when dirty tracked repos are skipped:
- Stale summary β spinner and confirm prompt previously used the pre-filter noun type (e.g., showing "tracked repos" when all repos were skipped); now recalculated after pre-flight filtering
- Skip count message β prints
"1 tracked repo skipped, 2 remaining"after pre-flight, so users know what happened - Natural pluralization β
"2 group(s)"β"2 groups","1 skill(s)"β"1 skill"throughout uninstall output
8) Empty TUI guard
skillshare list and skillshare log no longer open a blank interactive screen when there are no skills or log entries. Instead, they exit the TUI immediately and print a plain-text hint (e.g., "No skills installed").
9) Other fixes
log --stats --cmd auditβ now correctly reads fromaudit.loginstead ofoperations.loglog max_entries: 0β setting max_entries to 0 now correctly means unlimited instead of deleting all entries- Oplog data loss prevention β
rewriteEntriesnow checks for write errors before truncating the original file - Web UI timestamps β last operation timestamps are compared as dates instead of strings, fixing incorrect "most recent" ordering
- TUI content clipping β detail panels in
listandlogTUIs now hard-wrap content and account for padding - TUI footer spacing β list and log TUI footers have proper breathing room between action hints
10) New target: Verdent
Added Verdent AI coding agent as a built-in target (verdent). Paths: ~/.verdent/skills (global), .verdent/skills (project).
11) Install quiet mode
Tracked config dry-run messages are now suppressed when using --quiet / -q mode.
Migration
No breaking changes. Drop-in upgrade from v0.16.2.
Changelog
- defff26 feat(audit): add interactive TUI, progress bar, and large-scan UX improvements
- a88bb10 feat(auth): add AZURE_DEVOPS_TOKEN for Azure DevOps HTTPS authentication
- cd3361f feat(build): add Windows ARM64 cross-compile script
- 956d836 feat(diff): add multi-target progress display with spinner
- ab80048 feat(diff): add progress bar for copy mode targets
- f71d78e feat(diff): combine target list with overall progress bar
- 93858c1 feat(diff): group output by (action, reason) for compact summary
- 0e2e18d feat(diff): group targets with identical diff results
- 341132e feat(diff): replace per-target progress bar with overall progress
- ace94c8 feat(diff): rewrite output with action-oriented labels and overall summary
- 5e283e2 feat(install): add Azure DevOps URL parsing support
- c7f8a86 feat(install): group config skills by repo to avoid redundant clones
- 87abb6e feat(install): replace spinner with tree-style progress and summary output
- da0b24a feat(list): add tree sidebar content viewer with glamour markdown rendering
- daa1ed1 feat(log): add delete functionality to log TUI
- 5f1521c feat(log): comprehensive log improvements β partial status, instrumentation, retention, stats
- ebda635 feat(search): add batch progress display for multi-skill hub install
- 76482a5 feat(search): colorize risk badges in hub TUI with lipgloss
- 00cb3ba feat(targets): add Verdent AI coding agent
- fbab56f feat(ui): add log stats bar with success rate and command breakdown
- 02b663e feat(update): add --prune for stale skills, stale detection in check, refactor update handlers
- caa525b feat(website): complete website revamp β DiΓ‘taxis IA, blog, recipes, quickstarts
- 217af07 fix(install): respect quiet mode for tracked config dry-run
- dc62efd fix(list,log): skip TUI when async load returns empty results
- 5186d86 fix(log): --stats --cmd audit now reads audit.log instead of operations.log
- 40152f9 fix(log): improve TUI detail panel readability and filter flags from oplog names
- 39439d2 fix(oplog): check write errors in rewriteEntries to prevent data loss
- 48b6702 fix(search): improve batch install failure output readability
- 0a28fcd fix(search): preserve canonical repo source in grouped installs
- dec449a fix(search): show git progress detail and reconcile once after batch install
- 5a111ce fix(search): use provider-agnostic source for repo-grouped cloning
- f29b4ac fix(sync): dereference directory symlinks in copy mode and update changelog
- 0afab5c fix(sync): resolve race condition for targets sharing the same path
- c0b3f87 fix(sync,log): canonicalize group key to prevent race; honor max_entries: 0
- 6894549 fix(test): sync unit test assertions with current output formats
- fe9f40b fix(tui): account for PaddingLeft in content panel width calculation
- 3a522c7 fix(tui): add breathing room in list and log TUI footers
- 61f413d fix(tui): hard-wrap content to prevent scroll clipping
- e4956c3 fix(tui): unify layout and visual consistency across TUI panels
- 96f6572 fix(ui): compare last_operation timestamps as dates, not strings
- 32a5794 fix(ui): compute stats from both ops and audit logs on all tab
- cfbcaaf fix(uninstall): fix stale summary, skip message, and pluralization UX
- 3710969 fix(upgrade): contain brew output in tree spinners, fix GitHub release tree structure
- 6f3a0a8 perf(diff): parallelize target scanning with bounded semaphore
- 2f6dd42 perf(sync): cache discovery + add progress UI for sync operations
- 179d02b perf(sync): mtime fast-path for copy mode + diff UX improvements
- ebdacd5 perf(sync): parallelize project-mode target syncing
- 223bb0b refactor(diff): use ui.ProgressBar for scanning progress
- 4f656ae refactor(list): replace focus-based dual-pane with fixed keyboard roles
- 2a01586 refactor(tui): unify color palette via shared tc struct and configureDelegate
- 044a022 refactor(ui): replace pterm progress bar with thread-safe implementation
- 9ef6357 revert(ui): switch progress bar back to pterm ProgressbarPrinter
- 0fa1ef3 style(diff): add blank line between target list and progress bar
- 2b7ff5f style: fix whitespace alignment in list_tui, log_tui, manifest