- Added functionality to mark delivered cross-team messages as read and restore reply hints in TeamProvisioningService.
- Introduced a new method to extract user text from incoming messages for better processing of native teammate messages.
- Removed outdated methods related to cross-team target team parsing to streamline the service.
- Enhanced tests to validate the new message handling and ensure proper functionality in live scenarios.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
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.
- 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.
- 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
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Added a new method to create and push live lead messages during team provisioning, enhancing real-time communication.
- Updated the event handling to ensure lead-message events only refresh team details, preventing unnecessary updates to team/task lists.
- Improved error handling in team data refresh to preserve existing data during provisioning and transient errors.
- Enhanced tests to cover new lead-message functionality and ensure proper behavior during team provisioning scenarios.
- 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.
- 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.
- 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
- Replaced legacy references with new runtimeHelpers in context, processStore, tasks, and review modules for improved maintainability.
- Introduced leadSessionId handling in review requests and approvals, ensuring consistent tracking of session identifiers across operations.
- Added new utility functions in runtimeHelpers for path management and process checks, streamlining task-related functionalities.
- Updated tests to validate the inclusion of leadSessionId in various workflows, enhancing the robustness of the messaging system.
- 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.
- 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.
- 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.
- Introduced a new `wrapAgentBlock` function to standardize the formatting of agent-only messages across the application.
- Updated the `requestReview` method to utilize the new agent block format, enhancing consistency in review request messages.
- Refactored legacy agent block handling to support both new XML-like and legacy fenced formats, ensuring backward compatibility.
- Enhanced tests to validate the new agent block formatting and ensure proper extraction of agent-only content from messages.
- Updated the addTaskComment method to include the author as 'user' for better context in task comments.
- Enhanced error handling in TeamProvisioningService during MCP config file writing to ensure proper cleanup on failure.
- Improved user interface elements in TeamDetailView and AddMemberDialog for better accessibility and responsiveness.
- Refined mention handling in MentionableTextarea to allow for smoother user interactions with task references.
- Adjusted CSS styles for better visual contrast in light theme, enhancing overall user experience.
- Updated the check:workspace script to include end-to-end testing for the MCP package.
- Added a new test:e2e script in the MCP server for running end-to-end tests.
- Refactored controller import logic to support default exports from the agent-teams-controller.
- Improved team deletion handling in IPC by ensuring team provisioning is stopped before deletion.
- Introduced a function to resolve the real node binary path for better compatibility in Electron environments.
- Enhanced task display in MemberCard and TaskDetailDialog components for improved user experience.