- 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.
In packaged Electron apps process.cwd() does not point to the app
directory so the mcp-server bundle was never found. Additionally the
mcp-server dist was not included in the package at all.
Changes:
- Bundle mcp-server into a single self-contained ESM file (tsup
noExternal + createRequire banner for CJS compat)
- Ship mcp-server/dist/index.js and package.json via extraResources
- Resolve entry via process.resourcesPath when app.isPackaged is true
- Build controller + mcp-server in prebuild so dist exists before
electron-builder runs
- Add mcp-server/dist/index.js to CI verify steps on all platforms
- Improve error message to list checked paths for easier debugging
- Added a pre-warming mechanism for the interactive shell environment at app startup to improve PATH resolution for CLI services.
- Introduced getCachedShellEnv function to retrieve the cached shell environment synchronously, aiding in non-blocking PATH enrichment.
- Updated buildChildEnv function to incorporate enriched PATH from the cached shell environment, ensuring reliable access to user-installed binaries.
- Refactored CLI process environment setup to utilize the binary path for more accurate environment configuration.
- 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.
- Updated regex patterns in chipUtils and mentionLinkify to enhance boundary detection for mentions.
- Refactored taskChangeRequest to simplify earliest date calculation using array destructuring.
- Improved taskReferenceUtils by replacing character boundary checks with a more concise regex.
- Enhanced teamMessageFiltering to ensure boolean checks for message filtering conditions.
- Adjusted urlMatchUtils to refine URL matching regex for better accuracy.
- Updated crossTeam constants to include comments for regex patterns, improving code clarity.
- Removed unused CommentAttachmentPayload type from api.ts to clean up type definitions.
- Introduced McpInstallScope type for better type safety in mcp.ts.
- Enhanced extensionNormalizers to improve URL normalization and added tests for parseGitHubOwnerRepo function.
- Cleaned up pricing.ts by removing unnecessary eslint disable comments.
- Added tests for new functionality in chipUtils and crossTeam constants, ensuring robust coverage.
- 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.
- 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.
- 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.
- Added MEMBER_DELEGATE_DESCRIPTION constant to centralize the delegate instructions for action mode protocols, improving code maintainability.
- Updated buildActionModeProtocolText to utilize the new constant, enhancing clarity and reducing duplication.
- Enhanced messageStore and TeamProvisioningService to support filePath handling in attachments, improving metadata management.
- Updated type definitions to reflect the addition of MEMBER_DELEGATE_DESCRIPTION in the protocols interface.
- Introduced `buildActionModeProtocolText` function to generate context-free action mode protocol text, enhancing clarity for both leads and members.
- Updated the `protocols` interface to include the new function, promoting code reuse across different components.
- Refactored existing logic in `actionModeInstructions.ts` and `TeamProvisioningService.ts` to utilize the new protocol text builder, improving maintainability and consistency.
- Enhanced type definitions to reflect the addition of the new protocol functionality.
- Introduced a new function `buildProcessProtocolText` to generate context-free protocol text for background process registration.
- Updated the `protocols` interface to include the new function, promoting code reuse across member and lead prompts.
- Integrated the new protocol text into the team provisioning service for improved operational instructions.
- Enhanced type definitions to reflect the addition of the new protocol functionality.
- 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.
- Added instructions for retrieving task details and listing all tasks to the team operations documentation.
- Improved clarity on task management processes within the team provisioning service.
- Modified review request instructions to include an optional note parameter for better context during reviews.
- Added clarification flag instruction to team operations documentation, improving guidance for task 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.
- 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.
- Replace deprecated z.string().url() with z.string()
- Fix unbound-method: wrap stripAgentBlocks in arrow function
- Use T[] syntax instead of Array<T>
- Add agentBlocks and lookupMessage to controller type declarations
- Separate e2e tests from unit tests via dedicated vitest.e2e.config.ts
(e2e test requires built dist/index.js, can't run before build step)
- Increase stdio e2e timeout from 5s to 15s for slower CI environments
- 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)
- 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.
- Updated reviewTools to utilize slimTask for lightweight task representations, improving response efficiency.
- Enhanced taskTools to apply slimTaskForList for task listing, reducing data payloads.
- Introduced new slimTask and slimTaskForList functions in format utility for better task data management.
- Improved test coverage for slim task operations, ensuring accurate behavior in task handling and review processes.
- 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.
- 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.
- Simplified member spawn event handling by removing redundant checks for missing parameters.
- Introduced a new audit function to verify registered members against expected members post-provisioning, flagging any discrepancies.
- Updated logging to provide clearer warnings for unregistered members after provisioning.
- Enhanced test cases to ensure accurate behavior of spawn handling and auditing processes.
- 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.
- 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
- Updated `lookupMessage` function to enforce exact messageId matching, rejecting ambiguous cases.
- Improved documentation for `task_create_from_message` to clarify its requirements and usage.
- Enhanced `buildAssignmentMessage` and related functions to include messageId in task notifications for better provenance tracking.
- Added tests to validate the integration of messageId in task creation and relay processes, ensuring accurate message handling.
- Updated README to include new features such as task-specific logs and messages, task creation with attachments, and task context preservation.
- Introduced `stripAgentBlocks` function to remove agent-only blocks from text, improving message clarity.
- Enhanced `lookupMessage` function to handle ambiguous messageId scenarios more effectively.
- Added `sourceMessageId` and `sourceMessage` fields to capture original message details during task creation.
- Updated tests to reflect changes in message handling and ensure robust functionality.
- 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.
- 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.
- 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.
- 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.
- Removed `remark-stringify` from the project to avoid ESM→CJS interop issues in Electron's main process.
- Updated the text formatting pipeline to use a custom plain-text compiler instead of `remark-stringify`.
- Enhanced task ID matching logic in `TeamMemberLogsFinder` to accommodate both full UUIDs and their short display forms, improving flexibility in task identification.
- Added comments to clarify the changes in task ID handling and regex construction.