|
1 | 1 | # Changelog |
2 | 2 |
|
| 3 | +## [0.19.0] - 2026-04-11 |
| 4 | + |
| 5 | +### New Features |
| 6 | + |
| 7 | +#### Agent Management |
| 8 | + |
| 9 | +Agents are now a first-class resource type alongside skills. You can install, sync, audit, and manage agent files (`.md`) across agent-capable targets (Claude, Cursor, OpenCode, Augment) with the same workflow as skills. |
| 10 | + |
| 11 | +- **Agents source directory** — agents live in `~/.config/skillshare/agents/` (or `.skillshare/agents/` in project mode). `skillshare init` creates the directory automatically, and `agents_source` is a new config field that can be customized |
| 12 | + ```bash |
| 13 | + skillshare init # creates skills/ and agents/ |
| 14 | + skillshare init -p # same for project mode |
| 15 | + ``` |
| 16 | + |
| 17 | +- **Positional kind filter** — most commands accept an `agents` keyword to scope the operation to agents only. Without it, commands operate on skills (existing behavior is unchanged) |
| 18 | + ```bash |
| 19 | + skillshare sync agents # sync agents only |
| 20 | + skillshare sync --all # sync skills + agents + extras |
| 21 | + skillshare list agents # list installed agents |
| 22 | + skillshare check agents # detect drift on agent repos |
| 23 | + skillshare update agents # update agents |
| 24 | + skillshare audit agents # scan agents for security issues |
| 25 | + skillshare uninstall agents # uninstall by kind |
| 26 | + skillshare enable foo --kind agent |
| 27 | + skillshare disable foo --kind agent |
| 28 | + ``` |
| 29 | + |
| 30 | +- **Install agents from repos** — `install` auto-detects agents in three layouts: |
| 31 | + - `agents/` convention subdirectory |
| 32 | + - mixed-kind repos with both `SKILL.md` and `agents/` |
| 33 | + - pure-agent repos (root `.md` files, no `SKILL.md`) |
| 34 | + ```bash |
| 35 | + skillshare install github.com/team/agents # auto-detect |
| 36 | + skillshare install github.com/team/repo --kind agent # force agent mode |
| 37 | + skillshare install github.com/team/repo --agent cr # specific agents |
| 38 | + ``` |
| 39 | + Conventional files (`README.md`, `LICENSE.md`, `CHANGELOG.md`) are automatically excluded |
| 40 | + |
| 41 | +- **Tracked agent repos** — agents can be installed with `--track` for git-pull updates, including nested discovery. `check`, `update`, `doctor`, and `uninstall` all recognise tracked agent repos, and the `--group` / `-G` flag filters by repo group |
| 42 | + |
| 43 | +- **Agent sync modes** — merge (default, per-file symlink), symlink (whole directory), and copy are all supported. `skillshare sync agents` skips targets that don't declare an `agents:` path and prints a warning |
| 44 | + |
| 45 | +- **`.agentignore` support** — agents can be excluded via `.agentignore` and `.agentignore.local` using the same gitignore-style patterns as `.skillignore`. The Web UI Config page now has a dedicated `.agentignore` tab |
| 46 | + |
| 47 | +- **Agent audit** — `skillshare audit` scans agent files individually against the full audit rule set, with Skills/Agents tab switching in both the TUI and Web UI. Audit results carry a `kind` field so tooling can filter by resource type |
| 48 | + |
| 49 | +- **Agent backup and restore** — sync automatically backs up agents before applying changes, in both global and project mode. The backup TUI and trash TUI tag agents with an `[A]` badge and route restores to the correct source directory |
| 50 | + |
| 51 | +- **Project-mode agent support** — every agent command works in project mode with `-p`. Agents are reconciled alongside skills into `.skillshare/` |
| 52 | + |
| 53 | +- **JSON output for agents** — `install --json` and `update --json` now emit agent-aware payloads and apply the same audit block-threshold gate as skills. Useful for scripted agent workflows |
| 54 | + ```bash |
| 55 | + skillshare update agents --json --audit-threshold high |
| 56 | + ``` |
| 57 | + |
| 58 | +- **Kind badges** — TUI and Web UI surface `[S]` / `[A]` badges throughout (list, diff, audit, trash, backup, detail, update, targets pages) so you can tell at a glance what kind of resource you're looking at |
| 59 | + |
| 60 | +#### Unified Web UI Resources |
| 61 | + |
| 62 | +- **`/resources` route** — the old `/skills` page is now `/resources`, with Skills and Agents tabs. Tab state persists to localStorage, and the underline tab style follows the active theme (playful mode gets wobble borders) |
| 63 | + |
| 64 | +- **Targets page redesign** — equal Skills and Agents sections, with a modal picker for adding targets. Filter Studio links include a `?kind=` param so you jump directly to the right context |
| 65 | + |
| 66 | +- **Update page redesign** — a new three-phase flow (selecting → updating → done) with skills/agents tabs, group-based sorting, and status cards. EventSource streaming is properly cleaned up on page change |
| 67 | + |
| 68 | +- **Filter Studio agent support** — agent filters can be edited via `PATCH /api/targets/:name` (`agent_include`, `agent_exclude`, `agent_mode`) and via the CLI (`targets edit --add-agent-include`, `--remove-agent-include`, `--agent-mode`, and so on). The UI Filter Studio is a single-context view driven by `?kind=skill|agent` |
| 69 | + |
| 70 | +- **Audit cache** — audit results are now cached with React Query and invalidated on mutation. The audit card icon colour follows the max severity, and the count no longer mixes agent totals with finding counts |
| 71 | + |
| 72 | +- **Collect page scope switcher** — a new segmented control lets you collect skills or agents from targets |
| 73 | + |
| 74 | +#### Theme System |
| 75 | + |
| 76 | +- **`internal/theme` package** — unified light/dark terminal palette with WCAG-AA-compliant light colours and softened dark primary. Resolution order: `NO_COLOR` > `SKILLSHARE_THEME` > OSC 11 terminal probe > dark fallback. All TUIs, list output, audit output, and plain CLI output now route through the theme |
| 77 | + ```bash |
| 78 | + SKILLSHARE_THEME=light skillshare list |
| 79 | + SKILLSHARE_THEME=dark skillshare audit |
| 80 | + ``` |
| 81 | + `skillshare doctor` includes a theme check to help debug unreadable colours |
| 82 | + |
| 83 | +#### Install & TUI Polish |
| 84 | + |
| 85 | +- **Explicit `SKILL.md` URLs resolve to one skill** — pasting a direct `blob/.../SKILL.md` URL now installs only that skill, bypassing the orchestrator pack prompt. Previously, the URL would trigger the full multi-select picker even though the intent was clear |
| 86 | + ```bash |
| 87 | + skillshare install https://github.com/team/repo/blob/main/frontend/tdd/SKILL.md |
| 88 | + ``` |
| 89 | + Refs: #124 |
| 90 | + |
| 91 | +- **Radio checklist follows the cursor** — the single-select TUI (used for orchestrator selection, branch selection, and similar flows) now auto-selects the focused row. No more confusing empty-selection state — pressing Enter always confirms the item your cursor is on |
| 92 | + |
| 93 | +- **Diff TUI** — single-line items with group headers instead of the old verbose-per-item layout. Agent diffs are shown with an `[A]` badge |
| 94 | + |
| 95 | +- **List TUI** — entries are now grouped by tracked repo root and local top directory, with a new `k:kind` filter tag for quick agent/skill filtering inside the fuzzy filter |
| 96 | + |
| 97 | +#### Centralized Metadata Store |
| 98 | + |
| 99 | +- **`.metadata.json` replaces sidecar files and `registry.yaml`** — installation metadata is now stored in a single atomic file per source (`~/.config/skillshare/skills/.metadata.json`). This fixes long-standing issues with grouped skill collisions (e.g. two skills both named `dev` in different folders) where the old basename-keyed registry would mix them up |
| 100 | + - **Automatic migration** — the first load after upgrade reads any existing `registry.yaml` and per-skill `.skillshare-meta.json` sidecars, merges them into `.metadata.json`, and cleans up the old files. Idempotent — safe to run repeatedly |
| 101 | + - **Full-path keys** — lookups use the full source-relative path, so nested skills never collide |
| 102 | + - No user action required; existing installs continue to work |
| 103 | + |
| 104 | +### Bug Fixes |
| 105 | + |
| 106 | +- **Sync extras no longer flood when `agents` target overlaps** — targets that declare an extras entry called `agents` are now skipped automatically when agent sync is active, preventing duplicate file writes |
| 107 | +- **Nested agent discovery** — `check agents` now uses the recursive discovery engine, so agents in sub-folders (e.g. `demo/code-reviewer.md`) are detected correctly |
| 108 | +- **Doctor drift count excludes disabled agents** — agents disabled via `.agentignore` no longer count toward the drift total reported by `skillshare doctor` |
| 109 | +- **Audit card mixes counts** — the Web UI audit card no longer mixes agent counts with finding counts, and excludes `_cross-skill` from the card total (shown separately) |
| 110 | +- **Audit scans disabled agents too** — the audit scan walks every agent file regardless of `.agentignore` state, so hidden agents still get checked |
| 111 | +- **List TUI tab bar clipping** — the tab bar no longer gets cut off in the split-detail layout on narrow terminals |
| 112 | +- **Sync extras indent** — removed the stray space between the checkmark and the path in `sync` extras output; summary headers are now consistent across skills, agents, and extras |
| 113 | +- **UI skill detail agent mode** — the detail page hides the Files section for agents (single-file resources), remembers the selected tab via localStorage, and shows the correct folder-view labels |
| 114 | +- **Sync page layout** — the stats row and ignored-skills grouping are now easier to scan |
| 115 | +- **Button warning variant** — the shared `Button` component now supports a `warning` variant that was already referenced by several pages |
| 116 | +- **Check progress bar pop-in** — removed the loading progress bar that caused layout shift on the Skills page |
| 117 | +- **Tracked repo check status** — the propagated check status is now applied to every item within the repo, not just the root |
| 118 | +- **Target name colouring in doctor** — only the status word is coloured in `doctor` target output, not the full line |
| 119 | + |
| 120 | +### Breaking Changes |
| 121 | + |
| 122 | +- **`audit --all` flag removed** — use the positional kind filter instead: |
| 123 | + ```bash |
| 124 | + skillshare audit # skills (default, unchanged) |
| 125 | + skillshare audit agents # agents only |
| 126 | + ``` |
| 127 | + The old `--all` flag is gone because audit now runs per kind and the Web UI has dedicated tabs |
| 128 | + |
3 | 129 | ## [0.18.9] - 2026-04-07 |
4 | 130 |
|
5 | 131 | ### New Features |
|
0 commit comments