Commit graph

914 commits

Author SHA1 Message Date
777genius
42850e5e97 Merge remote-tracking branch 'origin/dev' into spike/team-snapshot-split-plan 2026-04-18 12:29:28 +03:00
777genius
f536e7e715 fix(ci): restore workspace validation 2026-04-18 12:20:37 +03:00
777genius
bfc6a38668 fix(context): unify context usage metrics 2026-04-18 12:10:51 +03:00
777genius
1a04b49d24 fix(team): support anthropic opus 4.7 team models 2026-04-18 12:09:26 +03:00
777genius
0eb38387a3 fix(extensions): finalize stash merge reconciliation 2026-04-18 11:44:55 +03:00
777genius
51376e2620 chore(merge): sync dev into spike/team-snapshot-split-plan 2026-04-18 11:32:29 +03:00
777genius
72f8d4e786 Merge remote-tracking branch 'origin/dev' into dev 2026-04-18 10:38:21 +03:00
777genius
787f5f28ed chore: rename app branding to Agent Teams UI 2026-04-18 10:34:47 +03:00
SardorBek Sattarov
a42ab3096f
feat(team): auto-resume rate-limited teams when the limit resets 2026-04-18 10:21:23 +03:00
777genius
351244ffdb fix(team): harden refresh races and loading state 2026-04-17 23:03:58 +03:00
777genius
18d9f2b4a4 fix(ci): restore workspace checks 2026-04-17 22:45:19 +03:00
777genius
c70ebfe9a5 fix(extensions): clarify multimodel plugin roadmap 2026-04-17 21:36:16 +03:00
777genius
79050cc318 fix(extensions): tone down script-only skill advisories 2026-04-17 21:32:04 +03:00
777genius
0648509a82 fix(extensions): keep provider placeholders during bootstrap 2026-04-17 21:17:47 +03:00
777genius
6f4fd254cf fix(extensions): show provider loading placeholders 2026-04-17 21:10:26 +03:00
777genius
14ee2fc550 fix(extensions): reset stale codex skill filters 2026-04-17 21:07:11 +03:00
777genius
b0c4319ba3 fix(extensions): wait for runtime hydration before mcp diagnostics 2026-04-17 21:05:27 +03:00
777genius
f8c11af5b9 fix(extensions): harden mcp diagnostics runtime guards 2026-04-17 21:03:12 +03:00
777genius
c17a08c2d3 fix(extensions): use legacy-safe provider capability fallback 2026-04-17 21:00:23 +03:00
777genius
19c6144ef5 fix(extensions): keep skills banner provider-aware 2026-04-17 20:57:59 +03:00
777genius
4775d4bc45 fix(extensions): use runtime-aware detail copy 2026-04-17 20:55:22 +03:00
777genius
767dfde4cb fix(extensions): use provider-aware runtime copy 2026-04-17 20:51:25 +03:00
777genius
0287f83274 fix(extensions): avoid misleading mcp diagnostics command copy 2026-04-17 20:30:09 +03:00
777genius
e2c5c8e99b fix(extensions): avoid success banner when no visible providers remain 2026-04-17 20:28:35 +03:00
777genius
7c21d14bdf fix(extensions): keep dashboard banner provider-aware 2026-04-17 20:26:44 +03:00
777genius
1ee139b66a fix(extensions): keep extensions entry points available before auth 2026-04-17 20:24:45 +03:00
777genius
7b16cfe73b fix(extensions): treat multimodel flavor as runtime-aware before hydration 2026-04-17 20:22:29 +03:00
777genius
3446ef0100 fix(extensions): harden hidden provider runtime handling 2026-04-17 20:20:27 +03:00
777genius
27a54f7f32 fix(extensions): tighten plugin applicability copy 2026-04-17 19:47:41 +03:00
777genius
88ac0acdf8 fix(extensions): preserve mcp dialog state on runtime hydration 2026-04-17 15:06:36 +03:00
777genius
1b1c27e9c6 fix(extensions): preserve api key writes on refresh failures 2026-04-17 15:03:34 +03:00
777genius
8075ed10e7 fix(extensions): enforce runtime capability guards for mcp writes 2026-04-17 14:58:09 +03:00
777genius
14a38212c2 fix(extensions): gate codex skill overlays by runtime 2026-04-17 14:51:58 +03:00
777genius
5007f3eebb fix(extensions): scope mcp api key autofill by install target 2026-04-17 14:44:05 +03:00
777genius
24782411f3 fix(extensions): scope plugin operation state by project 2026-04-17 14:39:26 +03:00
777genius
33917a3161 fix(extensions): support project-scoped api keys 2026-04-17 14:34:46 +03:00
777genius
489e3eb967 fix(extensions): scope mcp renderer state by project 2026-04-17 14:28:25 +03:00
777genius
81c59440bf fix(extensions): harden mcp diagnostics output 2026-04-17 14:21:17 +03:00
777genius
fd4fd135a1 fix(extensions): hide gemini runtime card 2026-04-17 13:53:39 +03:00
777genius
22209ba958 feat(extensions): support multimodel global mcp scope 2026-04-17 13:23:30 +03:00
777genius
e01858ac98 feat(extensions): add codex-only skills overlays 2026-04-17 13:09:30 +03:00
777genius
f7c1dc16c4 fix(sidebar): polish project group headers 2026-04-17 12:43:51 +03:00
777genius
2bb290bf8a fix(tasks): default global task grouping to project 2026-04-17 10:15:41 +03:00
777genius
b3427a64ab feat(extensions): surface provider-aware capabilities in UI 2026-04-17 10:08:33 +03:00
777genius
096437b2fd feat(extensions): add provider-aware runtime adapters 2026-04-17 10:08:13 +03:00
777genius
f92b77e3af chore(merge): sync dev into team snapshot split spike 2026-04-17 08:54:27 +03:00
777genius
1de59cb84f fix(extensions): validate skill import source paths locally 2026-04-16 23:18:02 +03:00
777genius
2cc7dc5178 fix(extensions): validate skill folder names before review 2026-04-16 23:15:09 +03:00
777genius
1d2e33f5d9 fix(extensions): preserve skill detail refresh context 2026-04-16 23:13:22 +03:00
777genius
2201b54f28 fix(extensions): reset stale skill review state on close 2026-04-16 23:11:13 +03:00
777genius
2142518461 fix(extensions): avoid premature skill import folder defaults 2026-04-16 23:09:15 +03:00
777genius
86bc4ce4e8 fix(extensions): sanitize suggested skill folder names 2026-04-16 23:08:00 +03:00
777genius
4578f11dd7 fix(extensions): unlock structured skill editing after reset 2026-04-16 23:06:05 +03:00
777genius
3e5ec7c173 fix(extensions): preserve skill project context in dialogs 2026-04-16 23:03:55 +03:00
777genius
c02a12b3f6 fix(extensions): keep skill import destination in sync 2026-04-16 23:01:33 +03:00
777genius
66cf1443b2 fix(extensions): scope mcp operation state by install scope 2026-04-16 22:57:22 +03:00
777genius
bb60bbb0ec fix(ci): restore workspace validation 2026-04-16 22:52:56 +03:00
777genius
94291f50f0 fix(extensions): require project context for local mcp scope 2026-04-16 22:51:05 +03:00
777genius
a3c5b7dca9 fix(extensions): honor local mcp scope precedence 2026-04-16 22:48:43 +03:00
777genius
7418643dc9 fix(extensions): make mcp scope actions scope-aware 2026-04-16 22:45:34 +03:00
777genius
0420428281 fix(extensions): support project-scoped mcp installs 2026-04-16 22:39:03 +03:00
777genius
3f03bc720a fix(extensions): dedupe MCP detail API key lookups 2026-04-16 22:32:47 +03:00
777genius
0d6276ea0b fix(extensions): honor installed MCP targets in manage actions 2026-04-16 22:31:56 +03:00
777genius
acabe52ae7 fix(extensions): stop MCP browse auto-retries after errors 2026-04-16 22:28:08 +03:00
777genius
113f9105fb fix(extensions): ignore stale MCP search responses 2026-04-16 22:26:03 +03:00
777genius
495d8514c1 fix(extensions): clear detail selections on sub-tab switch 2026-04-16 22:23:46 +03:00
777genius
0d19e5174f fix(extensions): use tab project context for plugin actions 2026-04-16 22:22:05 +03:00
777genius
57f546bab0 fix(extensions): scope plugin operation state by install scope 2026-04-16 22:16:38 +03:00
777genius
821e23e633 Merge branch 'dev' into spike/team-snapshot-split-plan 2026-04-16 22:11:16 +03:00
777genius
4502152427 fix(extensions): support local plugin scope actions 2026-04-16 22:09:52 +03:00
777genius
2b8062dfa3 fix(extensions): cancel stale plugin success timers 2026-04-16 22:07:22 +03:00
777genius
560174d98c fix(extensions): reset stale plugin action state on project switch 2026-04-16 22:05:28 +03:00
777genius
09b5b4626f fix(extensions): tighten plugin catalog fallback state 2026-04-16 22:04:02 +03:00
777genius
afad52f506 fix(extensions): prevent stale plugin catalog races 2026-04-16 22:01:59 +03:00
777genius
6e875e5a40 fix(extensions): harden plugin action states 2026-04-16 21:59:23 +03:00
777genius
847643828d fix(extensions): make plugin actions scope-aware 2026-04-16 21:56:12 +03:00
777genius
f2c5d52bdc fix(extensions): scope plugin install state to active project 2026-04-16 21:55:50 +03:00
777genius
82a0e3e6bb Merge branch 'dev' into spike/team-snapshot-split-plan 2026-04-16 21:03:13 +03:00
777genius
ece2991f96 feat(team): enhance team provisioning with runtime model handling
- Added support for live runtime model metadata in team provisioning.
- Implemented functions to extract and manage CLI flag values for team members.
- Updated member specifications to include effective models based on provider defaults.
- Enhanced UI dialogs to check selected providers in parallel, improving responsiveness.
- Added tests for handling model unavailability during team bootstrap and launch processes.
2026-04-16 21:02:33 +03:00
777genius
53c4204d89 fix(agent-graph): add launch status labels and pan guards 2026-04-16 20:58:40 +03:00
777genius
47eb461730 fix(types): resolve post-merge regressions 2026-04-16 19:45:31 +03:00
777genius
6cf0c0d65e chore(merge): sync dev into team snapshot split spike 2026-04-16 19:44:01 +03:00
777genius
ac1c99ac1f feat(cliInstaller): add model verification for providers
- Introduced CLI_INSTALLER_VERIFY_PROVIDER_MODELS IPC channel for on-demand model verification.
- Implemented handler for verifying provider models in the CliInstallerService.
- Enhanced CLI installation status management with model verification state and availability.
- Updated related components to support model verification feedback in the UI.
2026-04-16 19:41:23 +03:00
777genius
0b97cc0794 fix(agent-graph): stabilize startup slots and launch hud 2026-04-16 14:57:42 +03:00
777genius
fd76944141 chore(merge): sync dev into team snapshot split spike 2026-04-16 13:19:20 +03:00
777genius
345fd3e41d fix(recent-projects): recover codex projects after degraded startup 2026-04-16 13:17:07 +03:00
777genius
9437220133 fix(recent-projects): recover codex projects after degraded startup 2026-04-16 13:16:28 +03:00
777genius
4630442149 fix(agent-graph): stabilize slot layout interactions 2026-04-16 13:05:16 +03:00
777genius
c303a236a5 feat(agent-graph): unify lead slot layout defaults 2026-04-16 11:26:30 +03:00
777genius
1173a4942a refactor(team): split team detail snapshot from messages activity 2026-04-15 21:54:38 +03:00
777genius
2cfbfef3b3 fix(team): recover root member session logs 2026-04-15 17:39:11 +03:00
777genius
8398d29fc0 fix(team): recover root member session logs 2026-04-15 17:38:21 +03:00
777genius
03dda6b486 refactor(agent-graph): replace store usage with context hooks for team data retrieval
- Updated components in the agent-graph renderer to utilize context hooks instead of the store for accessing team data.
- Introduced `useGraphActivityContext` and `useGraphMemberPopoverContext` hooks to streamline data management.
- Refactored `GraphBlockingEdgePopover`, `GraphNodePopover`, and `GraphTaskCard` components for improved performance and readability.
- Enhanced imports in `MemberDetailDialog` for better organization.
2026-04-15 16:42:05 +03:00
777genius
aed08113e6 feat(agent-graph): integrate stable slot layout for improved node positioning and interaction
- Added stable slot layout support in various components, enhancing the layout and interaction of nodes.
- Updated TypeScript configuration to include new paths for the agent-graph package.
- Refactored layout logic in activity lanes and kanban to accommodate stable slot assignments.
- Enhanced GraphView and GraphControls to support sidebar visibility toggling and owner slot drop handling.
- Introduced new types for layout management in GraphDataPort and related files.
- Updated README to include stable slot layout documentation.
2026-04-15 16:18:11 +03:00
777genius
af1caf90e8 Merge branch 'worktree/tmux-hybrid-installer-plan' into dev
# Conflicts:
#	docs/FEATURE_ARCHITECTURE_STANDARD.md
#	eslint.config.js
#	src/preload/index.ts
#	src/renderer/api/httpClient.ts
#	src/renderer/components/dashboard/TmuxStatusBanner.tsx
#	tsconfig.node.json
2026-04-14 22:11:41 +03:00
777genius
e5d85ec873 Merge branch 'dev' of https://github.com/777genius/claude_agent_teams_ui into dev 2026-04-14 22:07:15 +03:00
777genius
90b637c6d8 refactor: update README and security documentation; enhance activity lane layout and kanban integration 2026-04-14 22:06:50 +03:00
777genius
68378c603c feat: prioritize recent projects by explicit opens 2026-04-14 20:58:54 +03:00
777genius
ef44542f1d feat(tmux): add hybrid installer flow 2026-04-14 20:07:57 +03:00
777genius
db7c4fe160 fix: restore team project highlight matching 2026-04-14 18:40:17 +03:00
777genius
8a7c1a764b chore: clean team list view warnings 2026-04-14 18:24:13 +03:00
777genius
f7fb938d34 fix: remove team project priority banner 2026-04-14 18:23:42 +03:00
777genius
6f8099ad32 fix: align team card accent border width 2026-04-14 18:19:58 +03:00
777genius
0bbeac8c84 fix: keep team project selection as sort priority 2026-04-14 18:18:52 +03:00
777genius
43f2426a9b fix: sync team project filters with app selection 2026-04-14 18:10:09 +03:00
777genius
487dcabff5 fix: harden recent project and sidebar selection state 2026-04-14 17:54:23 +03:00
777genius
9fe3343038 fix: hide empty member message pagination 2026-04-14 17:25:58 +03:00
777genius
36a79f2586 fix: keep selected project visible in session selector 2026-04-14 17:10:23 +03:00
777genius
0dfd2fc610 fix: sync session project selector state 2026-04-14 16:58:00 +03:00
777genius
f0f43be064 fix: stabilize codex recent project selection 2026-04-14 16:52:44 +03:00
Илия
8b53f63e97 fix(team): preserve provider model ids and codex slash suggestions 2026-04-14 16:40:50 +03:00
Diego Serrano
15b2b655ea feat(chat): show project and user skills as slash command suggestions 2026-04-14 16:38:12 +03:00
Diego Serrano
43ae8ae6bc fix(extensions): resolve project path from both projects and repositoryGroups 2026-04-14 16:38:12 +03:00
777genius
c8f9d9bbdd refactor: migrate agent graph to feature slice 2026-04-14 16:24:09 +03:00
777genius
e99691ad3d Merge branch 'feat/codex-recent-projects' into dev 2026-04-14 16:07:18 +03:00
777genius
fad89e71da feat: add dashboard recent projects feature slice 2026-04-14 16:07:04 +03:00
Илия
f819dd0c27
fix(team): preserve provider model ids and codex slash suggestions 2026-04-14 14:56:29 +03:00
Diego Serrano
5375eea19f
feat(chat): show project and user skills as slash command suggestions 2026-04-14 14:37:27 +03:00
Diego Serrano
7d98956dad
fix(extensions): resolve project path from both projects and repositoryGroups 2026-04-14 14:37:04 +03:00
Diego Serrano
bda2e160f7
fix(team): prevent double [1m] suffix on model string during re-launch 2026-04-14 14:35:59 +03:00
777genius
0615badd79 fix(task-logs): preserve activity detail chunks 2026-04-13 21:13:58 +03:00
777genius
a0c8db4771 feat(graph-controls): integrate tooltip support, refine button styles, and enhance task creation functionality 2026-04-13 20:51:45 +03:00
777genius
ce0eb75429 feat(session-search): add search functionality and provider filtering to DateGroupedSessions component; enhance task activity detail rendering logic 2026-04-13 20:00:18 +03:00
777genius
804e92419f feat(activity-detail): implement task activity detail retrieval and UI integration 2026-04-13 19:19:52 +03:00
777genius
5b1f369950 chore: merge origin/dev into dev 2026-04-13 18:43:00 +03:00
777genius
07682eca37 feat(graph-controls): add team page and task creation buttons, improve toolbar button styles 2026-04-13 18:36:44 +03:00
777genius
dd4ce7e9b1 fix(ci): merge dev and restore green checks 2026-04-13 17:14:22 +03:00
777genius
a0d87872e7 fix(ci): restore PR #44 checks 2026-04-13 17:00:49 +03:00
777genius
6fbf8518dc feat(member-details): enhance member detail dialog with activity filtering and initial tab state 2026-04-13 17:00:20 +03:00
777genius
5b328a0f8a improvement: alot small improvements and fixes 2026-04-13 16:20:57 +03:00
777genius
7d47cbaded feat(agent-graph): enhance team graph 2026-04-13 16:18:14 +03:00
777genius
674c1d8b13 feat(ui): polish messages timeline and graph toolbar 2026-04-13 10:41:23 +03:00
777genius
92dd9318a5 feat(messages): merge bottom sheet panel mode 2026-04-12 22:20:55 +03:00
777genius
cc45549716 feat(messages): add bottom sheet panel mode 2026-04-12 22:17:18 +03:00
777genius
9ca8055695 chore(workspace): checkpoint remaining claude team changes 2026-04-12 22:15:57 +03:00
777genius
32cea2a927 feat(task-logs): add board task activity and task log stream 2026-04-12 22:13:43 +03:00
777genius
57c384531a feat(agent-graph): improve blocking visibility and inspection 2026-04-12 21:31:53 +03:00
777genius
f74b7a3701 fix(agent-graph): keep graph state consistent across panes 2026-04-12 20:15:52 +03:00
777genius
02d516cb4e fix: harden provider-aware cli env handling 2026-04-12 13:18:49 +03:00
777genius
fb21b982c6 fix(ci): restore green workspace checks 2026-04-12 00:02:59 +03:00
777genius
4869bb35da feat(agent-teams): harden dev bootstrap and task tooling 2026-04-11 21:57:59 +03:00
777genius
01e9e8350e feat(frontend): improve runtime connection and team setup ux 2026-04-11 19:55:25 +03:00
777genius
96739c41fc perf(renderer): reduce costly blur transitions 2026-04-11 10:05:27 +03:00
777genius
f1a8a343d4 feat(chat): render task notifications as cards 2026-04-11 10:05:20 +03:00
777genius
fafaca4a38 feat(chat): add copy actions for code blocks 2026-04-11 09:07:16 +03:00
777genius
35970000b6 feat(multimodel): unify provider catalog and branding 2026-04-10 22:36:32 +03:00
777genius
53bcea337f merge(main): integrate origin/main into spike/free-code-compat 2026-04-10 17:25:51 +03:00
777genius
3e74b11b23 feat(team): refine launch and cli status flows 2026-04-10 16:45:00 +03:00
iliya
0dd4746700 fix(team-ui): clarify launch progress and retry states 2026-04-10 12:28:52 +03:00
iliya
a03c22aace feat(team-ui): freeze unstable provider and model options 2026-04-10 12:28:22 +03:00
iliya
433bdf8bbc feat(agent-graph): show teammate runtime labels 2026-04-09 21:16:49 +03:00
iliya
21e9fb8c90 feat(team-ui): clarify launch and retry member states 2026-04-09 21:16:24 +03:00
iliya
32ec3a6123 fix(team-data): dedupe passive user reply summaries 2026-04-09 21:15:50 +03:00
iliya
affd9ac748 perf(renderer): split noisy team detail subscriptions 2026-04-09 19:00:22 +03:00
iliya
0656794026 perf(renderer): isolate team detail summary subscription 2026-04-09 18:39:40 +03:00
iliya
17bd573ce3 fix(team-runtime): harden refresh flows and reduce ui churn 2026-04-09 16:34:55 +03:00
iliya
535178a076 fix(renderer): reduce team detail refresh churn 2026-04-09 15:28:35 +03:00
iliya
78d4c2826b fix(team): align idle inbox semantics across app 2026-04-08 17:45:09 +03:00
iliya
bbb653d3d4 fix(team): clarify cross-provider model labels 2026-04-07 13:03:58 +03:00
iliya
dd6f50cad6 fix(team): block lead relaunches and clarify log counts 2026-04-07 12:59:42 +03:00
iliya
7f737f985b fix(team): surface provider retries in reply UI 2026-04-07 12:42:37 +03:00
iliya
8ebde439a8 fix(team): treat online teammates as ready state 2026-04-07 12:29:21 +03:00
iliya
340e4d8c8b fix(team): add create action to empty state 2026-04-07 12:21:18 +03:00
iliya
55c381d26b fix(team): use teammate wording in launch summaries 2026-04-07 11:15:35 +03:00
iliya
1a27ef1ade fix(team): treat online teammates as ready 2026-04-07 11:11:45 +03:00
iliya
7842b5a01f fix(team): clarify teammate first-contact wording 2026-04-07 10:59:39 +03:00
iliya
3b0fe0bcbf fix(team): stop counting inbox noise as check-ins 2026-04-07 10:48:59 +03:00
iliya
c20fc1a312 feat(team): clarify teammate check-ins and retry state 2026-04-07 10:28:00 +03:00
iliya
ac3475d3be fix(team): support runtime bootstrap prompt sanitizing 2026-04-07 01:33:04 +03:00
iliya
d2cd655c11 fix(team): harden provisioning and team UI state 2026-04-06 21:28:22 +03:00
iliya
cf8df6b306 feat(app): show tmux install guidance on dashboard 2026-04-06 15:02:11 +03:00
iliya
84e0bdb03e fix member messages empty pagination state 2026-04-05 22:13:45 +03:00
iliya
9296ce3988 refine member message pagination 2026-04-05 22:07:09 +03:00
iliya
dc0627c285 fix message pagination consumers 2026-04-05 21:54:52 +03:00
Artem Rootman
5efc3dd63f
fix: pagination correctness and message enrichment
P1: Poller no longer overwrites nextCursor/hasMore — those belong
to the "Load older" flow. Both poller and loadOlder now dedup
messages by messageId or timestamp+from fingerprint.

P1: Cursor is now compound (timestamp|messageId) with stable
tie-breaking sort. Messages sharing the same timestamp at page
boundaries are no longer lost.

P2: getMessagesPage now applies the same enrichment as getTeamData:
leadSessionId propagation and slash-command-result annotation.

P3: Added 3 tests for getMessagesPage covering pagination, cursor
stability with same-timestamp messages, and slash command annotation.
2026-04-05 18:18:03 +00:00
Artem Rootman
270eb547cb
merge: add paginated messages API into oom-issues branch 2026-04-05 18:07:21 +00:00
Artem Rootman
54198e6598
fix: remove capTimerMap that silently drops pending refreshes
capTimerMap was cancelling oldest pending throttle/debounce timers
when the Map exceeded a size limit. Since the schedulers don't
replay dropped keys, this silently lost refresh callbacks — leaving
session/team state stale after high-volume file change events.

These Maps are self-cleaning (entries delete themselves when their
callback fires) and hold ~100 bytes per entry. Even 200 entries
is negligible memory. Removing the cap fixes the data freshness
issue without any memory concern.
2026-04-05 18:06:31 +00:00
Artem Rootman
0c0e0240a3
feat: paginated messages API (team:getMessagesPage)
New cursor-based IPC endpoint for the messages timeline panel:
- team:getMessagesPage(teamName, { beforeTimestamp?, limit? })
  returns { messages, nextCursor, hasMore }
- Cursor is timestamp-based — stable under live message insertion
- Default page size 50, max 200

getTeamData no longer includes messages in its response, eliminating
the ~1MB messages payload from every team refresh. Messages are now
fetched independently by MessagesPanel.

MessagesPanel changes:
- Fetches initial page on mount via getMessagesPage API
- Auto-refreshes newest page every 5s when team is alive
- "Load older messages" button for pagination
- Falls back to prop messages if API fails (graceful degradation)
2026-04-05 17:37:26 +00:00
Artem Rootman
a92390dcc6
style: fix import order in ExtensionStoreView
Move useShallow and lucide-react imports above @renderer/* imports
to follow the project import order convention.
2026-04-05 17:36:03 +00:00
Artem Rootman
f07eb914ae
merge: resolve conflicts with main (ExtensionStoreView, InstallButton)
Merged new fields from main (fetchCliStatus, cliStatusLoading,
openDashboard, authMissing, disableReason) into our useShallow
selectors.
2026-04-05 17:19:41 +00:00
Artem Rootman
e81116b85e
fix: apply exact reviewer suggestions for MemberLogsTab
- Move endRefreshing() outside the !cancelled guard in finally block
  so it always runs even when the effect is torn down mid-refresh.
- Only call load() when isTabActive or on first load — prevents
  unnecessary fetches when a hidden tab's effect re-runs.
2026-04-05 17:01:36 +00:00
Artem Rootman
0e83d99e0a
fix: address PR review feedback (6 issues)
Critical:
- findLogsForTask: call worker directly instead of wrapping in
  wrapTeamHandler, so failures propagate to catch and trigger the
  main-thread fallback correctly.
- TeamDataWorkerClient: scope error/exit handlers to the specific
  worker instance to prevent a stale worker's exit event from
  rejecting pending requests on a replacement worker (race condition).

Major:
- TeamDataWorkerClient: validate teamName and taskId before forwarding
  to worker thread (input sanitization).
- team-data-worker: include status, since, and intervals length in
  cache key to prevent stale results after filter changes.
- team-data-worker: move logsInFlight.delete() into .finally() so
  rejected lookups don't poison the in-flight map permanently.
- MemberLogsTab: reset refreshCountRef and refreshing state in effect
  cleanup to prevent the refresh indicator from latching on permanently
  when the effect tears down mid-refresh (e.g. on tab switch).
2026-04-05 16:59:44 +00:00
Artem Rootman
da58917032
perf: offload heavy I/O to worker thread, reduce renderer re-renders
Main process — worker thread for team data:
- New team-data-worker thread handles getTeamData and findLogsForTask,
  isolating heavy file I/O (scanning 300+ subagent JSONL files) from
  Electron's main event loop. getTeamData dropped from ~2000ms on the
  main thread to ~110ms via the worker.
- Worker-side dedup and 10s result cache for findLogsForTask prevents
  redundant scans when the same task is queried multiple times.
- Discovery cache TTL raised from 5s to 30s — avoids re-scanning the
  entire project directory on every call.
- Message cap at 200 in TeamDataService to keep IPC payloads under 1MB
  (was sending 2200+ messages / ~3MB, stalling Chromium IPC serialization).
- IPC handlers fall back to main-thread execution if the worker is
  unavailable (graceful degradation).

Renderer — useShallow and memoization (55 files):
- Added useShallow to store selectors across 55 renderer files. Batched
  individual useStore() calls (e.g. 17 calls in ExtensionStoreView,
  10 in ConnectionSection) into single useShallow selectors, cutting
  unnecessary re-render checks on every store update.
- MemberLogsTab: three 5-second polling intervals now pause when the
  parent tab is hidden (display:none). Previously 5 hidden tabs × 3
  intervals = 15 polling timers firing continuously.
- KanbanColumn wrapped in React.memo to skip re-renders when props
  haven't changed.
- MemberList: memoized activeMembers/removedMembers/colorMap; replaced
  O(n×m) per-member task scan with a pre-computed reviewer map.
- Bounded timer Maps in store initialization to prevent unbounded growth
  of debounce/throttle tracking maps during long sessions.
2026-04-05 16:21:05 +00:00
iliya
30fb2501d3 Persist launch-state and duplicate no-op handling 2026-04-05 15:23:41 +03:00
iliya
2959a3d074 Refine launch status and Gemini staging flow 2026-04-05 12:08:13 +03:00
iliya
a591ccf297 Stabilize team provisioning and runtime diagnostics 2026-04-04 20:04:16 +03:00
iliya
074b614469 feat: improve team launch model and status UX 2026-04-02 15:15:32 +03:00
iliya
3ac46e2861 feat(teams): unify provider-aware create and launch flows 2026-04-02 10:23:14 +03:00
iliya
bae3609561 feat(multimodel): add free-code runtime and provider status UI 2026-04-02 10:22:11 +03:00
iliya
1b3bd8752b refactor: remove enrichMemberBranches method and streamline branch tracking
- Eliminated the enrichMemberBranches method from TeamDataService to simplify member branch enrichment logic.
- Updated TeamDetailView to utilize live branch tracking for both lead and member worktrees, enhancing the accuracy of displayed member branches.
- Adjusted various references to ensure membersWithLiveBranches is used consistently across the component.
2026-04-01 19:11:51 +03:00
iliya
21513bb6f8 Improve Extensions CLI preflight and plugin install diagnostics
Refs: https://github.com/777genius/claude_agent_teams_ui/issues/37
2026-04-01 16:49:07 +03:00
iliya
8cf2d41568 fix(graph): improve text normalization in TeamGraphAdapter
- Enhanced text processing to clean up raw task ID hashes and replace pipe separators with dashes.
- Ensured consistent formatting for comments and inbox messages.
2026-03-31 13:02:05 +03:00
iliya
6621660376 feat(graph): add cross-team ghost nodes and task card improvements
- Cross-team messages now show ghost nodes (dashed hexagons) for external teams
- Ghost nodes have purple color, link icon, and connect to lead via message edge
- Particles flow between ghost node and lead with cross-team message labels
- Cross-team popover shows external team name
- Task click opens full KanbanTaskCard with glow effects and action buttons
- All kanban task actions wired through CustomEvent to TeamDetailView
2026-03-31 01:48:15 +03:00
iliya
16f069fae3 feat(graph): enhance task rendering and interaction features
- Updated task opacity logic to simplify conditions.
- Added comment count and unread count badges to task pills for better visibility.
- Improved layout for unassigned tasks, including a section header and overflow badge.
- Enhanced task interaction by restricting drag functionality to member and lead nodes only.
- Introduced new task action event listeners for better task management in the UI.
- Preserved known task change presence across refreshes to maintain state consistency.
2026-03-31 01:29:59 +03:00
iliya
f7876d89f7 fix(team): seed Write/Edit/NotebookEdit permissions before CLI launch
seedTeammateOperationalPermissionRules already pre-writes MCP tool
rules to settings.local.json before spawning the CLI. But standard
file tools (Write, Edit, NotebookEdit) were missing.

FACT: Teammates requesting Write get setMode: acceptEdits suggestion
but we can't change subprocess session mode. Pre-seeding these tools
as allow rules prevents the permission prompt entirely.
2026-03-30 22:58:22 +03:00
iliya
bd242fac5a fix(team): re-add control_response via stdin for teammate permissions
Belt-and-suspenders approach:
1. Settings file: handles all FUTURE calls (teammate finds rule on retry)
2. control_response via stdin: may unblock CURRENT waiting prompt
   (now includes updatedInput: {} which was the previous ZodError fix)

Without #2, approved teammates stay stuck until team restart because
the CLI doesn't hot-reload settings.local.json for pending prompts.
2026-03-30 21:47:40 +03:00
iliya
92968b45ad refactor(graph): simplify comment particle rendering with dedicated bubble function
- Replaced inline drawing logic for task comments with a new `drawCommentBubble` function to enhance readability and maintainability.
- The new function encapsulates the drawing of a speech-bubble icon, including the rounded rectangle body, tail, and inner dots to suggest text.
2026-03-30 20:02:05 +03:00
iliya
485327d077 fix(graph): correct particle direction + remove system message filter
Particle direction:
- Added `reverse` flag to GraphParticle — when true, particle flies
  from target → source (reverse of edge direction)
- Messages FROM teammate TO lead now fly member→lead (was lead→member)
- draw-particles.ts swaps from/to nodes when reverse=true

Reverted system message filter:
- Removed #isSystemMessage — all messages shown as particles again
  (user wants to see idle_notification etc.)
2026-03-30 19:20:53 +03:00
iliya
27b1a4fd9a fix(graph): filter system messages from particles + fix direction
- Skip idle_notification, shutdown, and other JSON system messages
  (was showing {"type":"idle_notificatio... as particle labels)
- Skip system_notification source messages
- Skip messages with < 3 chars
2026-03-30 19:07:16 +03:00
iliya
53dd857e0f Merge branch 'dev' of https://github.com/777genius/claude_agent_teams_ui into dev 2026-03-30 18:59:42 +03:00