Commit graph

159 commits

Author SHA1 Message Date
iliya
3ce0ba098a Merge upstream/main 2026-02-22 15:53:02 +02:00
matt
9c04e90fdd
Merge pull request #57 from proxikal/fix/settings-http-server-status-ipc
fix: wrap HTTP_SERVER_GET_STATUS response in IpcResult envelope
2026-02-22 19:50:05 +09:00
matt
94a6599acc
Merge pull request #55 from proxikal/fix/perf-regression-agent-configs-and-search-stat
fix: resolve performance regression in transcript loading and session search
2026-02-22 19:32:13 +09:00
matt
40a467666f
Merge pull request #56 from proxikal/feat/sidebar-auto-open-on-project-select
fix: auto-expand sidebar when a project is selected
2026-02-22 19:31:37 +09:00
matt
39916f47bc
Merge pull request #64 from matt1398/dependabot/npm_and_yarn/npm_and_yarn-c59ac7ae80
chore(deps): bump the npm_and_yarn group across 1 directory with 4 updates
2026-02-22 19:28:00 +09:00
dependabot[bot]
2111272de8
chore(deps): bump the npm_and_yarn group across 1 directory with 4 updates
Bumps the npm_and_yarn group with 4 updates in the / directory: [happy-dom](https://github.com/capricorn86/happy-dom), @isaacs/brace-expansion, [ajv](https://github.com/ajv-validator/ajv) and [minimatch](https://github.com/isaacs/minimatch).


Updates `happy-dom` from 17.6.3 to 20.0.2
- [Release notes](https://github.com/capricorn86/happy-dom/releases)
- [Commits](https://github.com/capricorn86/happy-dom/compare/v17.6.3...v20.0.2)

Updates `@isaacs/brace-expansion` from 5.0.0 to 5.0.1

Updates `ajv` from 6.12.6 to 6.14.0
- [Release notes](https://github.com/ajv-validator/ajv/releases)
- [Commits](https://github.com/ajv-validator/ajv/compare/v6.12.6...v6.14.0)

Updates `minimatch` from 3.1.2 to 3.1.3
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/minimatch/compare/v3.1.2...v3.1.3)

---
updated-dependencies:
- dependency-name: happy-dom
  dependency-version: 20.0.2
  dependency-type: direct:development
  dependency-group: npm_and_yarn
- dependency-name: "@isaacs/brace-expansion"
  dependency-version: 5.0.1
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: ajv
  dependency-version: 6.14.0
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: minimatch
  dependency-version: 3.1.3
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-22 05:41:40 +00:00
matt
6f59ccdf38
Merge pull request #63 from matt1398/chore/issue-templates
Update issue templates
2026-02-22 14:31:58 +09:00
matt
3288831c7d
Update issue templates 2026-02-22 14:31:49 +09:00
proxy
8d652c4d2e fix: wrap HTTP_SERVER_GET_STATUS response in IpcResult envelope
The HTTP_SERVER_GET_STATUS handler returned a raw { running, port } object
while all other HTTP server handlers (start, stop) return { success, data }.
invokeIpcWithResult() in the preload expects the IpcResult<T> envelope and
treats a missing success field as failure, throwing 'Unknown error'.

This caused an unhandled promise rejection every time the Settings page
opened, because GeneralSection calls api.httpServer.getStatus() on mount.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-21 16:01:14 -05:00
proxy
c69d2414d6 fix: auto-expand sidebar when a project is selected
When the sidebar is collapsed and the user clicks a project, the session
list was silently updated behind the hidden panel with no visual feedback,
leaving the user confused about why nothing appeared to change.

Fixed by setting sidebarCollapsed: false in both selectProject and
selectRepository at the moment of selection. Both entry points are covered:
- selectRepository: used by the dashboard project cards
- selectProject: used by the command palette and keyboard shortcuts

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-21 15:56:40 -05:00
proxy
9e7d3b58a1 fix: resolve perf regression in transcript loading and session search
Two performance regressions introduced in recent PRs:

1. readAgentConfigs blocked transcript rendering (PR #50)
   The agent config IPC call was awaited on the critical path of
   fetchSessionDetail, preventing any transcript data from rendering
   until the filesystem read completed. On macOS this was especially
   noticeable due to security checks on first directory access.
   Fixed by making the call fire-and-forget: the transcript renders
   immediately and subagent color badges update asynchronously.
   Also set the project cache key optimistically before the async call
   to prevent duplicate in-flight requests on rapid navigation.

2. SessionSearcher stat()-called every session file on each search (PR #53)
   LocalFileSystemProvider.readdir() did not populate the optional
   mtimeMs field on FsDirent entries. The new SearchTextCache-based
   SessionSearcher fell back to an individual fsProvider.stat() call
   per session file when mtimeMs was missing, adding N extra filesystem
   round-trips on every search in local mode.
   Fixed by statting all entries concurrently inside readdir(), so
   mtimeMs is always populated and the stat fallback is never triggered.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-21 15:46:25 -05:00
matt
39d88e22a4
Merge pull request #50 from cesarafonseca/feat/subagent-type-color-badges
feat: color badges for subagent types with .claude/agents/ config support
2026-02-22 02:07:42 +09:00
matt
e2b24d078c
Merge pull request #53 from matt1398/feat/search-text-cache
feat: implement SearchTextCache and SearchTextExtractor for efficient…
2026-02-22 02:07:02 +09:00
matt
75dfcf2d50 feat: implement SearchTextCache and SearchTextExtractor for efficient text extraction and caching
- Added SearchTextCache for LRU caching of extracted search text with mtime invalidation.
- Introduced SearchTextExtractor for lightweight extraction of searchable text from session messages.
- Updated SessionSearcher to utilize the new extractor and cache for improved search performance.
- Added tests for SearchTextCache and SearchTextExtractor to ensure functionality and correctness.
2026-02-22 02:03:22 +09:00
Cesar Augusto Fonseca
f05bf9fac4 feat: color badges for subagent types with .claude/agents/ config support
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).
2026-02-21 13:52:59 -03:00
matt
05b7888c17
Merge pull request #51 from holstein13/feat/session-export
feat: add session export (Markdown, JSON, Plain Text)
2026-02-22 01:33:15 +09:00
Paul Holstein
d3b7d9dfeb feat: add session export (Markdown, JSON, Plain Text)
Add an export button to the TabBar header that lets users export
the current session as Markdown, JSON, or Plain Text. The button
appears between Search and Notifications, only for session tabs.

- sessionExporter.ts: formatters for all three formats + download trigger
- ExportDropdown.tsx: dropdown UI component with format selection
- TabBar.tsx: integration with conditional rendering for session tabs
- 51 new tests covering all formatters, edge cases, and download

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 11:18:52 -05:00
matt
f85c308672
Merge pull request #44 from KaustubhPatange/main
feat: search session globally across projects
2026-02-22 01:10:05 +09:00
matt
60b0364ab9
Merge pull request #45 from Psypeal/main
fix: correct context badge count to sum actual items instead of injection objects (#2)
2026-02-22 01:06:52 +09:00
matt
5f41cc95e9
Merge pull request #48 from cesarafonseca/fix/macos-traffic-light-title-spacing
fix: increase macOS traffic light content gap for better title spacing
2026-02-22 01:05:00 +09:00
Cesar Augusto Fonseca
b883e411f2 fix: increase macOS traffic light content gap for better title spacing 2026-02-21 12:11:55 -03:00
Psypeal
5a860d083b
Merge branch 'main' into main 2026-02-21 02:10:36 -08:00
Psypeal Gwai
6e9c6219b2 fix: correct context badge count to sum actual items instead of injection objects (#2) 2026-02-21 01:15:55 -08:00
KaustubhPatange
51294da034 feat: search session globally across projects 2026-02-21 14:34:25 +05:30
iliya
ae7a183112 Merge upstream/main 2026-02-21 10:39:25 +02:00
iliya
753ab14917 feat(team-managment): stable MVP 2026-02-21 09:47:24 +02:00
matt
ffa94f5e0f
Merge pull request #40 from cesarafonseca/fix/cwd-split-no-sessions
fix: prevent false cwd split that hides all sessions
2026-02-21 15:52:36 +09:00
matt
c9f67588b7
Merge pull request #43 from matt1398/chore/disable-builtin-triggers
feat: disable default notification triggers for better control
2026-02-21 15:51:18 +09:00
matt
c5db4e3303 feat: disable default notification triggers for better control
- Updated the default notification triggers to set 'enabled' to false for the .env File Access Alert, Tool Result Error, and High Token Usage triggers, allowing for more controlled notification management.
2026-02-21 15:50:59 +09:00
matt
d775581118 feat: add Homebrew installation instructions and badge to README
- Included a new badge for Homebrew installation in the README.
- Added Homebrew installation instructions for macOS users to enhance accessibility.
2026-02-21 14:13:29 +09:00
Cesar Augusto Fonseca
6c20a4d404 fix: prevent false cwd split that hides all sessions
Sessions without the cwd field (older JSONL format) were creating a
separate subproject group, even when all sessions with cwd shared the
same value. The orphan subproject got a relative fallback path that
failed git identity resolution, causing zero sessions to load on select.

Now only counts distinct real cwds when deciding whether to split,
treating cwd-less sessions as belonging to the same project.
2026-02-20 11:28:15 -03:00
matt
44da078b3b
Merge pull request #38 from matt1398/fix/context-badge
feat: enhance ContextBadge and SessionContextPanel with new FlatInjec…
2026-02-20 13:39:26 +09:00
matt
2fcf111f77 feat: enhance ContextBadge and SessionContextPanel with new FlatInjectionList view
- Updated ContextBadge to display the total count of tool outputs and task coordination items based on their breakdowns.
- Introduced FlatInjectionList component for a denested view of injections, allowing users to toggle between grouped and flat views in SessionContextPanel.
- Added state management for flat view toggle and integrated FlatInjectionList into the existing layout.
2026-02-20 13:27:34 +09:00
matt
7a264a882c
Merge pull request #37 from matt1398/feat/session-id
feat: add copy functionality to session context menu
2026-02-20 12:53:39 +09:00
matt
1590f04dc2 feat: add copy functionality to session context menu
- Introduced new options to copy Session ID and Resume Command in the SessionContextMenu component.
- Added visual feedback for copied actions with appropriate icons and labels.
- Updated menu height to accommodate new items and maintain layout consistency.
2026-02-20 12:53:08 +09:00
matt
12df279225
Merge pull request #36 from matt1398/feat/noti-tab-scope
feat: enhance notification handling with scoped actions
2026-02-20 12:48:30 +09:00
matt
0cd75a4f1a feat: enhance notification handling with scoped actions
- Updated `markAllNotificationsRead` and `clearNotifications` functions to support optional filtering by trigger name, allowing for more granular control over notification management.
- Adjusted the `NotificationsView` component to reflect the new scoped functionality, including updates to button labels and unread count displays based on active filters.
- Added tests to verify the behavior of scoped actions for marking notifications as read and clearing notifications.
2026-02-20 12:46:40 +09:00
matt
51e053a5b3
Merge pull request #33 from cesarafonseca/fix/mcp-tool-output-pretty-json
feat: improve MCP tool input/output rendering
2026-02-20 12:34:18 +09:00
Cesar Augusto Fonseca
a00c7a459b feat: improve MCP tool input/output rendering
Closes matt1398/claude-devtools#32
2026-02-19 19:09:53 -03:00
matt
4f1e4012cf
Merge pull request #30 from matt1398/dev
Dev
2026-02-20 01:38:56 +09:00
matt
4be6578d96
Merge branch 'main' into dev 2026-02-20 01:38:45 +09:00
matt
7574d0defc
Fix/linux sandbox permissions (#29)
* feat(package): add afterInstall script for chrome-sandbox permissions

- Updated package.json to include an afterInstall script that adjusts permissions for the chrome-sandbox on Linux.
- Added new afterInstall.sh script to ensure proper ownership and permissions for the sandbox file, enhancing security and functionality.

* chore(package): add deb configuration section in package.json

- Introduced a new "deb" section in package.json to specify post-installation scripts for Debian packages.
- Enhanced the package configuration for better support of Linux distributions.
2026-02-20 01:37:43 +09:00
matt
e570bbebde
feat(package): add afterInstall script for chrome-sandbox permissions (#27) (#28)
- Updated package.json to include an afterInstall script that adjusts permissions for the chrome-sandbox on Linux.
- Added new afterInstall.sh script to ensure proper ownership and permissions for the sandbox file, enhancing security and functionality.
2026-02-20 01:27:10 +09:00
matt
eeec1e7178
feat(package): add afterInstall script for chrome-sandbox permissions (#27)
- Updated package.json to include an afterInstall script that adjusts permissions for the chrome-sandbox on Linux.
- Added new afterInstall.sh script to ensure proper ownership and permissions for the sandbox file, enhancing security and functionality.
2026-02-20 01:26:27 +09:00
Cesar Augusto Fonseca
4ec272758c
fix: collect tool results from subagent messages with absent isMeta field (#23)
User messages in subagent JSONLs lack the isMeta field, defaulting to false.
An unconditional `continue` in the !isMeta branch skipped tool result
collection for these messages, causing all subagent tools to show
"No result received". Now we check for tool_result blocks before continuing,
allowing them to fall through to the result collection logic.
2026-02-19 14:07:30 +09:00
Sanath Samarasinghe
94f722d993
feat: add markdown preview toggle for Write tool (#21) 2026-02-19 14:03:16 +09:00
iliya
70915a152a feat(team-management): iteration 1, enhance Team Management feature with IPC integration and UI components
- 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.
2026-02-17 21:30:37 +02:00
iliya
e7d9e82ce8 feat(team-management): implement initial Team Management feature with Kanban support
- Added core documentation for the Team Management feature, including iteration goals, implementation plans, and design specifications.
- Introduced new files for team configuration, IPC channels, and UI components for team listing and Kanban board.
- Established a clear definition of done and scope for the first iteration, focusing on visible results and graceful degradation in the UI.
- Documented the messaging and task file formats, ensuring robust communication between team members.
- Implemented a Kanban design with defined states and transitions for task management.
2026-02-17 21:10:15 +02:00
matt
bd088ec71c
Update README.md 2026-02-17 20:31:06 +09:00
matt
1f6abf8df6
Merge pull request #19 from matt1398/dev
docs: add Product Hunt badge to README
2026-02-17 17:06:34 +09:00