Skip to content

ccboard v0.25.0

Latest

Choose a tag to compare

@github-actions github-actions released this 07 Aug 09:03
· 4 commits to main since this release

[0.25.0] - 2026-08-06

Added

  • Skill usage analytics (#56): real Skill invocations, extracted from session transcripts and never confused with textual mentions of a skill's name, are now tracked end to end. ccboard skills [--json] [--since] [--project] [--include-subagents] [<skill>] prints an exact leaderboard (invocation count, project count, total tokens, estimated cost, first/last seen) straight from SQLite, no rescan needed. Token and cost attribution reuses the exact proportional split already used for tool-call accounting in the session parser, applied to the real namespaced skill name (superpowers:brainstorming, never split on :), never the generic "Skill" literal.
  • Skills leaderboard, TUI and Web (#56): a new dedicated tab (TUI) and page (Web), at parity, surfacing the same leaderboard. Skills with invocation history but no matching on-disk definition (including plugin-installed, namespaced skills) get a [retired] badge, resolved against the local skills directory plus the full plugin marketplace/cache catalogue on both surfaces.
  • Live invocation counters: the file watcher now updates skill/agent/command invocation counts incrementally as sessions change, instead of only at startup. Fixes a pre-existing gap where the TUI's needs_refresh signal was set but never consumed, so the Agents tab's usage badges never actually updated live.

Fixed

  • classify_plugin() namespace false positives: exact matches across all categories (skill, command) are now checked before any substring fallback, closing a case where a short local name could shadow an unrelated namespaced plugin invocation.
  • Two pre-existing clippy::useless_borrows_in_formatting lint violations, unrelated to this feature but caught by a newer stable toolchain, in masked_api_key() (duplicated across ccboard-core and ccboard-types) and the Brain page.