- Added ReviewDecisionStore to manage loading, saving, and clearing review decisions from disk.
- Introduced new IPC channels for loading, saving, and clearing decisions, enhancing the review process.
- Updated ChangeReviewDialog and related components to integrate decision persistence, improving user experience during reviews.
- Implemented debounced saving of decisions to optimize performance and reduce unnecessary writes.
- Added functionality for soft-deleting tasks, allowing tasks to be marked as deleted without permanent removal.
- Introduced new IPC channels for soft-deleting tasks and retrieving deleted tasks, enhancing task management capabilities.
- Updated TeamDataService and TeamTaskWriter to handle soft delete operations and maintain task integrity.
- Enhanced the UI components to support viewing and managing deleted tasks, improving user experience and task visibility.
- Implemented a TrashDialog for displaying deleted tasks, allowing users to review and manage their deleted items effectively.
- Added process registration and health tracking capabilities in TeamDataService, allowing teams to monitor and manage background processes effectively.
- Introduced new CLI commands for registering, unregistering, and listing processes, enhancing the command-line tool's functionality.
- Implemented periodic health checks for registered processes, automatically updating their status and notifying the UI of changes.
- Enhanced the FileWatcher to emit team change events for process updates, ensuring real-time synchronization with the UI.
- Updated the team detail view to display active CLI processes, improving visibility into team operations.
- Added documentation for new process management protocols and CLI commands to assist users in managing background processes.
- Introduced new IPC channel for retrieving lead activity state (active, idle, offline) for teams.
- Implemented lead activity state management in TeamProvisioningService, allowing real-time updates.
- Enhanced team detail and list views to display lead activity status, improving user awareness of team dynamics.
- Updated member components to reflect lead activity, providing better context for team members' statuses.
- Added localStorage fallback for comment read state management, ensuring data persistence across sessions.
- Added support for editing file content during reviews, allowing users to save changes directly to disk.
- Introduced new IPC channels for saving edited files and handling content updates.
- Enhanced the review toolbar with actions for saving and discarding edits, along with indicators for edited files.
- Implemented keyboard shortcuts for improved navigation and editing experience.
- Integrated a new component for rendering CLI logs in a rich format, replacing the previous raw JSON display.
- Updated state management to track edited contents and handle file edits effectively.
Brings in upstream changes:
- Session analysis reports (overview, cost, tokens, tools, git, quality)
- Unified cost calculation with LiteLLM pricing data
- Custom title bar for Linux with native toggle
- Auto-expand AI response groups setting
- MoreMenu toolbar component
- Various fixes (window drag, Ctrl+R, notification guard)
All merge conflicts resolved preserving both fork features (team management,
agent language, fullscreen, diff view) and upstream additions.
- Added 'fallback' confidence level to TaskChangeSet for Phase 3 Tier 4.
- Updated line counting logic in ChangeExtractorService to use `jsdiff.diffLines` for accurate added/removed line counts.
- Introduced new IPC handlers for agent and task changes, improving the review process.
- Enhanced error handling in review handlers with a local wrapReviewHandler function.
- Updated documentation to reflect changes in task scoping and content extraction methods.
- Improved local storage management for viewed files, ensuring compatibility with new formats.
- Added agent block usage policy to TeamProvisioningService for better message formatting control.
- Introduced a comprehensive implementation plan for the diff view feature, structured in four phases: MVP (read-only), accept/reject per hunk, per-task scoping, and enhanced features.
- Phase 1 includes a read-only diff view per agent, utilizing JSONL data to display file changes.
- Defined new types for file changes and review data, and established IPC channels for fetching member changes and reading file content.
- Developed backend services for extracting file changes and aggregating review data, alongside frontend components for displaying diffs and managing state.
- Subsequent phases will enhance the diff view with accept/reject functionality, task-specific change scoping, and improved user experience features.
- Added IPC channel for updating a team member's role, including validation for team and member names.
- Implemented `handleUpdateMemberRole` function to manage role changes and notify the team lead of updates.
- Updated `TeamDataService` to support role changes and ensure data consistency.
- Enhanced UI components to allow role editing and display loading states during updates.
- Integrated role update handling in the team management dialogs, improving user experience.
- Introduced support for updating the agent language in the configuration, including a new callback in `initializeConfigHandlers`.
- Enhanced `handleUpdateConfig` to trigger the new language update callback when the agent language changes.
- Updated validation logic to ensure the agent language is a non-empty string.
- Modified the `TeamConfigReader` and `TeamProvisioningService` to handle the new language setting, ensuring teams are notified of language changes.
- Adjusted various components to accommodate the new task start and cancellation features, improving task management in the Kanban board.
- Added `provisioningOutputParts` to `ProvisioningRun` for accumulating assistant text during the provisioning phase.
- Updated `updateProgress` and `emitLogsProgress` functions to include the new `assistantOutput` in the progress state.
- Enhanced `ProvisioningProgressBlock` to display live assistant output using `MarkdownViewer`.
- Modified `TeamProvisioningBanner` to pass the new `assistantOutput` prop for rendering in the UI.
- Introduced a comprehensive implementation plan for the diff view feature, structured in four phases: MVP (read-only), accept/reject per hunk, per-task scoping, and enhanced features.
- Phase 1 includes a read-only diff view per agent, utilizing JSONL data to display file changes.
- Defined new types for file changes and review data, and established IPC channels for fetching member changes and reading file content.
- Developed backend services for extracting file changes and aggregating review data, alongside frontend components for displaying diffs and managing state.
- Subsequent phases will enhance the diff view with accept/reject functionality, task-specific change scoping, and improved user experience features.
- Added IPC channel for updating a team member's role, including validation for team and member names.
- Implemented `handleUpdateMemberRole` function to manage role changes and notify the team lead of updates.
- Updated `TeamDataService` to support role changes and ensure data consistency.
- Enhanced UI components to allow role editing and display loading states during updates.
- Integrated role update handling in the team management dialogs, improving user experience.
- Introduced support for updating the agent language in the configuration, including a new callback in `initializeConfigHandlers`.
- Enhanced `handleUpdateConfig` to trigger the new language update callback when the agent language changes.
- Updated validation logic to ensure the agent language is a non-empty string.
- Modified the `TeamConfigReader` and `TeamProvisioningService` to handle the new language setting, ensuring teams are notified of language changes.
- Adjusted various components to accommodate the new task start and cancellation features, improving task management in the Kanban board.
- Added `provisioningOutputParts` to `ProvisioningRun` for accumulating assistant text during the provisioning phase.
- Updated `updateProgress` and `emitLogsProgress` functions to include the new `assistantOutput` in the progress state.
- Enhanced `ProvisioningProgressBlock` to display live assistant output using `MarkdownViewer`.
- Modified `TeamProvisioningBanner` to pass the new `assistantOutput` prop for rendering in the UI.
- calculateTieredCost: use `== null` instead of `!` so a 0 tiered rate
is not treated as missing
- calculateMessageCost: include cacheReadTokens and cacheCreationTokens
in the unknown-model warning condition
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add console.warn when calculateMessageCost encounters an unknown model,
so pricing.json gaps are visible rather than silently returning $0.
Update tests to expect the warning.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Create a unified pricing module in src/shared/utils/ that wraps
resources/pricing.json with typed lookup, tiered cost calculation,
and display pricing helpers. This is the foundation for consolidating
the dual cost calculation systems (main jsonl.ts + renderer sessionAnalyzer).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Updated `dev:kill` script to use a dedicated Node.js script for improved process termination.
- Enhanced `TeamProvisioningService` to trigger team refresh events for live lead replies, improving message handling.
- Refactored message deduplication logic in `handleGetData` to prevent duplicate messages from lead sessions and lead processes.
- Introduced `validateOpenPathUserSelected` function to allow user-selected paths while enforcing security checks.
- Improved UI components in `TeamListView` and `ActivityItem` for better user experience and accessibility.
- Added progress bar for task completion in `DashboardView`, enhancing task tracking visibility.
- Added `stopTeam` method in `TeamProvisioningService` to terminate running processes for teams, improving resource management.
- Introduced IPC channel `TEAM_STOP` to handle stop requests from the renderer process.
- Enhanced message relaying for team leads by implementing `relayLeadInboxMessages`, ensuring timely communication of unread messages.
- Updated UI components to support stopping teams and display pending replies, enhancing user experience during team management.
- Updated the getLogsForTask function to accept optional parameters for owner and status, allowing for more granular log retrieval based on task state.
- Modified the TeamMemberLogsFinder to include owner's session logs when the task is in progress, improving visibility into ongoing activities.
- Introduced new UI components for better task tracking, including ActiveTasksBlock and ProvisioningProgressBlock, enhancing user experience during team provisioning.
- Refactored related components to support the new functionality, ensuring seamless integration across the application.
- Introduced TEAM_GET_LOGS_FOR_TASK IPC channel to retrieve session logs related to specific tasks.
- Implemented handleGetLogsForTask function to validate inputs and fetch logs for a given task.
- Updated TeamMemberLogsFinder to include findLogsForTask method for session log retrieval based on task ID.
- Enhanced UI components to support displaying logs for tasks, improving task management and visibility.
- Updated related services and components to accommodate the new logging functionality.
These changes aim to enhance task tracking and improve collaboration within teams by providing access to relevant session logs.
- Add toggle in settings to auto-expand AI response groups
- Auto-expand new AI groups on live session refresh
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Added WINDOW_FULLSCREEN_CHANGED and WINDOW_IS_FULLSCREEN constants for fullscreen state management.
- Enhanced main window to notify the renderer when entering or leaving fullscreen mode.
- Implemented IPC handlers to check fullscreen status and notify changes to the renderer.
- Introduced useFullScreen hook in the renderer to manage fullscreen state and adjust UI accordingly.
These changes improve user experience by allowing dynamic adjustments to the UI based on fullscreen status.
- Implemented line counting for NotebookEdit and Bash commands in MemberStatsComputer to improve task tracking accuracy.
- Updated TeamDataService to include kanban column information for tasks, enhancing task visibility.
- Refactored Sidebar and GlobalTaskList components to support task filtering by status and team, improving user interaction.
- Introduced TaskFiltersPopover for better task filtering options, allowing users to filter tasks by status and unread comments.
- Enhanced UI components for better responsiveness and user experience in task management.
These changes aim to improve task management efficiency and enhance collaboration within teams.
- Added a new Contributor License Agreement (CLA) document to clarify contribution terms.
- Updated the license from MIT to GNU Affero General Public License v3.0 (AGPL-3.0).
- Introduced task comments feature, allowing users to add comments to tasks with validation for input length and content.
- Enhanced the TeamDataService to handle adding comments and sending notifications to task owners.
- Updated UI components to display comments and allow users to submit comments via a text area.
- Integrated task comments into the task detail dialog for better user interaction.
These changes aim to improve task management and enhance collaboration within teams.
- teams.ts: add type validation in handleCreateConfig for displayName/description/color
- CreateTaskDialog: scope draft keys per team to prevent cross-team leakage
- agentBlocks.ts: replace stateful singleton regex with factory function
- teams.test.ts: add missing channel assertions and use os.tmpdir()
- SendMessageDialog: move setState out of useEffect to render phase
- TeamMemberLogsFinder: remove unused projectId destructuring
- MentionableTextarea: add eslint-disable description
- useMentionDetection: replace deprecated wordWrap with overflowWrap
- Introduced TEAM_START_TASK IPC channel to facilitate starting tasks and notifying agents.
- Updated task creation to include an option for immediate start, enhancing user experience.
- Enhanced task notifications with detailed instructions for agents upon task assignment.
- Improved team member logs handling and metadata extraction for better task tracking.
These changes aim to streamline task management and improve team collaboration efficiency.
- Added member color assignment using a new utility function for better visual representation in the UI.
- Updated team member prompts to encourage brief introductions, aligning with project guidelines.
- Introduced a draft persistence mechanism for message and task creation dialogs to enhance user experience.
- Refactored team configuration handling to support new member structures and improve data integrity.
This update aims to streamline team interactions and improve the overall user experience in team management features.
Subagent badges now show distinct colors instead of generic gray.
Colors are resolved from the project's .claude/agents/*.md frontmatter
(color field), with deterministic hash-based fallback for unconfigured types.
New AgentConfigReader service reads agent definitions via IPC, cached
per project root to avoid redundant disk reads on session refreshes.
Team member colors remain unaffected (team branch has priority).
- Introduced TeamDataService for managing team-related data.
- Updated IPC handlers to include team management functionalities.
- Added new API channels for team listing and integrated them into the UI.
- Enhanced the renderer components to support team views and interactions.
- Implemented utility functions for team directory path management.
- Added handlers for hiding and unhiding individual and multiple sessions in the configuration.
- Updated the ConfigManager to manage hidden sessions, including methods for bulk operations.
- Enhanced the IPC channels and preload scripts to support new session visibility features.
- Integrated UI components to allow users to toggle session visibility in the sidebar and context menus.
- Updated state management to reflect hidden sessions and support multi-select actions for bulk hiding/unhiding.
- Implemented a new IPC handler to find Windows UNC paths for WSL Claude root candidates.
- Introduced utility functions to list WSL distributions and resolve their home paths.
- Updated the configuration handlers to include the new functionality for detecting WSL Claude roots.
- Enhanced the UI to allow users to select WSL Claude root paths, including handling cases where the projects directory is missing.
- Refactored related components to integrate the new WSL functionality seamlessly.