Skip to content

feat(skills): add client logos, theme-aware rendering, auto-update sk…#22

Open
ankurDelta4 wants to merge 1 commit intomcp360:mainfrom
ankurDelta4:fix/skills-page-improvement
Open

feat(skills): add client logos, theme-aware rendering, auto-update sk…#22
ankurDelta4 wants to merge 1 commit intomcp360:mainfrom
ankurDelta4:fix/skills-page-improvement

Conversation

@ankurDelta4
Copy link
Copy Markdown
Contributor

What does this PR do?

Adds a ClientLogo component that renders SVG logos for all supported MCP clients with theme-aware coloring (white on dark themes, black on light theme). Logos are integrated across Skills, Marketplace, Clients, and Config UI.

Also fixes several bugs introduced after upstream merges and a race condition in the auto-update feature.

Client Logos

  • New ClientLogo component with Boxicons SVGs for: Claude Desktop, Claude Code, Cursor, Windsurf, Codex, Gemini, GitHub Copilot, Antigravity, MCPorter (OpenClaw), OpenCode, ChatGPT
  • brightness-0 invert filter on dark themes (Tarsier, Midnight) → white logos
  • brightness-0 on light theme (Daylight) → black logos
  • MCPorter uses dedicated white/black SVG variants to preserve teal eye highlights
  • Logos shown in: Skills filter tabs, SkillCard badge, CopySkillDialog, InstallSkillDialog, ConfigClientItem sidebar, ClientCard, Marketplace Skills tab

Fix: Bundle skill install failing for npx clients

npx skills add owner/repo treats the repo name as a single skill, not a bundle. For bundle sources (1 slash), all clients now route through file-copy so all skills in the collection are installed correctly.

Fix: Weekly auto-update skills feature

  • Added skills_update_all Tauri command that runs npx skills update --agent <id> --yes in a non-blocking spawn_blocking thread
  • Frontend SkillsAutoUpdater fires on app launch if >7 days since last run
  • Fixed race condition: useRef guard prevents duplicate invocations when clients store updates multiple times during initial detection cycle
  • Toggle in Settings → Updates section with last-updated display

Fix: Dashboard crash (auditEnabled not defined)

Wired auditEnabled to useSettingsStore().auditLogsEnabled after upstream merge introduced references to an undeclared variable.

Fix: TypeScript build error

Removed unused configuredClients variable (TS6133).

Type of change

  • Bug fix
  • New feature
  • UI / design improvement
  • New MCP client support
  • New marketplace server
  • Documentation / refactor

Checklist

  • Tested manually on macOS
  • No hardcoded hex colors (uses Tailwind design tokens)
  • No unwrap() in Rust code
  • New Tauri commands registered in both commands/mod.rs and lib.rs
  • Components stay under 150 lines
  • No compiled binaries committed (src-tauri/binaries/ is gitignored)

…ills, and bundle install fix

- Add ClientLogo component with SVG logos for all supported MCP clients
- Apply theme-aware CSS filter: white logos on dark themes, black on light
- MCPorter uses dedicated white/black SVG variants per theme
- Add logos to Skills filter tabs, SkillCard, CopySkillDialog, InstallSkillDialog, ConfigClientItem, ClientCard, and Marketplace
- Fix bundle install (owner/repo) routing all clients through file-copy instead of npx
- Add skills_update_all Tauri command running npx skills update weekly
- Fix auto-update race condition with useRef guard preventing duplicate invocations
- Fix Dashboard auditEnabled crash after upstream merge
- Remove unused configuredClients variable causing TS6133 build error
- Update ChatGPT/OpenAI, Claude Code, Antigravity, MCPorter, Codex SVGs to Boxicons versions
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant