Commit graph

45 commits

Author SHA1 Message Date
777genius
1de59cb84f fix(extensions): validate skill import source paths locally 2026-04-16 23:18:02 +03:00
777genius
2cc7dc5178 fix(extensions): validate skill folder names before review 2026-04-16 23:15:09 +03:00
777genius
1d2e33f5d9 fix(extensions): preserve skill detail refresh context 2026-04-16 23:13:22 +03:00
777genius
2201b54f28 fix(extensions): reset stale skill review state on close 2026-04-16 23:11:13 +03:00
777genius
2142518461 fix(extensions): avoid premature skill import folder defaults 2026-04-16 23:09:15 +03:00
777genius
86bc4ce4e8 fix(extensions): sanitize suggested skill folder names 2026-04-16 23:08:00 +03:00
777genius
4578f11dd7 fix(extensions): unlock structured skill editing after reset 2026-04-16 23:06:05 +03:00
777genius
3e5ec7c173 fix(extensions): preserve skill project context in dialogs 2026-04-16 23:03:55 +03:00
777genius
c02a12b3f6 fix(extensions): keep skill import destination in sync 2026-04-16 23:01:33 +03:00
777genius
66cf1443b2 fix(extensions): scope mcp operation state by install scope 2026-04-16 22:57:22 +03:00
777genius
94291f50f0 fix(extensions): require project context for local mcp scope 2026-04-16 22:51:05 +03:00
777genius
a3c5b7dca9 fix(extensions): honor local mcp scope precedence 2026-04-16 22:48:43 +03:00
777genius
7418643dc9 fix(extensions): make mcp scope actions scope-aware 2026-04-16 22:45:34 +03:00
777genius
0420428281 fix(extensions): support project-scoped mcp installs 2026-04-16 22:39:03 +03:00
777genius
3f03bc720a fix(extensions): dedupe MCP detail API key lookups 2026-04-16 22:32:47 +03:00
777genius
0d6276ea0b fix(extensions): honor installed MCP targets in manage actions 2026-04-16 22:31:56 +03:00
777genius
acabe52ae7 fix(extensions): stop MCP browse auto-retries after errors 2026-04-16 22:28:08 +03:00
777genius
0d19e5174f fix(extensions): use tab project context for plugin actions 2026-04-16 22:22:05 +03:00
777genius
57f546bab0 fix(extensions): scope plugin operation state by install scope 2026-04-16 22:16:38 +03:00
777genius
4502152427 fix(extensions): support local plugin scope actions 2026-04-16 22:09:52 +03:00
777genius
afad52f506 fix(extensions): prevent stale plugin catalog races 2026-04-16 22:01:59 +03:00
777genius
6e875e5a40 fix(extensions): harden plugin action states 2026-04-16 21:59:23 +03:00
777genius
847643828d fix(extensions): make plugin actions scope-aware 2026-04-16 21:56:12 +03:00
Diego Serrano
7d98956dad
fix(extensions): resolve project path from both projects and repositoryGroups 2026-04-14 14:37:04 +03:00
777genius
9ca8055695 chore(workspace): checkpoint remaining claude team changes 2026-04-12 22:15:57 +03:00
777genius
01e9e8350e feat(frontend): improve runtime connection and team setup ux 2026-04-11 19:55:25 +03:00
Artem Rootman
a92390dcc6
style: fix import order in ExtensionStoreView
Move useShallow and lucide-react imports above @renderer/* imports
to follow the project import order convention.
2026-04-05 17:36:03 +00:00
Artem Rootman
f07eb914ae
merge: resolve conflicts with main (ExtensionStoreView, InstallButton)
Merged new fields from main (fetchCliStatus, cliStatusLoading,
openDashboard, authMissing, disableReason) into our useShallow
selectors.
2026-04-05 17:19:41 +00:00
Artem Rootman
da58917032
perf: offload heavy I/O to worker thread, reduce renderer re-renders
Main process — worker thread for team data:
- New team-data-worker thread handles getTeamData and findLogsForTask,
  isolating heavy file I/O (scanning 300+ subagent JSONL files) from
  Electron's main event loop. getTeamData dropped from ~2000ms on the
  main thread to ~110ms via the worker.
- Worker-side dedup and 10s result cache for findLogsForTask prevents
  redundant scans when the same task is queried multiple times.
- Discovery cache TTL raised from 5s to 30s — avoids re-scanning the
  entire project directory on every call.
- Message cap at 200 in TeamDataService to keep IPC payloads under 1MB
  (was sending 2200+ messages / ~3MB, stalling Chromium IPC serialization).
- IPC handlers fall back to main-thread execution if the worker is
  unavailable (graceful degradation).

Renderer — useShallow and memoization (55 files):
- Added useShallow to store selectors across 55 renderer files. Batched
  individual useStore() calls (e.g. 17 calls in ExtensionStoreView,
  10 in ConnectionSection) into single useShallow selectors, cutting
  unnecessary re-render checks on every store update.
- MemberLogsTab: three 5-second polling intervals now pause when the
  parent tab is hidden (display:none). Previously 5 hidden tabs × 3
  intervals = 15 polling timers firing continuously.
- KanbanColumn wrapped in React.memo to skip re-renders when props
  haven't changed.
- MemberList: memoized activeMembers/removedMembers/colorMap; replaced
  O(n×m) per-member task scan with a pre-computed reviewer map.
- Bounded timer Maps in store initialization to prevent unbounded growth
  of debounce/throttle tracking maps during long sessions.
2026-04-05 16:21:05 +00:00
iliya
21513bb6f8 Improve Extensions CLI preflight and plugin install diagnostics
Refs: https://github.com/777genius/claude_agent_teams_ui/issues/37
2026-04-01 16:49:07 +03:00
iliya
756643ebcd feat(chat): add syntax highlighting to command input in EditToolViewer and SkillReviewDialog
- Implemented syntax highlighting for command inputs in the EditToolViewer component, enhancing readability.
- Updated the renderInput function in renderHelpers to utilize the highlightLines utility for improved command display.
- Added syntaxHighlight prop to SkillReviewDialog for consistent styling across components.
2026-03-23 20:26:48 +02:00
iliya
60cf80f90a fix: resolve CLI binary dynamically for MCP diagnostics and extension installs
Use ClaudeBinaryResolver instead of null binary path in extension services
(McpHealthDiagnosticsService, PluginInstallService, McpInstallService).
Packaged Electron on macOS has minimal PATH — bare `claude` lookup fails
with ENOENT. Now all CLI calls resolve the binary via ClaudeBinaryResolver
which checks PATH, NVM, standard install dirs and login shell env.

- Add buildEnrichedEnv() helper for child process env (PATH, HOME, USERPROFILE)
- Add stale cache re-verification with 30s TTL in ClaudeBinaryResolver
- Guard execCli() against null binaryPath with explicit error
- Replace projectPath.startsWith('/') with path.isAbsolute() for Windows
- Extract CLI_NOT_FOUND_MARKER/MESSAGE constants for consistent error detection
- Show amber info banner instead of red error when CLI not installed
2026-03-22 13:10:11 +02:00
iliya
51f8f3545c style: auto-fix import/export sorting and formatting
Ran pnpm lint:fix to resolve 220 auto-fixable lint issues.
All changes are import/export reordering — no logic changes.
2026-03-16 20:48:42 +02:00
iliya
88722598ac feat: enhance UI styling and functionality for extension components
- Added zebra striping to extension lists for improved readability across various screen sizes.
- Updated the ExtensionStoreView to include margin adjustments for better layout.
- Enhanced InstallButton component to manage pending actions more effectively, improving user feedback during installation processes.
- Refactored McpServersPanel and SkillsPanel to apply new grid classes for consistent styling.
- Adjusted CapabilityChips and CategoryChips for better spacing and visual consistency.
- Improved the TeamProvisioningBanner to handle state changes more efficiently.
- Updated KanbanTaskCard to replace icons for better clarity in task actions.
- Enhanced teamSlice to manage provisioning runs and spawn statuses more effectively, ensuring better state handling.
2026-03-12 15:08:26 +02:00
iliya
d53999ba45 feat: add Radix UI Alert Dialog component and enhance SkillImportService
- Integrated the @radix-ui/react-alert-dialog package for improved alert dialog functionality.
- Updated SkillImportService to include a new inspectSourceDir method for enhanced file inspection and warning generation during skill imports.
- Refactored existing methods to streamline file reading and directory walking processes, improving overall performance and error handling.
- Added new SkillPlanService to manage skill upsert plans, enhancing the skills mutation workflow.
- Updated UI components to support new features and improve user experience in the skills management interface.
2026-03-12 11:53:40 +02:00
iliya
e440042c2b refactor: streamline ExtensionStoreView layout and enhance UnreadCommentsBadge styling
- Adjusted layout in ExtensionStoreView for improved structure and readability.
- Updated UnreadCommentsBadge component to refine styling and enhance visual clarity.
- Consolidated tooltip and button elements for better user interaction.
2026-03-11 22:17:39 +02:00
iliya
4b4dccd13d feat: add skills management features and integrate skills API
- Introduced skills catalog management with functionalities to list, get details, preview, and apply skill changes.
- Implemented IPC handlers for skills-related actions, enhancing communication between renderer and main processes.
- Updated the UI to include a dedicated Skills panel within the extension store, improving user access to skills management.
- Added new constants and types for skills API integration, ensuring a structured approach to skills handling.
- Enhanced state management to support skills loading, error handling, and detail fetching.
2026-03-11 21:46:56 +02:00
iliya
1ccc1432fc feat: enhance task change handling and improve plugin catalog integration
- Added a 'source' field to PluginCatalogItem to distinguish between official and third-party plugins.
- Refactored ChangeExtractorService to improve caching mechanisms and normalize file paths for better consistency.
- Updated TaskBoundaryParser to support task IDs with underscores, enhancing task identification.
- Enhanced TeamMcpConfigBuilder to merge user-defined MCP configurations with generated ones, improving configuration management.
- Improved UI components to display source information for plugins and MCP servers, enhancing user experience and clarity.
2026-03-11 18:16:40 +02:00
iliya
8216d25eac feat: integrate MCP health diagnostics functionality
- Added McpHealthDiagnosticsService to manage health checks for MCP servers.
- Implemented IPC channels for diagnosing MCP server health, including new MCP_REGISTRY_DIAGNOSE channel.
- Enhanced UI components to display diagnostic status and results for installed MCP servers.
- Updated state management to track MCP diagnostics loading state and errors.
- Improved overall user experience with real-time feedback on MCP server connectivity and health status.
2026-03-11 00:55:13 +02:00
iliya
5da9e2372d feat: enhance cross-team messaging and message storage
- Introduced new parameters for cross-team messaging, including CROSS_TEAM_SENT_SOURCE for better tracking of sent messages.
- Updated sendCrossTeamMessage function to append sent messages to the message store, ensuring a complete history of communications.
- Enhanced tests to validate the new message storage functionality and ensure accurate retrieval of sent messages.
- Improved handling of message timestamps and deduplication logic for cross-team communications.
2026-03-11 00:33:17 +02:00
iliya
a4210936f9 feat: enhance API key management and GitHub stars integration
- Introduced ApiKeyService for managing API keys, including listing, saving, deleting, and looking up values.
- Added IPC channels for API key operations and integrated them into the Electron API.
- Implemented GitHub stars fetching for MCP servers, enhancing visibility of repository popularity.
- Updated UI components to display GitHub stars and API key management features, including a dedicated API Keys tab.
- Enhanced McpInstallService to support custom MCP server installations with improved validation and error handling.
- Refactored various components to accommodate new features and improve user experience.
2026-03-10 20:05:04 +02:00
iliya
0feb5e650f feat: enhance cross-team messaging and activity components
- Introduced logic to prevent relaying cross-team replies back into the originating lead, ensuring cleaner message handling.
- Added utility functions for parsing cross-team recipients and determining targets for cross-team messages.
- Updated ActivityItem and TeamProvisioningService to utilize new parsing methods for improved recipient qualification.
- Enhanced tests to validate the handling of cross-team replies and recipient parsing.
2026-03-10 11:26:52 +02:00
iliya
df962a21d3 merge: integrate tool approval settings and add ongoing sessions warning
Merge worktree-permission-prompt-tool into dev:
- Tool approval settings for team provisioning
- ToolApprovalSettingsPanel dialog component
- toolApprovalRules utility with tests

Additional: add ongoing sessions warning banner to Extensions page
2026-03-08 22:30:44 +02:00
iliya
d3f19834ff feat: enhance extension installation and uninstallation flows
- Refactored plugin and MCP server installation/uninstallation handlers to use async/await for improved readability and error handling.
- Added cache invalidation logic upon successful installation of plugins and MCP servers to ensure up-to-date state.
- Introduced error message handling for installation failures, providing users with clearer feedback on issues encountered during the process.
- Updated UI components to display error messages related to installation and uninstallation, enhancing user experience.
- Implemented sanitization for MCP server names to ensure compliance with CLI requirements.
2026-03-08 01:44:58 +02:00
iliya
126f8e2865 feat: add Extension Store with plugin catalog and MCP registry
Full Extension Store implementation (Phases 0-6):
- Plugin marketplace catalog with ETag caching and search/filter/sort
- MCP server registry with Official + Glama aggregation
- Install/uninstall flows for both plugins and MCP servers via CLI
- Per-tab UI state, skeleton loading, dashed empty states, card polish
- Input validation and security hardening (scope allowlists, env/header
  key regex, projectPath validation, HTTP body size limits)
- 8 test suites covering catalog, install, aggregation, normalizers
2026-03-08 01:00:18 +02:00