Skip to content

feat: add Top Skills analytics panel#690

Merged
mariusvniekerk merged 3 commits into
kenn-io:mainfrom
charlieviettq:codex/upstream-top-skills-panel
Jun 15, 2026
Merged

feat: add Top Skills analytics panel#690
mariusvniekerk merged 3 commits into
kenn-io:mainfrom
charlieviettq:codex/upstream-top-skills-panel

Conversation

@charlieviettq

Copy link
Copy Markdown
Contributor

Summary

  • add a full-width Top Skills panel to the Analytics page
  • fetch data from GET /api/v1/analytics/skills
  • show all-agent skill totals with visible per-agent breakdowns
  • keep project breakdown secondary and remove click/search behavior until a backend skill session filter exists

Compatibility

Tests

  • cd frontend && npm run check
  • cd frontend && npm test -- --run
  • git diff --check

Review note

This branch is stacked on #688 (feat: add skill usage analytics backend) because it uses the generated API client for GET /api/v1/analytics/skills. After #688 merges, this PR can be rebased onto upstream main for a cleaner diff.

@roborev-ci

roborev-ci Bot commented Jun 14, 2026

Copy link
Copy Markdown

roborev: Combined Review (c582900)

Verdict: One high-severity regression needs fixing before merge.

High

  • frontend/src/lib/components/command-palette/CommandPalette.svelte:136
    The focus effect now reads inputValue, so Svelte reruns it after every input update and calls inputRef.select(). After the first keystroke, the whole query is selected, so the next keystroke replaces it and normal multi-character search input is effectively broken.
    Fix: Only select on initial mount/prefill, for example with a didInitialFocus guard or by reading the initial value outside the reactive effect.

Panel: ci_default_security | Synthesis: codex, 7s | Members: codex_default (codex/default, done, 4m53s), codex_security (codex/security, done, 1m30s) | Total: 6m30s

@charlieviettq charlieviettq force-pushed the codex/upstream-top-skills-panel branch from c582900 to 3fd7883 Compare June 14, 2026 16:43
@roborev-ci

roborev-ci Bot commented Jun 14, 2026

Copy link
Copy Markdown

roborev: Combined Review (3fd7883)

High issue found: command palette input is effectively broken while typing.

High

  • frontend/src/lib/components/command-palette/CommandPalette.svelte:136
    The focus effect now depends on inputValue, so it reruns after every keystroke and re-selects the entire input. This causes the next character typed to replace the previous query text.
    Fix: Only select on initial mount/ref assignment, or read inputValue with untrack so the effect does not rerun on input changes.

Panel: ci_default_security | Synthesis: codex, 14s | Members: codex_default (codex/default, done, 6m53s), codex_security (codex/security, done, 45s) | Total: 7m52s

@mariusvniekerk

Copy link
Copy Markdown
Collaborator

thats pretty neat.

@mariusvniekerk

Copy link
Copy Markdown
Collaborator

Screenshot of the Top Skills panel using synthetic fixture data:

top-skills-panel.png

@mariusvniekerk mariusvniekerk requested a review from wesm June 15, 2026 00:38
@mariusvniekerk mariusvniekerk merged commit 010f62d into kenn-io:main Jun 15, 2026
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants