Commit graph

641 commits

Author SHA1 Message Date
iliya
e431cfd02c fix(team): deduplicate permission_request processing across all entry paths
Root cause: handleTeammatePermissionRequest was called from 3 paths
(early inbox scan, Category 4 relay scan, stdout/native) but only
the early scan checked processedPermissionRequestIds, causing
duplicate ToolApprovalRequests and extra permission_responses.

Fix:
- Move processedPermissionRequestIds check INTO handleTeammatePermissionRequest
  so ALL callers are protected by the same dedup gate
- Remove duplicate Category 4 scan that re-processed inbox messages
  (early scan already covers all messages including read=true)
- Category 4 now only builds a filter Set to exclude permission_request
  from relay to lead
2026-03-28 20:32:42 +02:00
iliya
f286468dac fix(team): stable context % + show "% of context" + graph improvements
Context window fix:
- Derive initial contextWindow from model selection (haiku=200K, else=1M)
- Use limitContext flag from request
- Updated to exact value from modelUsage on result.success
- Formula: input_tokens + cache_creation + cache_read (all three needed)

TokenUsageDisplay:
- New contextWindowSize prop → shows "X% of context" (not "X% of input")

Graph improvements:
- Pending approval: pulsing amber ring on member nodes
- Working spinner: spinning arc when member has active task
- Current task indicator in popover (Loader2 + "working on" + task name)
- GraphNode: added currentTaskId, currentTaskSubject, pendingApproval, activeTool fields
- Adapter: passes pendingApprovalAgents + currentTaskId from store
2026-03-28 18:32:10 +02:00
iliya
11506c6ea8 fix(team): fix AskUserQuestion edge cases in ToolApprovalSheet
- Option keys now include question index prefix ("qi:label") to prevent
  cross-question collisions when multiple questions share option labels
- Single-select clears only options from the same question, not all
- answersMessage built as per-question JSON map instead of flat join
- Backend parses JSON answers and maps to correct questions
- Fallback label "Option N" for options with undefined label
2026-03-28 17:00:06 +02:00
iliya
75a36b5cd2 fix(team): deliver AskUserQuestion answers via updatedInput + fix Enter bypass
- Enter key now respects isAskQuestion selection requirement
- Selected option labels sent as message to respondToToolApproval
- control_response includes updatedInput with answers for AskUserQuestion
- useCallback/useEffect deps updated for selectedOptions and hasSelection
2026-03-28 16:54:22 +02:00
iliya
1e80f3db52 feat(team): interactive AskUserQuestion options in ToolApprovalSheet
- Options are clickable: single-select (radio) and multi-select (checkbox)
- Selected options highlighted with green border and filled indicator
- Submit button replaces Allow for AskUserQuestion - disabled until
  at least one option is selected
- Human-readable tool display names (AskUserQuestion -> Question, etc.)
- Selection resets when approval changes
2026-03-28 16:49:24 +02:00
iliya
daef2db07c fix(team): prevent hooks ordering crash in ToolInputPreview
Move useMemo/variable declarations BEFORE the AskUserQuestion early
return to ensure hooks are called in consistent order regardless of
which tool type is being displayed.
2026-03-28 16:44:26 +02:00
iliya
6b09b59d88 feat(team): render AskUserQuestion tool as readable UI in ToolApprovalSheet
Instead of showing raw JSON for AskUserQuestion, render each question
with header badge, question text, and options list showing labels and
descriptions. Supports multiSelect indicator (checkbox vs radio style).
Add MessageCircleQuestion icon for the tool.
2026-03-28 16:40:18 +02:00
iliya
70b5f1962f feat(team): add Skip button to pre-flight CLI check in launch/create dialogs
Users can now skip the CLI warmup check and launch immediately.
Sets prepareState to 'ready' so the Launch button unlocks.
2026-03-28 16:10:32 +02:00
iliya
d01bce2101 feat(team): show approval status icons on permission_request noise rows
- Add resolvedApprovals Map to store (request_id -> allowed/denied)
- Record result in respondToToolApproval and autoResolved events
- NoiseRow accepts optional icon prop
- Permission request rows show: check (approved), x (denied),
  clock (pending), or faded check (pre-existing/unknown)
2026-03-28 15:52:12 +02:00
iliya
9f2a7c950a fix(team): fix hooks ordering crash in ToolApprovalSheet
Move useMemo for sourceColor BEFORE the early return (if !current),
and restore teamSummary/teamColor/displayName variables that were
accidentally removed. Fixes 'Rendered fewer/more hooks' React crash.
2026-03-28 15:40:56 +02:00
iliya
ff8b844abe fix(team): show MemberBadge with avatar in ToolApprovalSheet header
Replace plain text teammate name with MemberBadge component showing
avatar + colored name badge, consistent with how members are displayed
in the Messages panel.
2026-03-28 15:24:07 +02:00
iliya
add9df2006 fix(graph): Profile opens member dialog (not message) + Add Task button
- Profile button dispatches 'graph:open-profile' → MemberDetailDialog
  (was incorrectly mapped to 'graph:send-message')
- Double-click on member → opens profile (was: send message)
- New "Add Task" button on member popover → CreateTaskDialog with owner pre-filled
- New events: graph:open-profile, graph:create-task
- TeamDetailView listens for both new events
2026-03-28 15:08:32 +02:00
iliya
cb17e2158f feat(graph): default to tab mode + fullscreen button in tab
- Graph button opens dedicated tab (was: overlay)
- Cmd+Shift+G opens tab (was: toggle overlay)
- Tab mode has Fullscreen button → opens overlay on top
- Tab actions (Message, Open) dispatch CustomEvents to TeamDetailView
  which opens corresponding dialogs (SendMessage, TaskDetail)
- Overlay still available via Fullscreen button or TeamGraphOverlay
2026-03-28 14:17:10 +02:00
iliya
8a9121fc3e fix(graph): toggle buttons visually distinct — active gets border + glow, inactive dimmed 2026-03-28 14:11:28 +02:00
iliya
98a1155635 feat(graph): wire popover actions to real dialogs (Message, Open task/member)
- TeamGraphOverlay accepts onSendMessage, onOpenTaskDetail, onOpenMemberProfile
- TeamDetailView passes dialog openers to overlay:
  - Message → opens SendMessageDialog with recipient pre-filled
  - Open (task) → opens TaskDetailDialog with task found by ID
  - Open (member) → opens SendMessageDialog for that member
  - Double-click → same as Open
- Removed console.log stubs
2026-03-28 12:56:43 +02:00
iliya
17e9be99dd fix(ui): change auto-approve banner from warning to info style 2026-03-28 12:23:28 +02:00
Илия
11bb49c53e
feat(graph): force-directed agent graph visualization with kanban-zone task layout
Force-directed graph visualization for agent teams.

Package: @claude-teams/agent-graph (isolated workspace package)
- Space theme: bloom, particles, hex grid, depth stars
- Members as hexagonal nodes with breathing glow
- Tasks as pill cards in kanban columns (todo/wip/done/review/approved) per owner
- Message particles along edges (real-time only)
- Deterministic layout, Figma-style pan, scroll/pinch zoom
- Clean Architecture: ports/adapters/strategies, ES #private classes

Integration: features/agent-graph/ (adapter + overlay + tab)
- Full-screen overlay (Cmd+Shift+G) + Pin as Tab
- Graph button in Team section header
- Frustum culling, zero per-frame allocations, adaptive fps
- Performance overlay via ?perf query param

Also: CI runs on all PR branches, features/CLAUDE.md architecture guide
2026-03-28 12:03:42 +02:00
iliya
dd42cf0069 fix(team): scan inbox for permission_request during provisioning
relayLeadInboxMessages only processes unread messages after
provisioningComplete, but CLI marks permission_request messages as
read after native delivery -- before our relay runs.

Move permission_request inbox scan BEFORE provisioningComplete check.
Scan ALL messages (including read=true), track processed IDs via
processedPermissionRequestIds Set on ProvisioningRun to prevent
re-emitting. Also look up both alive and provisioning runs so the
scan works during team bootstrap.
2026-03-27 23:35:52 +02:00
iliya
df6a23e3a2 Merge branch 'worktree-fix-permission-request-ui' into dev 2026-03-27 22:04:55 +02:00
iliya
d0b9c4f529 fix(team): settings panel opens below buttons instead of beside them
Split ToolApprovalSettingsPanel into ToolApprovalSettingsToggle (inline
button) and ToolApprovalSettingsContent (full-width expandable panel).
Toggle sits in the actions row, content renders below it inside the popup.
2026-03-27 22:04:44 +02:00
iliya
5c0eb1fa38 Merge branch 'worktree-fix-permission-request-ui' into dev 2026-03-27 20:16:14 +02:00
iliya
c0c20d07f8 fix(team): add backdrop overlay to ToolApprovalSheet and move Settings inline
- Add semi-transparent backdrop (bg-black/40) behind the approval popup
  to draw attention and dim surrounding UI
- Refactor ToolApprovalSettingsPanel to render toggle button inline
  (fragment-based) so it can sit in the actions row next to pending count
- Settings button now appears right-aligned at the same level as
  Allow/Deny buttons; expanded panel renders below
2026-03-27 20:16:03 +02:00
iliya
085147ffc0 Merge branch 'worktree-fix-permission-request-ui' into dev 2026-03-27 17:56:08 +02:00
iliya
924bcd8b99 fix(team): render teammate permission requests in ToolApprovalSheet instead of raw JSON
When auto-approve is disabled, teammate tool requests arrived as
permission_request JSON via SendMessage and rendered as "Raw JSON"
with no way to approve/deny (#29).

- Intercept permission_request in lead inbox relay, convert to
  ToolApprovalRequest and show in existing ToolApprovalSheet
- Respond via teammate inbox (permission_response) + control_response
  via stdin as fallback
- Show teammate name in approval header (e.g. "bob — Bash")
- Compact noise label in Messages panel for permission_request/response
- Proper file locking, race condition protection, idempotency checks
2026-03-27 17:55:59 +02:00
iliya
507bf798eb improvement(task-change): improve task change presence tracking and related IPC handlers
- Added support for tracking task change presence with new IPC channels: TEAM_GET_TASK_CHANGE_PRESENCE and TEAM_SET_CHANGE_PRESENCE_TRACKING.
- Introduced JsonTaskChangePresenceRepository and TeamLogSourceTracker to manage task change presence data.
- Enhanced ChangeExtractorService to utilize task change presence services for improved task change detection.
- Updated TeamDataService to integrate task change presence tracking and resolve task change presence states.
- Modified UI components to reflect task change presence status in Kanban and task detail views.

This feature aims to provide real-time insights into task changes, enhancing user experience and task management capabilities.
2026-03-27 17:52:39 +02:00
iliya
ecba775c76 Improve macOS title bar drag area 2026-03-27 17:21:18 +02:00
iliya
9f8287755c fix(updater): improve update dialog layout and strip downloads section
Widen dialog (max-w-lg → max-w-2xl), remove prose max-width constraint
that caused empty space on the right, and filter out the Downloads
heading with everything below it from release notes.
2026-03-26 13:13:50 +02:00
iliya
c7ee51884d Merge branch 'worktree-upstream-merge' into dev 2026-03-25 15:44:54 +02:00
iliya
58f3ccd4b4 feat(dashboard): add auth troubleshooting guide to CLI status banner
Add "Already logged in?" button next to Login that expands a
step-by-step troubleshooting panel: re-check status, terminal
commands, re-login instructions, and binary path display.
Also clarifies that browsing works without login.
2026-03-25 15:00:42 +02:00
iliya
141d0e22d9 feat(team): implement startTaskByUser functionality
- Added a new IPC handler for starting tasks triggered by users, ensuring that the task owner is always notified.
- Introduced `startTaskByUser` method in `TeamDataService` to handle task initiation and notifications.
- Updated relevant components and API interfaces to support the new functionality, including changes in the UI to call `startTaskByUser` instead of the previous `startTask`.
- Documented agent block usage for internal instructions in CLAUDE.md.

This enhancement improves user interaction with task management by providing a clear mechanism for user-initiated task starts.
2026-03-25 14:47:27 +02:00
iliya
22387ca0cb perf: add search debounce and increase global search timeout
- SearchBar: 300ms debounce with local input state, flush on Enter
- CommandPalette: global search debounce 200→400ms
- Show "500+" when search results are capped
- Fix: syncSearchMatchesWithRendered now updates searchMatchItemIds

Ported from upstream 5c7f921e (SearchBar/CommandPalette parts).
2026-03-25 14:38:07 +02:00
iliya
c21350713c perf: replace remark-based search with plain text indexOf
Manually ported from upstream 5c7f921e. Key changes:
- SessionSearcher: indexOf instead of remark AST, batch size 8→16
- conversationSlice: indexOf with MAX_SEARCH_MATCHES=500 cap
- Item-scoped store selectors (searchMatchItemIds Set) to skip re-renders
- Pre-filter in markdownTextSearch (skip parse if no raw match)
- SearchTextCache: 200→1000 entries
- ProjectScanner: 30s search project cache, batch 4→8
2026-03-25 14:32:37 +02:00
iliya
aeed5a0873 feat: add syntax highlighting for R, Ruby, PHP, and SQL
Cherry-picked from upstream 022c75da with conflict resolution.
Merged our codeClassName support with upstream per-line highlighting.
2026-03-25 14:05:53 +02:00
iliya
4946a65a7b feat: cherry-pick upstream CollapsibleOutputSection + TriggerMatcher regex cache
Cherry-picked from upstream:
- 516d0f6b: CollapsibleOutputSection with markdown preview toggle
- e51c1fd1: cache compiled regexes in TriggerMatcher (perf)
2026-03-25 13:58:38 +02:00
iliya
b8aa2d9f14 fix(auth): enrich PTY env and invalidate status cache after login
- Use buildEnrichedEnv() in PtyTerminalService so login terminal gets
  full PATH (Homebrew, nvm, etc.) and USER for Keychain lookup
- Add cliInstaller:invalidateStatus IPC to clear cached auth status
  after successful login, preventing stale "not logged in" responses
- Show "Verifying authentication..." spinner instead of flashing
  the "Not logged in" banner between modal close and status refresh

Ref #27
2026-03-25 13:36:12 +02:00
iliya
94fc564bf5 feat: UI improvements, bug fixes, and protocol noise filtering
- Fix incorrect error message when attaching files to team lead while team is offline
- Kanban columns: color only on headers, body with 30% alpha tint per user preference
- Worktree projects now correctly detected on Dashboard via path-based detection
- Filter raw protocol messages (idle_notification, teammate-message) from lead thoughts
- Consistent text styles in Attachments section (From original message / From comments)
- Secondary sort for teams by lastActivity timestamp with alphabetical fallback
- Remove colored background from team cards, keep only left border
- Dynamic member color in Add Members dialog based on next available palette color
- Stylized @-mentions in task comments with colored MemberBadge
- Refactor CLI env resolution to shared utility
2026-03-24 17:47:15 +02:00
iliya
7298cffaf5 Merge remote-tracking branch 'origin/worktree-react-19-migration' into dev 2026-03-24 17:12:52 +02:00
iliya
47dac2e8b5 feat: migrate to React 19
Upgrade React 18.3.1 → 19.2.4 with full type compatibility.

Changes:
- react, react-dom → ^19.0.0
- @types/react, @types/react-dom → ^19.0.0
- lucide-react → ^0.577.0 (React 19 type fixes)
- @tiptap/* → ^3.20.4 (React 19 support)
- useRef calls now require explicit initial value (undefined)
- RefObject types updated for React 19 (includes null)
- MutableRefObject → RefObject (deprecated in 19)
- act() import moved from react-dom/test-utils to react
- Scoped JSX namespace imports added where needed
2026-03-24 17:11:55 +02:00
iliya
1718f9cf7c refactor(README): reorganize roadmap items for clarity and update language switcher flag icon
- Rearranged roadmap items in README.md for better organization, moving planning mode and visual workflow editor to the top.
- Updated the flag icon for English in LanguageSwitcher.vue from the US to the GB flag.
- Enhanced user environment setup in CliInstallerService.ts by adding user information retrieval.
- Improved timestamp handling in MemberLogsTab.tsx to better reflect recent activity.
- Adjusted button class names in ProvisioningProgressBlock.tsx for consistency.
2026-03-24 16:52:12 +02:00
iliya
2e5d91f8f8 fix(settings): update About section description to reflect current features
Old text referenced waterfall charts; replaced with current capabilities:
agent teams, kanban board, code review, cross-team communication.
2026-03-24 12:38:58 +02: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
c326f8f96e feat(readme): update project title with link and remove unused media files
- Updated the project title in README.md to include a hyperlink for easier access to the documentation.
- Removed unused media files (compact.mp4, context.png, demo.mp4, noti.mp4) from the public directory to clean up the project.
- Enhanced the preload and renderer components to include a new method for retrieving file paths, improving file handling capabilities.
2026-03-23 20:18:14 +02:00
iliya
eda6218e67 feat(landing): expand localization support and improve content handling
- Added support for additional languages: Chinese (zh), Spanish (es), Hindi (hi), Arabic (ar), and Portuguese (pt) in the LanguageSwitcher and i18n configuration.
- Updated content files for English and Russian to clarify the free usage of the app.
- Enhanced content management by importing new language files into the content structure.
- Adjusted locale handling to ensure proper recognition of supported languages in the application.
2026-03-23 18:53:43 +02:00
iliya
c8546a0777 feat(landing): enhance HeroDemoVideo component with loading progress indicator
- Added a loading progress indicator to the HeroDemoVideo component, displaying the buffered video progress.
- Updated event listeners to track video loading state and progress.
- Enhanced skeleton loading UI with a spinner and progress bar for better user feedback during video loading.
- Changed video preload attribute from "metadata" to "auto" for improved loading performance.
2026-03-23 18:05:34 +02:00
iliya
0bc8bf1fe9 feat(landing): enhance base URL handling and improve image paths
- Introduced baseURL configuration to dynamically set asset paths in the landing components.
- Updated AppLogo and HeroSection components to use baseURL for logo image sources.
- Refactored ScreenshotsSection to utilize a publicPath function for consistent image path handling.
- Improved LanguageSwitcher to synchronize the i18n locale with the store on mount.
- Enhanced TaskCommentInput to handle file uploads more robustly, including validation for empty files and improved error handling.
- Adjusted MessageComposer to conditionally support attachments based on team status.
2026-03-23 17:51:09 +02:00
iliya
5cf9751b41 feat(attachments): update TypeScript configuration and enhance attachment handling
- Upgraded TypeScript target and library to ES2023 for improved language features.
- Enhanced TeamProvisioningService to better handle plain text attachments with UTF-8 validation.
- Improved TaskCommentInput to differentiate between image and non-image file previews, including a new FileIcon for non-image files.
- Refactored attachment handling in useAttachments and useComposerDraft hooks to simplify file processing.
- Added validation for empty files in attachmentUtils to improve user feedback on unsupported uploads.
2026-03-23 17:33:39 +02:00
iliya
b20b69066e feat(attachments): expand file support and enhance attachment handling
- Added support for additional attachment types: PDF and plain text.
- Updated the TeamProvisioningService to handle new attachment types with appropriate content blocks.
- Enhanced AttachmentDisplay and AttachmentPreview components to differentiate between image and non-image files.
- Modified DropZoneOverlay and SendMessageDialog to reflect changes in file handling and messaging.
- Improved user experience by allowing file previews for non-image attachments and updating error messages accordingly.
- Refactored attachment validation logic to categorize unsupported files and handle them gracefully.
2026-03-23 17:24:48 +02:00
iliya
ad1741f05e fix(team): enhance team member resolution and provisioning instructions
- Added logic to merge "lead" alias into "team-lead" to prevent phantom member entries in the inbox.
- Updated provisioning instructions to emphasize the importance of using the exact name for the team lead in messages, avoiding abbreviations.
- Modified default role for 'tom' from 'reviewer' to 'researcher' with updated workflow description.
- Improved UI in MemberDraftRow to indicate workflow status with a visual cue when expanded.
2026-03-23 15:37:23 +02:00
iliya
7b13a4c398 refactor: update README and enhance team UI components
- Changed image format for agent comments screenshot in README.
- Improved table of contents in README for better navigation.
- Refactored imports in IPC config and discovery services for consistency.
- Added shimmer effect for waiting members in CSS.
- Enhanced dashboard view to display active teams with online indicators.
- Updated team provisioning components to support message severity.
- Improved task detail dialog layout for related tasks and dependencies.
- Adjusted team model selector default value and refined member status handling.
- Fixed minor styling issues in messages panel and tab bar.

These changes aim to improve user experience and maintainability across the application.
2026-03-23 12:58:38 +02:00
iliya
2eac440fe2 fix(team): disable teammate DM relay through lead, read user.json directly
Teammates are independent Claude Code processes that read their own inbox
files via fs.watch. Relaying DMs through the lead caused three bugs:
lead responding instead of the teammate, duplicate messages from relay
loops, and teammates not responding to user due to conflicting prompts.

- Disable relayMemberInboxMessages for teammate DMs (teams.ts, index.ts)
- Add SendMessage(to="user") filter in captureSendMessages as safety net
- Generate deterministic messageId for inbox entries lacking one (sha256)
- Wrap notification instructions in agent block, italic task subject
- Style system comments in task view with blue background, hide avatar
- Update CLAUDE.md, research docs, and code comments with architecture
2026-03-23 12:57:16 +02:00
iliya
e005671123 feat: add Sentry error tracking and update docs
- Integrate @sentry/electron and @sentry/react for crash reporting
- Add Sentry Vite plugin for source maps
- Add error tracking to main process, renderer, and IPC layer
- Exclude source maps from packaged builds
- Update README with new screenshots
- Add Sentry opt-out toggle in settings
- Update release workflow with Sentry config
2026-03-22 17:03:15 +02:00
iliya
00c9d62a99 feat(cli): add CliInstallWarningBanner to notify users when CLI is not installed
Introduce a new CliInstallWarningBanner component that displays a warning when the Claude Code CLI is not installed. This banner is only shown in Electron mode and is hidden on Dashboard pages. The banner includes a message prompting users to install the CLI and a button to navigate to the Dashboard.
2026-03-22 15:07:45 +02:00
iliya
40e9d7917c feat(team): persist create-team form state across tab navigation
Add IndexedDB-backed draft persistence for CreateTeamDialog so that
navigating away (e.g. to Dashboard to install CLI) and back preserves
all form fields: team name, members, paths, solo/launch flags, color.

- New createTeamDraftStorage service (IDB + in-memory fallback)
- New useCreateTeamDraft hook (debounced save, flush on unmount, race-safe)
- Gate useEffect for defaults/initialData on draftLoaded to prevent race
- Block submit button until draft is loaded
- Improve CLI-missing error in LaunchTeamDialog with Dashboard navigation
- Remove notification bell button from MessagesPanel
2026-03-22 15:02:07 +02:00
iliya
a9cdf20ca8 feat(updater): add auto-update UI with periodic checks and state guards
- Add green "Update app" / "Restart to update" button in header (TabBarActions)
- Enhance UpdateDialog: larger, dynamic buttons, scrollable release notes,
  version badge, "View on GitHub" link
- Add DashboardUpdateBanner: compact dismissible banner keyed by version
- Add periodic hourly update checks in UpdaterService with unref() timer
- Add dismissed version tracking in updateSlice (localStorage persistence)
- Add state transition guards in store listener: prevent periodic re-checks
  from resetting downloading/downloaded status back to available/checking
- Guard error events from overriding downloaded state (transient check failures)
2026-03-22 14:00:44 +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
8616db00a0 refactor: update UI and functionality for team provisioning and progress indicators
- Revised the TeamProvisioningService to change event handling from 'Task' to 'Agent' for improved accuracy.
- Enhanced the StepProgressBar component to include error indicators and animations for better user feedback during provisioning.
- Updated the TeamProvisioningBanner to track and display the last active step in case of errors.
- Improved CSS styles for step indicators, adding new animations and error states.
- Refined the sidebar task item styling based on light/dark themes for better visual consistency.
- Adjusted the README to reflect changes in installation instructions and feature comparisons.
2026-03-21 17:43:29 +02:00
iliya
6d441efa97 refactor: enhance team provisioning process and UI updates
- Updated provisioning states to include 'configuring', 'assembling', and 'finalizing' for better tracking of team setup progress.
- Refactored the provisioning progress block to utilize a new display step system, improving clarity in the UI.
- Adjusted the README to include a comprehensive table of contents and updated comparison metrics for multi-agent orchestration tools.
- Enhanced team management UI to reflect new provisioning states and improve user experience during team setup.
2026-03-21 16:47:20 +02:00
iliya
7bca2e73a6 refactor: update lead member detection and enhance team management UI
- Replaced instances of isLeadAgentType with isLeadMember for improved clarity in team member role checks.
- Updated README to include a new built-in review workflow feature for agent task reviews.
- Enhanced team detail and list views to accurately reflect current team members and their roles.
- Improved CSS for step progress indicators, adding new styles for a circular stepper.
- Refactored provisioning progress block to utilize a new StepProgressBar component for better visual representation of steps.
2026-03-21 16:05:56 +02:00
iliya
7dda73aa74 refactor: update task assignment message formatting and enhance UI elements
- Changed task assignment message to use italic formatting for task subject for better emphasis.
- Updated the task instruction message to utilize a wrapping function for improved readability.
- Enhanced splash screen background with an animated gradient for a more dynamic visual experience.
- Improved team detail view messaging to clarify provisioning status.
- Adjusted member list sorting logic to utilize a new lead member detection function.
2026-03-21 15:07:52 +02:00
iliya
7c9631c1b9 feat: enhance README and UI for team management and review processes
- Added "Flexible autonomy" feature to README, allowing users to configure agent control levels.
- Updated task creation description for clarity in README.
- Improved team detail view messaging to better inform users about draft teams and provisioning status.
- Enhanced review function to prevent duplicate approval comments and events, ensuring idempotency.
- Expanded expected IPC signals to include 'TEAM_DRAFT' for better error handling.
2026-03-21 14:01:24 +02:00
iliya
4d65bad24f fix: consistent diff stats between preview badge and DiffViewer
- Export computeDiffLineStats from DiffViewer — uses the same LCS/semantic
  diff algorithm so stats always match the rendered diff
- Remove custom computeDiffStats (set-based) that produced different counts
- Add quickStats from toolInput.content for Write tool — shows +N
  immediately before IPC completes (no need to expand first)
- diffStats (accurate, from IPC) replaces quickStats once available
2026-03-21 13:30:53 +02:00
iliya
987ad96f4a feat: OS notification for tool approvals with Allow/Deny actions
When a tool needs approval and the app is not focused, show a native
OS notification with clear description (tool name + file/command).

On macOS: notification includes Allow and Deny action buttons that
respond directly without switching to the app.
On all platforms: clicking the notification focuses the app window.

New setting: notifyOnToolApproval (default: true) in notification
settings with ShieldQuestion icon toggle.
2026-03-21 13:27:39 +02:00
iliya
e2ca78d1b2 feat: default Send Message recipient to team lead
When opening Send Message dialog without a specific recipient,
auto-select the lead member instead of showing empty "Select member".
2026-03-21 13:04:22 +02:00
iliya
e837eb7db8 feat: implement draft team handling and metadata storage
- Added functionality to read draft team summaries from team.meta.json when config.json is missing.
- Introduced methods to save team-level metadata to team.meta.json during team creation.
- Updated UI components to handle draft teams, including launch and delete options.
- Enhanced error handling for draft teams in various components.
2026-03-21 12:48:18 +02:00
iliya
087a8f4989 feat: replace Pencil icon with FileIcon in DiffViewer header
Use devicon-based FileIcon for file type recognition instead of
generic Pencil icon. Shows JS/TS/Python/etc logos in diff headers.
2026-03-21 12:48:03 +02:00
iliya
7daacdc6a5 feat: add file type icon to tool input preview
Reuse FileIcon from editor for Write/Edit/Read/NotebookEdit tools.
Shows devicon-based colorful icon next to the file path.
JSON/Bash tools keep syntax-highlighted preview as before.
2026-03-21 12:47:04 +02:00
iliya
afea718b0f feat: relative paths, persistent diff preview, change stats
- Show relative path in tool input preview when file is inside
  team's project directory (via shortenDisplayPath)
- Persist diff preview expanded state in localStorage — once opened,
  stays open across approvals
- Show +N / -N line stats in "Preview changes" toggle button
  (green for added, red for removed)
2026-03-21 12:43:49 +02:00
iliya
1f9f0b6390 feat: syntax highlighting in diff preview + fix Allow All button style
- DiffViewer: add syntaxHighlight prop — maps diff lines to
  highlighted HTML via highlightLines(), passed to DiffLineRow
- ToolApprovalDiffPreview: enable syntaxHighlight for file diffs
- Allow All button: proper border style matching Deny button sizing
2026-03-21 12:39:19 +02:00
iliya
d92ab08416 feat: show tool approval in Awaiting Replies + Allow All button
- PendingRepliesBlock: show "user — awaiting approval" entry when
  pendingApprovals exist, with amber pulse dot and ShieldQuestion icon
- ToolApprovalSheet: add grey "Allow all" button (separated by divider)
  right of Allow/Deny — enables autoAllowAll setting instantly
2026-03-21 12:31:51 +02:00
iliya
73661c80a4 feat: auto-allow all tools toggle + fix team color fallback
- Add autoAllowAll setting: overrides all individual auto-allow rules,
  instantly approves every tool call without user interaction
- Settings panel: "Auto-allow all tools" checkbox at top, individual
  checkboxes greyed out when all-allow is active
- Fix team color badge: use getTeamColorSet(teamName) as fallback
  instead of getMemberColorByName which uses a different palette
  and produced wrong colors (yellow instead of pink)
2026-03-21 12:25:06 +02:00
iliya
0ebfd85b47 fix: always show team color badge via deterministic fallback
Color resolution chain: approval.teamColor → teamSummary.color
→ getMemberColorByName(teamName). Third fallback guarantees
a color is always available — no more neutral grey badges.
Removed dead fallback branch since teamColor can never be null.
2026-03-21 12:19:05 +02:00
iliya
6d77e77200 fix: tool approval select z-index and syntax highlight colors
- SelectContent z-[60] to render above the z-[55] approval sheet
- Move fallback text color to parent div so hljs class colors take priority
  (inline style on each line was overriding .hljs-attr/.hljs-string classes)
2026-03-21 12:12:04 +02:00
iliya
a6fc7f82d3 feat: tool approval improvements — diff preview, error feedback, provisioning fix
- Add diff preview for Write/Edit tools: reads current file via new IPC
  (TEAM_TOOL_APPROVAL_READ_FILE), shows unified diff using existing DiffViewer
- Fix Allow button doing nothing: re-throw errors from store instead of
  silently swallowing, show error message in UI, add 10s safety timeout
- Fix "No active process" during provisioning: use getTrackedRunId() to
  find process in both provisioning and alive maps
- Add 5s stdin.write timeout to prevent hanging when process dies
- Add syntax highlighting for tool input preview (JSON, bash, etc.)
- Add team color/name badge from ToolApprovalRequest (works during provisioning)
- Conditionally show team badge only when user is on a different team page
- Format elapsed time as Xm Ys when over 60 seconds
- Replace native <select> with Radix UI Select in settings panel
2026-03-20 18:41:01 +02:00
iliya
6d066831eb feat: implement deduplication for concurrent server start calls
- Enhanced the HttpServer class to prevent multiple concurrent calls to the start() method by introducing a startingPromise that ensures subsequent calls await the same promise.
- Added a private doStart method to encapsulate the server startup logic.
- Updated documentation to reflect the new behavior of the start method.

- Adjusted the ActivityTimeline component to improve padding in the "No messages" state for better visual alignment.
2026-03-20 16:19:51 +02:00
iliya
ddc3567449 fix: sort imports in TaskFiltersPopover to satisfy lint 2026-03-20 14:42:57 +02:00
iliya
ec547e0662 refactor: enhance task management protocols and UI components
- Updated task management guidelines to emphasize the importance of posting task comments before marking tasks as complete, ensuring visibility of results on the task board.
- Introduced a new notification system for team leads after task completion, summarizing key findings and linking to detailed comments.
- Improved UI components, including a new CLI checking spinner with a delayed hint and enhanced task filters to support unread/read task states.
- Refactored sidebar task item styles to visually indicate unread tasks and adjusted task sorting options to include 'unread' as a criterion.
- Enhanced settings tabs with tooltips for better user guidance and improved layout for advanced settings options.
2026-03-20 13:45:03 +02:00
iliya
16f3fa51a3 refactor: clean up code and improve readability across multiple files
- Removed unnecessary eslint disable comments related to intentional mutations for clarity.
- Updated import statements for consistency and organization.
- Refactored regex patterns and utility functions in various components to enhance performance and maintainability.
- Improved error handling and notifications for API errors in the teams IPC module.
- Streamlined the handling of DOM mutations in the ChatHistory and other components for better readability.
- Enhanced type definitions and added utility functions to improve code structure and type safety.
2026-03-19 14:07:14 +02:00
iliya
08f22121c6 feat: enhance error handling and notifications for API errors
- Implemented a new mechanism to detect and notify users of API errors within team communications, improving error visibility.
- Updated the ActivityItem and ThoughtBodyContent components to visually indicate API errors with distinct styling.
- Enhanced the TaskDetailDialog and KanbanTaskCard components to improve user experience by providing clearer feedback on task dependencies and statuses.
- Refactored the teams IPC module to include checks for API errors, ensuring timely notifications are sent to users.
2026-03-19 12:47:00 +02:00
iliya
8d97c53cb4 feat: add dependencies section to TaskDetailDialog for improved task management
- Implemented a new section in TaskDetailDialog to display tasks that are blocked by or blocking the current task, enhancing visibility of task dependencies.
- Added interactive buttons for each dependency, allowing users to quickly access related tasks.
- Updated review information display to streamline task review context, improving user experience.
2026-03-18 23:18:35 +02:00
iliya
33ba4bdeab feat: include comments in GlobalTask payload to restore notification functionality
- Updated TeamDataService to include lightweight comment metadata in the GlobalTask payload, addressing issues with task comment notifications in the renderer.
- Enhanced TeamProvisioningService with a stall watchdog to monitor CLI process responsiveness and emit warnings for extended periods of inactivity.
- Modified CreateTeamDialog and LaunchTeamDialog to ensure default values for selected model and effort are set correctly, improving user experience during team creation and launch.
2026-03-18 14:59:56 +02:00
iliya
6ace707653 feat: add team launched notification and related configuration
- Introduced a new notification setting for when a team finishes launching, enhancing user awareness of team readiness.
- Updated the configuration interface and default settings to include the new notification option.
- Implemented logic to trigger the "team launched" notification within the team provisioning service.
- Enhanced validation to ensure the new setting accepts boolean values.
- Updated relevant UI components to allow users to toggle the new notification setting.
2026-03-17 15:13:37 +02:00
iliya
572cfab1a5 feat: enhance attachment handling and metadata management
- Added filePath to attachment metadata in various components to support file access.
- Updated saveTaskAttachmentFile and related functions to include file paths for stored attachments.
- Enhanced documentation and comments to clarify the importance of using MCP tools for task review operations.
- Improved UI components to display file paths where applicable, ensuring better user experience with attachments.
2026-03-17 13:53:29 +02:00
iliya
eacd7d82e1 feat: implement project scanning timeout and enhance metadata extraction
- Added scanProjectWithTimeout method to ProjectScanner to prevent long scans from blocking the entire batch.
- Introduced cleanup logic in metadata extraction functions to ensure proper resource management during timeouts.
- Updated logging to provide insights on scan durations and session statistics for better performance monitoring.
- Enhanced repository group fetching logic in DashboardView and DateGroupedSessions components to handle loading and error states more effectively.
2026-03-17 11:20:04 +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
729a756f29 fix: resolve CI failures across all platforms
- Fix TS error: use kanbanTaskState?.reviewer instead of task.reviewer
  (reviewer exists on KanbanTaskState, not TeamTask)
- Fix crossTeam tests: update assertions to match XML tag protocol format
  (CROSS_TEAM_PREFIX_TAG → CROSS_TEAM_TAG_NAME with XML attributes)
- Fix controller test: use 'bob' instead of 'alice' as commenter
  (alice is the lead = same as task owner, so no notification fires)
- Fix TeamMcpConfigBuilder test: use path.join() for cross-platform paths
  (forward slashes fail on Windows where path.join uses backslashes)
- Fix atomicWrite EPERM on Windows: add retry logic for rename operations
  (Windows CI antivirus can briefly hold files, causing EPERM on rename)
2026-03-16 19:56:06 +02:00
iliya
5686d60d99 feat: implement startReview functionality and enhance review state management
- Added startReview function to initiate the review process for tasks, allowing transition to the review column without requiring completed status.
- Updated getCurrentReviewState and getEffectiveReviewState functions to include 'review_started' event type for accurate review state tracking.
- Enhanced task history management by introducing a new TaskReviewStartedEvent type.
- Updated documentation and user instructions to reflect the new review process, emphasizing the importance of calling review_start before review actions.
- Improved test coverage for the new startReview functionality and its integration with existing review processes.
2026-03-16 19:08:12 +02:00
iliya
15df012c4b refactor: streamline task handling and improve data formatting
- Updated taskTools to utilize slimTask for lightweight task summaries, reducing data bloat in responses.
- Introduced taskWriteResult function to handle task write operations more efficiently by stripping unnecessary fields.
- Enhanced jsonTextContent usage across task operations for consistent data formatting.
- Removed legacy member briefing bootstrap checks from TeamProvisioningService and related tests to simplify member spawn logic.
- Improved test coverage for task handling and member provisioning processes.
2026-03-16 18:07:22 +02:00
iliya
6798c4b9e7 feat: enhance team provisioning and message preview handling
- Updated TeamProvisioningService to include subagent type in spawn messages for clarity.
- Improved member registration checks to account for suffixed names, enhancing error handling.
- Refactored SubagentRecentMessagesPreview to strip agent-only blocks from messages, improving display clarity.
- Adjusted tests to reflect changes in message formatting and member provisioning logic.
2026-03-16 17:36:23 +02:00
iliya
48b485c637 feat: enhance message handling and UI components for task management
- Introduced stable messageId generation for reliable task creation and message tracking.
- Updated TeamAttachmentStore with a TODO for attachment cleanup on failed sends.
- Enhanced task notifications and UI components to improve user experience, including custom role rendering in RoleSelect and improved task detail displays.
- Refactored task change handling logic to support better visibility of changes across task states.
- Added support for displaying source message attachments in TaskDetailDialog.
- Improved overall code structure and documentation for better maintainability.
2026-03-16 16:48:28 +02:00
iliya
2131ad32d0 feat: add review status, all-tasks-completed and cross-team message notifications
- Detect review state transitions (kanbanColumn → review) in status change notifications
- Add "All tasks completed" notification when every task in a team reaches completed/deleted
- Add "Cross-team message" notification with separate toggle (source: cross_team in inbox)
- All three enabled by default with UI toggles in settings
2026-03-16 14:32:03 +02:00
iliya
48033ef701 feat: add task created notification type
New notification fires when agents create tasks, with toggle in settings.
Follows existing pattern: detect → fire → seed on initial load.
2026-03-16 14:01:16 +02:00
iliya
baf0609595 feat: add message lookup functionality for task creation
- Introduced a new `lookupMessage` function to retrieve messages by their exact messageId from both sent messages and inbox files.
- Enhanced error handling for ambiguous messageId scenarios and missing messageId cases.
- Updated the `createTask` function to include `sourceMessageId` and `sourceMessage` fields, capturing the original message details during task creation.
- Added comprehensive tests for the `lookupMessage` functionality, ensuring accurate retrieval and validation of messages from different sources.
2026-03-16 10:46:25 +02:00
iliya
de205b13d7 fix: improve regex handling and preview limits in TeamMemberLogsFinder and MemberLogsTab
- Enhanced regex patterns in TeamMemberLogsFinder to allow for escaped sequences and increased character limits for text and content previews.
- Updated the MemberLogsTab component to prioritize recent previews over fallback mechanisms, ensuring more relevant message displays for lead users.
- Adjusted the length limit for returned previews to 1500 characters for better context in log summaries.
2026-03-15 22:17:53 +02:00
iliya
457dc13ef9 feat: enhance TeamMemberLogsFinder and MemberLogsTab for improved preview handling
- Added support for tracking and displaying recent thinking previews alongside output previews in TeamMemberLogsFinder.
- Updated the return structure of log summaries to include last thinking previews and recent previews for better context.
- Enhanced the MemberLogsTab component to utilize recent previews for lead users, improving the clarity and relevance of displayed messages.
- Implemented filtering logic for task-scoped recent previews, ensuring only relevant messages are shown based on task intervals.
2026-03-15 22:04:39 +02:00
iliya
af54cea68d feat: enhance member logs preview handling for lead users
- Improved the logic for displaying preview messages in the MemberLogsTab component.
- Added fallback mechanisms to show the last output preview when no preview chunks are available, specifically for lead users.
- Filtered out user messages for lead previews to focus on AI outputs, ensuring clarity in displayed results.
- Enhanced overall message retrieval logic to provide a more robust user experience in the logs tab.
2026-03-15 21:34:48 +02:00
iliya
36e93abd42 feat: enhance review approval process and notification handling
- Added a `suppressTaskComment` flag to the `approveReview` function, allowing users to approve reviews without adding a comment to the task.
- Updated the `notifyNewInboxMessages` function to include additional debug logging for better tracking of inbox notifications.
- Adjusted notification settings in `ConfigManager` to enable notifications for lead inbox and change the status change behavior.
- Enhanced the `NotificationManager` to improve error handling and logging during notification display.
- Refactored `TeamDataService` to utilize the new `suppressTaskComment` feature during review approvals.
- Updated tests to validate the new approval process and notification behaviors.
2026-03-15 19:27:59 +02:00
iliya
0c0088c871 feat: add relay message ID support for improved message tracking
- Introduced `relayOfMessageId` to various message handling components, allowing for better tracking of relayed messages.
- Updated `buildMessage`, `TeamInboxReader`, `TeamInboxWriter`, and related services to accommodate the new relay ID.
- Enhanced filtering logic in `filterTeamMessages` to hide relay copies when the original message is visible, improving message clarity.
- Added tests to validate the functionality of relay message handling and ensure proper integration across services.
2026-03-15 18:10:37 +02:00
iliya
194bd1bf1e feat: enhance task messaging and member role detection
- Introduced a new function `quoteMarkdown` to format task comments with markdown quotes for better readability.
- Updated the `buildCommentNotificationMessage` to utilize `quoteMarkdown`, ensuring comments are displayed correctly.
- Refactored member role detection across multiple services to use `isLeadMember` for consistency and clarity in identifying team leads.
- Enhanced various components to improve handling of team member roles, ensuring accurate representation in UI and logic.
- Adjusted tests to reflect changes in comment formatting and member role checks, improving overall reliability.
2026-03-15 17:45:10 +02:00
iliya
edddf526db refactor: reorganize task completion notifications in settings
- Moved the Task Completion Notifications section within the NotificationsSection component for improved structure and clarity.
- Updated the UI elements related to task completion notifications, ensuring consistent styling and functionality.
- Enhanced the overall user experience by maintaining clear access to notification settings.
2026-03-15 14:40:48 +02:00
iliya
f5efa17b1a feat: enhance notification handling and improve task comment protocols
- Added debug logging for test notification handling in the NotificationManager, improving traceability during notification operations.
- Implemented unescaping of literal newline sequences in task descriptions and comments across various components, ensuring proper formatting.
- Updated task comment handling logic to clarify awaiting replies from task responders, enhancing user awareness of task interactions.
- Refined UI components to improve user experience in settings and task management, including adjustments to the NotificationsSection and TeamDetailView.
2026-03-15 14:18:33 +02:00
iliya
cb6a41d899 feat: add test notification feature and update app identifiers
- Introduced a new IPC call for sending test notifications, allowing users to verify notification delivery.
- Updated app identifiers in package.json and notarization script to reflect the new application name.
- Enhanced notification handling in the NotificationManager to prevent garbage collection of active notifications.
- Updated UI components to include a test notification button in the settings, improving user experience.
2026-03-15 13:37:53 +02:00
iliya
d4688825fd feat: enhance settings UI with optional icons and add kanban focus animation
- Updated SettingRow and SettingsSectionHeader components to support optional icons, improving visual clarity and user experience.
- Introduced a new CSS animation for kanban card focus, enhancing the visual feedback when tasks are interacted with.
- Adjusted NotificationsSection to utilize the new icon feature in headers and rows, providing a more engaging settings interface.
- Refined team detail view to incorporate the kanban focus animation for better task visibility during interactions.
2026-03-15 13:12:09 +02:00
iliya
2ca66d8632 feat: add task comment notification feature
- Introduced a new notification setting for task comments, allowing users to receive OS notifications when comments are added to tasks.
- Updated relevant interfaces and configuration files to include the new `notifyOnTaskComments` option.
- Enhanced notification handling logic to detect and notify users of new task comments, excluding comments made by the user themselves.
- Updated UI components to support the new notification setting, ensuring a seamless user experience.
2026-03-15 12:52:59 +02:00
iliya
a175566b83 feat: refresh review diffs after external file changes
Watch reviewed files for external edits so stale full diffs reload safely, while local drafts get explicit conflict actions instead of silent overwrites.

Made-with: Cursor
2026-03-15 12:47:52 +02:00
iliya
217eafe6a2 feat: enhance team task management with reviewer resolution and UI improvements
- Added a new method in TeamDataService to extract the reviewer from task history events as a fallback when not present in the kanban state.
- Updated TeamDetailView to support adding multiple members at once, improving the member addition process.
- Enhanced TaskCommentInput to display a more user-friendly reply interface with expandable quotes and member badges.
- Improved TaskDetailDialog to show the reviewer information when a task is approved, enhancing task visibility.
- Introduced loading state handling in ChangeReviewDialog and ContinuousScrollView for better user experience during file loading.
2026-03-15 12:24:51 +02:00
iliya
cbd09199b3 feat: enhance task assignment messaging and improve action mode instructions
- Updated the task assignment message to emphasize the importance of starting tasks promptly, with improved formatting for clarity.
- Revised action mode instructions for the 'delegate' mode to provide clearer guidance on delegation responsibilities and expectations, including the creation of investigation tasks for ambiguous requests.
- Added new protocols in TeamProvisioningService to clarify ownership and task refinement processes during investigations, ensuring better task management and accountability.
2026-03-15 11:43:29 +02:00
iliya
65a9928cb5 feat: integrate provisioning snapshots into TeamListView for enhanced team display
- Added provisioningSnapshotByTeam to manage synthetic team summaries during active provisioning.
- Implemented teamsWithProvisioning to merge real teams with synthetic cards, improving the team list display.
- Updated filtering and rendering logic in TeamListView to utilize the new teamsWithProvisioning array, ensuring accurate representation of teams during provisioning states.
2026-03-15 11:03:26 +02:00
iliya
7502cc8e53 feat: deduplicate subagent snapshots and enhance chunk filtering by work intervals
- Implemented deduplication logic in TeamMemberLogsFinder to retain only the largest cumulative subagent snapshots per sessionId and memberName.
- Enhanced MemberLogsTab with a new function to filter chunks based on task work intervals, improving the relevance of displayed logs.
- Updated state management in MemberLogsTab to utilize the new filtering logic for both preview and detail chunks.
- Added unit tests to verify the new deduplication and filtering functionalities.
2026-03-15 10:48:35 +02:00
iliya
e60229622d refactor: streamline team process termination and enhance team name conflict handling
- Introduced a new `killTeamProcess` function to consistently use SIGKILL for terminating team processes, preventing unintended cleanup of team files.
- Updated multiple instances in `TeamProvisioningService` to utilize `killTeamProcess` for improved clarity and maintainability.
- Enhanced `CreateTeamDialog` and `TeamListView` components to manage team name conflicts more effectively by incorporating active provisioning states.
2026-03-15 09:20:43 +02:00
iliya
b886b6bf83 feat: optimize file content resolution and enhance loading state handling
- Added a fast path in FileContentResolver to skip history lookup for files created by the agent with empty original content.
- Improved loading state in FileSectionDiff to display a loading message and snippet preview when applicable.
- Adjusted header content class names in ClaudeLogsSection and button styles in CollapsibleTeamSection for better UI consistency.
- Refactored ContinuousScrollView to streamline rendering logic for file sections based on content availability.
2026-03-15 08:24:00 +02:00
iliya
05457aca0d refactor: improve TeamDetailView and MemberList components for better responsiveness and UI clarity
- Removed unnecessary inline styles from TeamDetailView for cleaner code.
- Added responsive grid layout to MemberList using ResizeObserver to adjust the display based on container width.
- Integrated tooltip functionality in LimitContextCheckbox to provide context on token limits, enhancing user experience.
2026-03-14 23:30:37 +02:00
iliya
9b7c9fec0c feat: enhance task assignment notifications and improve message clarity
- Updated the task assignment message in tasks.js to include additional instructions for task initiation based on current workload.
- Modified the notification tests to verify the inclusion of new task initiation guidance.
- Adjusted the formatting in the CollapsibleTeamSection component for better layout consistency.
- Refactored the ChangeExtractorService tests to improve clarity and accuracy in log file reference handling.
- Updated cost calculation tests to reflect changes in model names and pricing structures, ensuring accurate cost assessments.
- Enhanced mention detection tests to include trigger character information for improved functionality.
2026-03-14 23:05:42 +02:00
iliya
37a4c458bb feat: add Tiptap WYSIWYG editor component for task descriptions
Replace Textarea + Edit/Preview tabs with a reusable WYSIWYG editor
based on Tiptap v3. Integrated into TaskDetailDialog for editing
task descriptions with native markdown I/O.

Components:
- TiptapEditor: main component with EditorContext.Provider pattern
- TiptapToolbar: configurable toolbar with useEditorState for v3 reactivity
- TiptapBubbleMenu: floating formatting menu on text selection
- useTiptapEditor: core hook with markdown I/O, content sync, stale closure prevention
- presets: full/compact/minimal editor configurations
- tiptapStyles.css: ProseMirror styles matching MarkdownViewer values

Key details:
- Data format stays markdown string (not HTML)
- contentType: 'markdown' for both init and setContent
- GFM enabled via markedOptions
- ProseMirror li>p margin fix, nested list styles, gapcursor
2026-03-14 22:17:58 +02:00
iliya
a29d8403d6 refactor: update comment formatting and notification handling in maintenance and tasks
- Modified comment notification formatting in tasks.js to enhance clarity by using bold text for task references.
- Updated the automated comment notification detection in maintenance.js to align with the new formatting.
- Adjusted test cases to reflect the updated comment structure for consistency in notifications.
2026-03-14 22:10:16 +02:00
iliya
92dd8f445f refactor: enhance TeamMemberLogsFinder and UI components for improved member display and caching
- Increased FILE_MENTIONS_CACHE_MAX from 1000 to 10,000 to accommodate larger datasets.
- Introduced DISCOVERY_CACHE_TTL to optimize project session discovery by caching results.
- Updated findMemberLogs method to accept an optional mtimeSinceMs parameter for filtering logs based on modification time.
- Added lastOutputPreview to MemberLogSummary for displaying the last assistant output in logs.
- Implemented displayMemberName utility function to standardize member name display across various components.
- Updated multiple components to utilize displayMemberName for consistent member name rendering.
2026-03-14 21:25:01 +02:00
iliya
471d1871ec refactor: enhance CollapsibleTeamSection to support scrolling after expansion
- Modified the onClick handler to scroll to the section after expanding it, improving user experience.
- Introduced a check to ensure scrolling only occurs when the section is opened, maintaining functionality when collapsing.
2026-03-14 19:35:43 +02:00
iliya
c4148b0fc8 refactor: enhance TeamMemberLogsFinder for improved file scanning and attribution
- Increased FILE_MENTIONS_CACHE_MAX from 200 to 1000 to accommodate larger datasets.
- Introduced SCAN_CONCURRENCY constant to limit the number of concurrent file reads during scans, optimizing performance.
- Refactored file scanning logic to collect candidate files more efficiently and process them in parallel.
- Added new SubagentAttribution interface to standardize the structure of attribution results.
- Expanded unit tests to validate the new file reference retrieval logic for tasks, ensuring accurate member identification across teams.
2026-03-14 19:14:34 +02:00
iliya
e6b7a6fe53 refactor: streamline logging and context handling in team services
- Replaced logger.info calls with console.log in TeamMemberLogsFinder for performance logging.
- Simplified environment variable handling in TeamProvisioningService by removing unnecessary context settings.
- Updated stopTeam method to accept a signal parameter for improved process termination control.
- Enhanced model handling in team dialogs to support new context management logic, ensuring consistent behavior across components.
- Adjusted teamSlice to reflect changes in model parsing and context handling, improving overall state management.
2026-03-14 18:24:13 +02:00
iliya
1073a51039 refactor: update context handling in team provisioning and UI components
- Replaced references to extended context with limit context in TeamProvisioningService and related components, ensuring consistent terminology.
- Updated LaunchTeamDialog and CreateTeamDialog to reflect the new limit context functionality, enhancing user clarity.
- Removed the deprecated ExtendedContextCheckbox component and integrated its functionality into the new LimitContextCheckbox.
- Adjusted teamSlice to accommodate changes in launch parameters, streamlining the context management process.
2026-03-14 17:54:49 +02:00
iliya
da4d98ec2b refactor: enhance task management protocols and notification handling
- Updated task management instructions in tasks.js to clarify the process for handling newly assigned tasks that must wait due to ongoing work, emphasizing the importance of leaving comments with reasons and estimated completion times.
- Improved member briefing messages to include critical reminders about task status and comment handling.
- Enhanced TeamDataService to implement task comment notification features, ensuring leads are notified of teammate comments on tasks.
- Refactored related UI components to support better interaction and visibility of task statuses and notifications.
2026-03-14 17:46:15 +02:00
iliya
e92d4658f4 refactor: enhance ActivityItem and ActivityTimeline components for expanded message functionality
- Added support for expanding messages into a fullscreen dialog in ActivityItem and ActivityTimeline components.
- Introduced new props `onExpand` and `expandItemKey` to facilitate the expansion feature.
- Updated rendering logic to conditionally display expand buttons and handle user interactions for expanded views.
- Refactored related components to ensure consistent behavior and improved user experience when interacting with messages.
2026-03-14 14:21:11 +02:00
iliya
0b5d4b41f1 refactor: enhance task review notifications and UI components
- Updated task review notification messages for clearer formatting, emphasizing actions taken by reviewers.
- Improved styling for task comments and badges to enhance visibility and user interaction.
- Added new properties to support better tracking of review states and reviewer information in task details.
- Refactored UI components to ensure consistent spacing and layout across task-related dialogs and sections.
2026-03-14 13:52:30 +02:00
iliya
ce28f725f9 refactor: enhance task notifications and provisioning state management
- Updated task notification messages to include clearer formatting, emphasizing task status changes.
- Enhanced TeamProvisioningService to include a new `configReady` state, improving tracking of provisioning progress.
- Refactored the handling of team selection to prevent duplicate fetches during loading states, ensuring smoother user experience.
- Improved UI components for better interaction and visibility of task and team states.
2026-03-14 12:51:39 +02:00
iliya
ccc3f55243 refactor: improve ActivityTimeline and team mention entry sorting
- Updated ActivityTimeline to conditionally set `canBeLive`, `isTeamAlive`, `leadActivity`, and `leadContextUpdatedAt` based on the current lead session.
- Enhanced sorting of team mention entries in useStableTeamMentionMeta by introducing a comparison function for better organization of team data.
2026-03-14 12:21:31 +02:00
iliya
038c3f8bb4 refactor: improve task management protocols and enhance UI components
- Updated task management instructions in tasks.js and TeamProvisioningService.ts to clarify the process for handling follow-up work on tasks.
- Enhanced member briefing and task status protocols with critical reminders to ensure proper task handling.
- Refactored TeamDetailView to improve data consistency and tab management.
- Simplified MessagesPanel by integrating team status and pending replies for better user experience.
- Enhanced MarkdownViewer and ActivityItem components to support team click actions and improve interactivity.
- Introduced stable member management hooks to optimize rendering performance in team activity components.
2026-03-14 12:16:16 +02:00
iliya
c55787d6e1 feat: enhance task management protocols and UI components
- Updated task management instructions in tasks.js and TeamProvisioningService.ts to emphasize the importance of moving tasks to in_progress before performing follow-up work.
- Added critical reminders in member briefing and task status protocols to ensure proper task handling and prevent issues with comment-driven work.
- Refactored TeamDetailView to improve tab management and data consistency after hot module replacement.
- Simplified MessagesPanel by integrating the StatusBlock component, enhancing the display of team status and pending replies.
- Cleaned up teamSlice by removing unnecessary functions and ensuring default model handling for team launch parameters.
2026-03-14 00:09:05 +02:00
iliya
a6f9515966 refactor: clean up pricing.json and enhance CLI logs styling
- Removed deprecated entries for Claude models from pricing.json to streamline configuration.
- Added compact styling for CLI logs, including padding adjustments and hiding timestamps and chevrons for a cleaner look.
- Updated DisplayItemList to support customizable preview text length for better content display.
- Enhanced BaseItem and TextItem components to utilize the new preview length feature, improving text handling.
- Refactored MarkdownViewer to support team click actions, enhancing interactivity in team-related components.
2026-03-13 23:29:24 +02:00
iliya
daae1ba82b feat: add position prop to ClaudeLogsSection for flexible rendering
- Introduced an optional `position` prop to the ClaudeLogsSection component, allowing it to be rendered in either 'sidebar' or 'inline' formats.
- Updated the TeamDetailView to utilize the new `position` prop, ensuring consistent layout in the sidebar.
- Enhanced styling in ClaudeLogsSection to adapt based on the position, improving overall UI consistency and user experience.
2026-03-13 18:23:42 +02:00
iliya
b76be0f634 refactor: update review components to support global hunk offsets and total review hunks
- Introduced global hunk offset and total review hunks properties in ChangeReviewDialog, ContinuousScrollView, FileSectionDiff, and CodeMirrorDiffView components to enhance the review experience.
- Updated related components to utilize these new properties for better tracking and display of review progress across multiple files.
- Improved floating toolbar functionality in CodeMirrorDiffView to reflect the current hunk index and total count, enhancing user interaction during code reviews.
2026-03-13 17:02:38 +02:00
iliya
ba083c317b fix: update provisioning step label for clarity
- Changed the label for the 'monitoring' step from 'Wait for files' to 'Provisioning' to better reflect the current process.
- Adjusted regex patterns in mention linkification functions to improve matching accuracy for mentions in markdown.
2026-03-13 14:56:52 +02:00
iliya
0df13e206b feat: enhance CreateTeamDialog and member management features
- Updated CreateTeamDialog to include automatic team name suggestions and improved default team description handling.
- Enhanced member management with new utility functions for building member draft suggestions and color maps.
- Integrated task and team mention suggestions into MembersEditorSection and MemberDraftRow for better user experience.
- Refactored UI components for improved styling and functionality, ensuring consistent behavior across team management features.
2026-03-13 14:39:07 +02:00
iliya
70ee5f3b20 feat: enhance team provisioning service and UI components
- Updated TeamProvisioningService to clarify team creation steps and critical execution instructions for non-interactive CLI sessions.
- Improved error handling and process management to prevent unintended file deletions during process termination.
- Enhanced UI components in TeamDetailView and ProvisioningProgressBlock for better user experience and visibility of CLI logs.
- Refactored KanbanColumn styling for improved layout consistency and accessibility.
- Added logic to manage visibility of CLI logs based on the spawning process state.
2026-03-12 22:56:04 +02:00
iliya
81ac59e46b feat: enhance team control API with retry logic and fallback mechanisms
- Introduced a new method to resolve multiple control base URLs, allowing for better handling of API requests.
- Implemented retryable error handling for control API requests, improving robustness against transient failures.
- Updated provisioning and runtime state retrieval functions to utilize the new fallback logic.
- Enhanced tests to validate the new behavior, ensuring proper functionality under various scenarios.
- Added utility functions for managing retryable errors and control API state, improving code clarity and maintainability.
2026-03-12 19:23:48 +02:00
iliya
4a0b1aa698 feat: implement runtime control API for team management
- Added runtime control API to manage team lifecycle, including launch and stop functionalities.
- Integrated runtime state retrieval to provide current status of teams.
- Enhanced tests to validate the new runtime control features, ensuring proper functionality and error handling.
- Updated type definitions to include runtime API methods for better type safety and clarity in team management.
2026-03-12 17:01:44 +02:00
iliya
19f2fa76d0 feat: enhance cross-team functionality and UI components
- Added isOnline property to CrossTeamTarget and updated CrossTeamService to sort targets based on online status.
- Enhanced MessageComposer to fetch and display online status of teams, improving user experience in cross-team messaging.
- Updated various UI components to reflect changes in team online status, including visual indicators in the MessagesPanel and MessageComposer.
- Improved error handling and validation messages in CreateTeamDialog and other forms for better user feedback.
- Refactored CSS for field-level validation to enhance visual consistency across forms.
- Updated utility functions to support new online status features in team management.
2026-03-12 16:33:52 +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
3723eba5b4 refactor: update IPC handlers and types for lead activity and context usage
- Modified IPC handlers to return structured snapshots for lead activity, lead context usage, and member spawn statuses, enhancing data consistency.
- Introduced new types for LeadActivitySnapshot, LeadContextUsageSnapshot, and MemberSpawnStatusesSnapshot to improve type safety and clarity.
- Refactored TeamProvisioningService to manage provisioning runs more effectively, including updates to state management for active runs.
- Enhanced UI components to utilize the new data structures, improving the overall user experience in team management features.
2026-03-12 14:14:58 +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
5abd8a0ceb Merge branch 'dev' into feature/extensions-skills 2026-03-11 21:55:13 +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
946ccb692c feat: persist safe task change summaries
Restore terminal task-change badges quickly across restarts without trusting stale snapshots, and keep kanban card review actions compact so important controls fit reliably on one row.

Made-with: Cursor
2026-03-11 21:37:08 +02:00
iliya
4fa739d887 refactor: simplify KanbanGridLayout and update KanbanTaskCard accessibility
- Removed padding from the main div in KanbanGridLayout for a cleaner layout.
- Updated aria-label and button text in KanbanTaskCard to improve clarity and user experience when disapproving tasks.
2026-03-11 19:17:59 +02:00
iliya
864d397810 refactor: improve KanbanGridLayout with loading state and layout persistence enhancements
- Added LoadingKanbanGridLayout component to handle loading states more effectively.
- Implemented a delay for showing the resolved layout after loading is complete.
- Updated usePersistedGridLayout hook to initialize layout state from persisted data.
- Modified CSS to remove transitions for a smoother loading experience.
2026-03-11 19:06:59 +02:00
iliya
a216e73ede refactor: update Kanban components for improved layout management and persistence
- Removed the teamName prop from KanbanGridLayout to streamline component usage.
- Renamed GRID_SCOPE_PREFIX to GRID_SCOPE_KEY for clarity in layout management.
- Introduced LoadedKanbanGridLayout for better separation of concerns in rendering.
- Enhanced the usePersistedGridLayout hook to improve layout persistence handling.
- Updated KanbanBoard to utilize the new LoadedKanbanGridLayout, improving task organization.
2026-03-11 18:32:08 +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
2317c948ff feat: enhance Kanban board with grid layout and persistence improvements
- Introduced a new KanbanGridLayout component for improved task organization and layout management.
- Updated KanbanBoard to utilize the new grid layout, enhancing the visual structure of tasks.
- Added CSS styles for grid layout and resizing handles to improve user interaction.
- Refactored KanbanColumn to support additional customization options for headers and body styles.
- Enhanced persistence flows to rely on repository abstractions, promoting better separation of concerns in storage management.
- Updated package dependencies to include react-grid-layout and react-resizable for enhanced layout capabilities.
2026-03-11 17:18:24 +02:00
iliya
6bcb81d337 feat: implement structured task references and enhance task handling
- Introduced a new structured task reference format `{ taskId, displayId, teamName }` for consistent task mention persistence across UI and storage.
- Enhanced message handling in various components to support the new task reference structure, including normalization and validation.
- Updated task-related functions to accommodate optional task reference fields, improving task management and messaging capabilities.
- Improved rendering and navigation of task references in the UI, ensuring stable links across messages and comments.
- Refactored task reference utilities for better integration and usability within the application.
2026-03-11 15:14:19 +02:00
iliya
f48b75cbc7 feat: improve task reference handling and enhance UI components
- Updated ActivityItem to improve layout with overflow handling and minimum width adjustments.
- Enhanced CreateTaskDialog and ReviewDialog to strip encoded task references from input, ensuring cleaner task management.
- Refactored MembersJsonEditor to include a close button for better user experience.
- Improved SendMessageDialog and TaskCommentInput to handle encoded task references, enhancing message composition.
- Updated MentionableTextarea to support URL detection and parsing, improving text input functionality.
- Enhanced MembersEditorSection with a new button for adding members, improving UI consistency.
- Refactored task reference utilities to streamline task suggestion resolution and metadata handling.
2026-03-11 14:18:43 +02:00
iliya
057591060a feat: enhance UI components with dynamic theming and improved task handling
- Updated MemberBadge component to support an additional 'xs' size variant for better responsiveness.
- Refactored TaskTooltip to improve task retrieval logic, ensuring accurate task matching based on team context.
- Enhanced CreateTeamDialog and LaunchTeamDialog with dynamic background color adjustments based on theme.
- Improved OptionalSettingsSection to utilize theme-aware styles for better visual consistency.
- Updated MemberDraftRow to apply theme-based background and shadow effects for improved aesthetics.
- Enhanced MentionSuggestionList to include dynamic theming for task owner display and team colors.
- Refactored task reference utilities to improve task suggestion resolution and boundary handling.
2026-03-11 13:41:38 +02:00
iliya
b6ec408451 feat: enhance error handling and reporting in ErrorBoundary component
- Added functionality to copy error details to clipboard and create GitHub issue reports directly from the error boundary.
- Introduced a new state variable to manage the copy confirmation status.
- Enhanced UI with buttons for copying error details and reporting bugs, improving user experience during error handling.
- Updated the rendering logic to display additional context about the error and the copied status.
- Refactored the component to ensure proper cleanup of timeouts on unmount.
2026-03-11 13:28:44 +02:00
iliya
c5c41d2a0d feat: enhance task creation and management features
- Added new optional parameters 'createdBy' and 'from' to the task creation function for better tracking of task origins.
- Updated task execution logic to include the new parameters, improving task metadata handling.
- Enhanced tests to validate the new parameters and ensure correct task creation behavior.
- Refactored related components to accommodate the changes in task management, ensuring a seamless user experience.
2026-03-11 12:54:04 +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
9d2062c8c0 feat: overhaul UI components and enhance task management features
- Updated CLAUDE.md to reflect new AI agent team capabilities and features, including real-time task management and built-in code editor.
- Refactored PaneContainer to simplify drag-and-drop functionality by lifting DnD context to TabbedLayout.
- Removed SidebarHeader component and integrated its functionality into Sidebar for a cleaner layout.
- Enhanced Sidebar with a collapse button and improved task/session navigation.
- Updated TabBar to streamline tab management and improve user interaction.
- Introduced new drag-and-drop handling in TabbedLayout for better user experience across panes.
2026-03-10 23:34:58 +02:00
iliya
b1a00d67ed feat: add summaryOnly option for task changes retrieval and enhance caching mechanisms
- Introduced a summaryOnly option in the API for fetching task changes, allowing for lightweight responses that skip detailed snippets and timelines.
- Enhanced ChangeExtractorService to utilize the summaryOnly option, improving performance by conditionally caching task change data.
- Updated related components and services to support the new summaryOnly feature, ensuring consistent behavior across the application.
- Improved state management in TaskDetailDialog for task changes, including loading and error handling enhancements.
2026-03-10 22:22:42 +02:00
iliya
d6a0f4c3a1 feat: enhance task management features and improve messaging components
- Updated README to include new 'Solo mode' feature for single-agent task management.
- Refactored message handling in TeamDataService and TeamProvisioningService to improve deduplication of lead messages.
- Enhanced linkification in chat components to support team mentions.
- Introduced AnimatedHeightReveal for smoother task item animations in the sidebar.
- Improved task comment input to support chip draft persistence and team suggestions.
- Cleaned up CSS by removing unused animations related to task item entry.
2026-03-10 21:54:53 +02:00
iliya
4214427b38 fix: reset notification dismissal on team relaunch
When a user closes the 'Team launched' notification and then launches
the team again, the notification now correctly shows up again. Previously,
the dismissed state would persist across launches.

The fix unconditionally resets dismissed to false whenever a new
provisioning runId is detected, ensuring the banner appears for each
new launch attempt.
2026-03-10 20:44:04 +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
c93f3a4181 feat: enhance cross-team messaging with new parameters and recipient handling
- Added optional parameters 'conversationId' and 'replyToConversationId' to the cross-team messaging tool for improved threading.
- Updated the TeamMemberResolver to ignore tool-like cross-team inbox names, ensuring cleaner member resolution.
- Enhanced TeamProvisioningService to handle explicit cross-team reply instructions and prevent relaying tool-like names.
- Improved tests to validate new cross-team messaging features and recipient handling, ensuring robust functionality across services.
2026-03-10 15:40:42 +02:00
iliya
71143db3ac feat: update cross-team messaging protocol and enhance team provisioning
- Refactored cross-team message formatting to use a canonical XML-like tag structure for improved clarity and consistency.
- Introduced new attributes for cross-team messages, including 'from', 'depth', 'conversationId', and 'replyToConversationId'.
- Enhanced TeamProvisioningService to manage pending cross-team reply expectations, ensuring proper message handling and relay.
- Updated UI components to reflect changes in cross-team messaging, including stripping metadata from displayed messages.
- Added tests to validate new cross-team message handling and ensure proper functionality across services.
2026-03-10 14:48:55 +02:00
iliya
db08b0ae9e feat: enhance team provisioning instructions and context handling
- Added clarification on handling review requests in TeamProvisioningService to prevent redundant notifications.
- Introduced a new utility function to compute remaining context in contextMath, improving context management.
- Updated ChatHistory component to display remaining context urgency and percentage.
- Enhanced UserChatGroup with improved expand/collapse functionality and sticky "Show less" button.
- Updated tests to validate new context handling and messaging instructions.
2026-03-10 13:34:10 +02:00
iliya
c6e7757f42 feat: implement member spawn status tracking and online marking
- Added functionality to track member spawn statuses during team provisioning, including marking members as online when their first inbox message arrives.
- Introduced new IPC channels and handlers for fetching member spawn statuses.
- Enhanced TeamProvisioningService to manage spawn status updates and emit events for changes.
- Updated UI components to reflect member spawn statuses, improving visibility of member activity during provisioning.
- Added CSS animations for member spawn effects to enhance user experience.
2026-03-10 13:16:38 +02:00
iliya
d5c02fc61d refactor: remove token estimation logic from AIChatGroup and update TokenUsageDisplay for clarity
- Eliminated the calculation of thinking and text output tokens from AIChatGroup, simplifying the component.
- Updated TokenUsageDisplay to reflect changes, removing unnecessary props and adjusting context calculations.
- Ensured that context percentages are now based solely on total input tokens for improved accuracy.
2026-03-10 12:47:32 +02:00
iliya
5e4d10b950 feat: integrate action mode into messaging components and enhance team provisioning banner
- Updated TeamDetailView to include action mode in message sending functionality.
- Enhanced TeamProvisioningBanner to display a message based on the online status of team members.
- Added ActionModeSelector to SendMessageDialog for selecting action modes during message composition.
- Updated tests to validate action mode handling and ensure proper messaging behavior.
2026-03-10 12:43:03 +02:00
iliya
2d0d390442 feat: implement action mode handling in messaging components
- Added action mode validation in cross-team and team messaging handlers to ensure only valid modes ('do', 'ask', 'delegate') are accepted.
- Enhanced MessageComposer and TeamDetailView to support action mode selection and pass it through to message sending functions.
- Introduced utility functions to build action mode-specific message content for better clarity in communication.
- Updated tests to cover action mode scenarios, including validation and handling of invalid modes.
- Improved user experience by integrating action mode instructions into message delivery for leads.
2026-03-10 12:33:50 +02:00
iliya
2eb814bb70 feat: enhance team task handling and cross-team messaging
- Updated TeamDataService to attach kanban compatibility with reviewer information for tasks.
- Introduced new utility functions in TeamMemberResolver and TeamProvisioningService to handle cross-team pseudo recipients and improve member resolution.
- Enhanced ActivityTimeline and Member components to display current and review tasks more effectively.
- Added tests to validate the handling of cross-team inbox names and task assignments.
- Improved MessageComposer to support action mode selection for lead recipients.
2026-03-10 12:22:10 +02:00
iliya
c40c61f099 feat: add cross-team member name extraction and badge component
- Introduced a new utility function to extract member names from cross-team recipient strings.
- Added a CrossTeamTeamBadge component for displaying team names with consistent styling.
- Updated ActivityItem to utilize the new member name extraction and badge component, enhancing the display of cross-team messages.
- Enhanced tests to validate the functionality of the new member name extraction method.
2026-03-10 11:36:48 +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
4e82102ceb feat: enhance team member resolution and activity components
- Introduced a new method to avoid duplicate member names in TeamMemberResolver, ensuring case-insensitive uniqueness.
- Updated ActivityItem and ActivityTimeline components to utilize local member names for improved recipient qualification checks.
- Added tests to validate the handling of dotted names and deduplication in cross-team messaging scenarios.
2026-03-10 01:16:01 +02:00
iliya
0e7e34ab8a fix: show team color dots in message composer team selector
- Use getTeamColorSet/nameColorSet for accurate team colors matching
  SortableTab and TeamDetailView approach
- Always show team color dot, including next to cross-team lead badges
- Remove hash-based resolveTeamColor fallback in favor of real config colors
- Clean up unused imports (ArrowRightLeft, selectedTargetColor)
- Add TeamMemberResolver and TeamProvisioningService enhancements with tests
2026-03-10 01:10:21 +02:00
iliya
477c28ed30 feat: enhance cross-team messaging with message identity and metadata
- Added messageId and timestamp fields to CrossTeamSendRequest for better message tracking.
- Updated CrossTeamService to utilize these fields when sending messages, ensuring consistent message identity.
- Enhanced TeamProvisioningService to support cross-team sender functionality, allowing for improved message handling.
- Introduced parsing for cross-team reply prefixes to manage threaded conversations effectively.
- Updated tests to validate the inclusion of messageId and timestamp in cross-team messages.
2026-03-10 00:58:19 +02:00
iliya
e99cbe1335 feat: implement task change caching and enhance message identity in TeamInboxWriter
- Introduced a new caching mechanism for task changes in ChangeExtractorService to improve performance and reduce redundant data fetching.
- Updated TeamInboxWriter to preserve message identity fields such as messageId and timestamp for better deduplication across live and persisted messages.
- Enhanced SendMessageRequest interface to include additional fields like color, toolSummary, and toolCalls for richer message context.
- Improved log file reference resolution in TeamMemberLogsFinder to include filePath for better tracking of log sources.
2026-03-10 00:47:13 +02:00
iliya
e2afcbd3b7 feat: enhance team and member logs with lead information and caching
- Added leadName and leadColor properties to CrossTeamTarget and related interfaces for better team representation.
- Implemented caching for file mentions in TeamMemberLogsFinder to improve performance and reduce redundant file checks.
- Introduced deriveSinceMs method to calculate log search boundaries based on task creation times.
- Updated UI components to display lead information where applicable, enhancing user experience in messaging and logs.
2026-03-10 00:25:01 +02:00
iliya
4a2b8baaf5 feat: enhance cross-team messaging with conversation metadata
- Introduced conversationId and replyToConversationId to support threaded replies in cross-team messages.
- Updated message formatting to include conversation metadata in the message prefix.
- Enhanced CrossTeamService to infer conversation metadata when not explicitly provided.
- Improved tests to validate the handling of conversation IDs and ensure correct message routing.
- Updated UI components to display pending replies and manage cross-team interactions more effectively.
2026-03-10 00:04:53 +02:00
iliya
b09c4e4fd0 refactor: streamline message filtering in TeamDetailView
- Replaced manual message filtering logic with a dedicated utility function, `filterTeamMessages`, to enhance readability and maintainability.
- Removed the temporary lead member message filtering, simplifying the message handling process.
- Updated dependencies in the filtering logic to accommodate new parameters for time window and search query.
2026-03-09 23:24:28 +02:00
iliya
1f4c550ed3 refactor: remove deprecated electron.vite.config and update dependencies
- Deleted the obsolete electron.vite.config file to streamline the project structure.
- Updated package.json to remove the "agent-teams-controller" dependency and added "@radix-ui/react-hover-card".
- Enhanced the pnpm-lock.yaml to reflect the updated dependencies.
- Modified CrossTeamService and TeamProvisioningService to accommodate new color properties in team configurations.
- Improved message handling in various components to support mention links and member hover cards.
2026-03-09 23:19:37 +02:00
iliya
210b59884e feat: implement cross-team message deduplication and improve handling
- Added deduplication logic to prevent recent equivalent cross-team messages from being sent multiple times.
- Introduced functions to normalize message content and build deduplication keys.
- Updated CrossTeamService and CrossTeamOutbox to utilize deduplication during message sending.
- Enhanced tests to verify deduplication behavior and ensure correct message handling in various scenarios.
2026-03-09 22:50:13 +02:00
iliya
2c345dccfc fix: use OR logic for FROM/TO message filters
When both FROM and TO filters are active simultaneously,
messages matching either direction are shown instead of
requiring both conditions (which produced empty results
for same-member selections like FROM:bob + TO:bob).

Single-filter behavior remains unchanged.
2026-03-09 21:33:23 +02:00
iliya
d090a57e24 fix: improve message composer and comment read handling
- Updated MessageComposer to disable input when provisioning is active, enhancing user experience during team launches.
- Refactored useMarkCommentsRead hook to simplify comment read logic by removing IntersectionObserver, ensuring comments are marked as read on mount and when the comments list changes.
2026-03-09 20:56:12 +02:00
iliya
5e704ddc78 feat: add cross-team messaging UI with team selector and visual distinction
- Team selector dropdown in MessageComposer (left of recipient selector)
- Cross-team mode locks recipient to team-lead, disables attachments
- Sender copy written to fromTeam inbox with source 'cross_team_sent'
- Purple accent styling for cross-team messages (incoming + outgoing)
- "from team-x" / "to team-x" badges in ActivityItem
- Strip [Cross-team from ...] prefix in UI (kept in stored text for CLI)
- CSS variables for cross-team theme (dark + light)
- Store: fetchCrossTeamTargets (all teams), sendCrossTeamMessage action
- Tests updated for sender copy and formatted text prefix
2026-03-09 20:53:45 +02:00
iliya
dd29bcefcf feat: enhance team provisioning and activity timeline for improved messaging
- Updated TeamProvisioningService to mirror provisioning narration into the live cache, allowing visibility in Messages/Activity.
- Modified TeamDetailView to include current lead session ID for better context in team interactions.
- Enhanced ActivityTimeline to suppress reconnect boundaries based on current lead session ID, improving session clarity.
- Adjusted MessageComposer to clarify provisioning status in UI messages and placeholders, enhancing user awareness during team launches.
2026-03-09 19:42:22 +02:00
iliya
afb6e2794f feat: refine team provisioning and UI components for improved user experience
- Updated TeamProvisioningService to prevent duplicate display of provisioning narration in the Activity timeline.
- Enhanced CompactBoundary component with a cleaner design and improved interaction for expanding/collapsing content.
- Added new CSS variables for compact phase badge styling to enhance visual consistency.
- Modified TeamDetailView to include a collapsible status block for better organization of team information.
- Improved MessageComposer to reflect provisioning status in placeholders and notifications, enhancing user awareness during team launches.
- Updated ActivityTimeline to suppress session separators for reconnects within the same team, streamlining the user experience.
2026-03-09 18:15:00 +02:00
iliya
3f923c480e feat: improve task status handling and notification resilience
- Enhanced the startTask function to clear stale kanban entries when a task is reopened, ensuring accurate task tracking.
- Updated the addTaskComment function to handle notification failures gracefully, allowing comments to persist even if owner notifications fail.
- Added tests to validate the resilience of task comment notifications and ensure correct behavior under failure scenarios.
- Refactored related functions for improved clarity and maintainability in task management.
2026-03-09 17:09:15 +02:00
iliya
9adffb2295 feat: enhance task comment notifications and owner wake-up logic
- Introduced a new function to notify task owners on comments from other members, improving communication and responsiveness.
- Updated existing comment handling functions to include logic for notifying owners based on comment type and author.
- Added tests to validate the new notification behavior, ensuring that owners are correctly alerted for relevant comments while avoiding unnecessary notifications for self-comments.
- Refactored task management logic to streamline comment processing and notification handling.
2026-03-09 15:25:22 +02:00
iliya
9678d790cd feat: enhance task review process with new event tracking
- Introduced a new function to determine the current review state based on task history events, improving the accuracy of review status tracking.
- Updated the requestReview, approveReview, and requestChanges functions to append corresponding review events to the task history, ensuring comprehensive tracking of review actions.
- Refactored task management logic to utilize the new historyEvents structure, replacing the previous statusHistory implementation for better clarity and maintainability.
- Enhanced tests to validate the new review event handling and ensure correct behavior across various task states.
2026-03-09 14:52:38 +02:00
iliya
86a1abdefa feat: introduce 'needsFix' review state and enhance task management features
- Added 'needsFix' as a new review state to improve task tracking and management.
- Updated kanban and task handling functions to accommodate the new review state, including modifications to clearKanban and task status updates.
- Enhanced task briefing output to include sections for tasks needing fixes, pending tasks, and approved tasks, improving clarity in task management.
- Updated UI components to display the 'needsFix' state appropriately across various views, including task rows and tooltips.
- Refactored tests to cover new functionalities related to the 'needsFix' state, ensuring comprehensive coverage of task management scenarios.
2026-03-09 13:50:45 +02:00
iliya
9c63959a08 feat: enhance task management with improved notification and briefing features
- Refactored task creation logic to support explicit immediate start and maintain default pending status.
- Implemented notification system for task owners upon assignment, including detailed task instructions.
- Enhanced task briefing output to provide a compact view of assigned tasks, differentiating between in-progress, pending, and completed tasks.
- Added utility functions for better task management and streamlined task reference handling.
- Updated tests to cover new task assignment notifications and briefing functionalities, ensuring accurate task status representation.
2026-03-09 12:47:06 +02:00
iliya
7a7e2e1f12 refactor: remove legacy teamctl CLI support and update package description
- Removed the legacy teamctl CLI integration, including the associated source code and references in the main module.
- Updated the package description to reflect the current functionality without legacy support.
- Cleaned up build scripts by removing unnecessary executable permissions and legacy file handling.
- Adjusted tests and documentation to remove references to the deprecated CLI.
2026-03-08 22:50:57 +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
9cf00d724c feat: add --permission-prompt-tool stdio support with granular tool approval
- Add --permission-mode flag to explicitly override user's defaultMode
  from ~/.claude/settings.json (e.g. "acceptEdits") which otherwise
  takes precedence over CLI flags like --dangerously-skip-permissions
- skipPermissions=true: --permission-mode bypassPermissions (all auto)
- skipPermissions=false: --permission-prompt-tool stdio + --permission-mode default
  (all tool calls go through UI approval)
- Add auto-allow categories: file edits (Edit/Write/NotebookEdit),
  safe bash commands (git/pnpm/npm/ls etc.)
- Add configurable timeout: allow/deny/wait forever with race condition guard
- Add ToolApprovalSettingsPanel UI with collapsible settings
- Add shouldAutoAllow() utility with dangerous pattern detection
- Add IPC channel for syncing settings between renderer and main
- Persist settings in localStorage with per-field validation
2026-03-08 22:22:30 +02:00
iliya
73f1f5a781 revert: message loading delay 2026-03-08 22:20:36 +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
6cb3896bd7 Merge branch 'feature/extension-store' into dev 2026-03-08 01:08:19 +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
iliya
ecded5a799 Merge branch 'worktree-schedule-feature' into dev 2026-03-08 00:58:17 +02:00
iliya
1d3080f0f9 feat: add scheduled tasks with cron execution and rich log viewer
- Cron-based task scheduling with SchedulerService (create, pause, resume, delete)
- One-shot executor using `claude -p` with stream-json output for rich log display
- CLAUDECODE env var stripped to prevent nested session detection
- JsonScheduleRepository for persistent schedule/run/log storage
- Full IPC pipeline: handlers, preload bridge, API types, HttpClient stubs
- ScheduleSection UI with create/edit dialog, run history, status badges
- ScheduleRunLogDialog with CliLogsRichView (thinking blocks, tool cards, markdown)
- Real-time run status updates via store subscription
- Retry logic with configurable max retries and auto-pause on consecutive failures
- CronScheduleInput with human-readable descriptions via cronstrue
- 3 test suites: SchedulerService, ScheduledTaskExecutor, JsonScheduleRepository
2026-03-08 00:58:07 +02:00
iliya
df457eb9cd refactor: streamline task handling and remove legacy support
- Removed legacy overlay review state handling from taskStore, simplifying task normalization processes.
- Updated task retrieval methods to directly use normalized task data without fallback to legacy kanban states.
- Eliminated outdated tests related to legacy kanban overlay, focusing on modern task management mechanisms.
- Refactored TeamDataService and TaskBoundaryParser to enhance clarity and maintainability by removing unnecessary complexity.
- Updated related types and interfaces to reflect the removal of legacy support.
2026-03-08 00:24:48 +02:00
iliya
52ddbb2916 feat: enhance team data retrieval with optional message inclusion
- Updated the `getTeamData` method to accept an options parameter, allowing for conditional inclusion of messages in the response.
- Modified the `handleGetData` function to validate and process the new options, improving flexibility in data retrieval.
- Enhanced the `TeamDetailView` and message components to handle loading states and display messages based on the new options.
- Introduced a loading delay for messages to optimize UI performance during data fetching.
- Updated relevant types and interfaces to support the new options structure.
2026-03-07 23:50:27 +02:00
iliya
085ec144ac feat: implement stable message ID generation and enhance agent block reminders
- Added `ensureStableMessageIds` method to assign deterministic IDs to messages lacking a messageId, ensuring stability across UI updates.
- Introduced `normalizeMessageIdPart` for consistent message ID formatting.
- Enhanced `buildTeammateAgentBlockReminder` function to provide clear internal instructions for handling agent-only messages.
- Updated tests to verify the inclusion of hidden-instruction block rules in team prompts.
2026-03-07 22:13:26 +02:00