Commit graph

825 commits

Author SHA1 Message Date
777genius
b67168a9e8 fix: show opencode teammate replies in messages 2026-04-26 21:35:48 +03:00
777genius
8061b66c34 merge: sync main into dev 2026-04-26 13:12:20 +03:00
777genius
bf0e209d77 fix: remove duplicate opencode gauntlet property 2026-04-26 12:44:08 +03:00
777genius
06beb7f416 merge: opencode ledger bridge ui 2026-04-26 12:42:17 +03:00
777genius
f2c43dc4b3 feat: add opencode ledger bridge ui 2026-04-26 12:41:44 +03:00
777genius
17e1a448dc merge: integrate runtime compatibility notices 2026-04-26 12:33:45 +03:00
777genius
610bfc561d feat(opencode): persist teammate worktree context 2026-04-26 12:31:15 +03:00
iliya
3f1c1acb4f fix(windows): harden runtime project compatibility 2026-04-26 11:44:35 +03:00
777genius
49982a1db8 feat: improve opencode model verification ux 2026-04-26 10:21:18 +03:00
777genius
238900f3cf feat(runtime-provider-management): expand opencode setup UI 2026-04-25 23:36:28 +03:00
777genius
c2e14ea9df fix(runtime-provider-management): unify opencode provider list 2026-04-25 21:15:52 +03:00
777genius
2518445b3b test(opencode): allow live harness real credentials 2026-04-25 20:36:14 +03:00
777genius
427f48dd71 merge: integrate runtime compatibility notices 2026-04-25 20:28:36 +03:00
iliya
645ac4573e fix(windows): align session paths and validators 2026-04-25 20:23:03 +03:00
777genius
951c52a5d2 fix(runtime-provider-management): keep filtered provider selection explicit 2026-04-25 20:18:11 +03:00
777genius
41ca9fc0cb fix(runtime-provider-management): harden provider directory interactions 2026-04-25 19:48:23 +03:00
777genius
7fb5c8cf85 feat(runtime-provider-management): add provider directory bridge 2026-04-25 19:20:59 +03:00
iliya
f2b7024226 fix(windows): support path mentions and editor launch 2026-04-25 19:12:11 +03:00
777genius
825cfc00d1 test(runtime-provider-management): cover project-aware opencode flow 2026-04-25 18:40:01 +03:00
777genius
351ae4f4ed fix(opencode): explain missing openrouter catalog provider 2026-04-25 18:01:49 +03:00
777genius
661f308ab4 fix(opencode): accept openrouter nested model aliases 2026-04-25 17:44:28 +03:00
777genius
523d450bc8 feat(app): improve runtime provider and tmux flows 2026-04-25 17:28:56 +03:00
iliya
75f9e6bcec feat: add teammate runtime compatibility notices and test coverage 2026-04-25 17:19:30 +03:00
777genius
19b6937446 feat(opencode): harden delivery and provider UI 2026-04-25 14:30:10 +03:00
777genius
ade312ad87 fix(agent-graph): tune stable slot spacing 2026-04-25 09:47:14 +03:00
777genius
937b23be4b fix(ci): isolate vitest home path 2026-04-25 02:27:40 +03:00
777genius
78c49fc631 fix(ci): stabilize ubuntu runtime tests 2026-04-25 02:09:01 +03:00
777genius
f06dc16a63 fix(ci): harden windows runtime smoke tests 2026-04-25 01:35:07 +03:00
777genius
465b031873 fix(ci): stabilize windows team runtime tests 2026-04-25 00:56:30 +03:00
777genius
2f37be4bd0 fix(opencode): harden runtime projection delivery 2026-04-25 00:41:27 +03:00
777genius
dec0eaba18 feat(team): harden messaging tools and runtime bootstrap 2026-04-24 23:44:44 +03:00
777genius
e6e3ae9f54 fix(team): harden launch failure recovery copy 2026-04-24 23:25:53 +03:00
777genius
84412066e8 feat(opencode): add host cleanup lifecycle bridge 2026-04-24 22:57:58 +03:00
777genius
7f9afeef14 test(opencode): align semantic messaging merge tests 2026-04-24 22:52:58 +03:00
777genius
4d1a6149b0 Merge branch 'dev' into feat/opencode-semantic-messaging-seam
# Conflicts:
#	agent-teams-controller/src/internal/crossTeam.js
#	mcp-server/src/tools/messageTools.ts
#	mcp-server/src/tools/taskTools.ts
#	src/main/services/team/opencode/bridge/OpenCodeReadinessBridge.ts
#	src/main/services/team/opencode/e2e/OpenCodeProductionE2EEvidence.ts
#	test/main/services/team/OpenCodeProductionE2EEvidence.test.ts
#	test/main/services/team/OpenCodeProductionGate.live.test.ts
#	test/main/services/team/OpenCodeReadinessBridge.test.ts
2026-04-24 22:48:59 +03:00
777genius
64c9ddc78c feat(opencode): add semantic messaging seam 2026-04-24 22:41:16 +03:00
777genius
3fe9a24e41 feat(team): harden launch liveness and recovery 2026-04-24 22:34:08 +03:00
777genius
2c286a453e test: align opencode project evidence notes 2026-04-24 20:59:47 +03:00
777genius
665fff14b5 test: cover opencode project evidence prepare 2026-04-24 20:53:45 +03:00
777genius
ebb7b5289d fix: harden team runtime liveness 2026-04-24 20:52:26 +03:00
777genius
a39ae2fb84 test(team): cover member liveness mode 2026-04-24 16:18:47 +03:00
777genius
d517f2b320 feat(team): harden member runtime liveness 2026-04-24 16:18:12 +03:00
777genius
267a192329 fix(notifications): recover corrupted history writes 2026-04-24 12:24:21 +03:00
777genius
1c07e0fdb6 feat(team): expand opencode review and release support 2026-04-24 12:05:54 +03:00
777genius
ba4de3775b fix(ci): stabilize team launch reconciliation 2026-04-24 01:28:11 +03:00
777genius
fc1daef5e6 test: remove stale launch status waits 2026-04-24 00:40:45 +03:00
777genius
bc2e1e43d8 feat: refine team provisioning and task log UX 2026-04-24 00:40:11 +03:00
777genius
55b369de96 fix(ci): stabilize team runtime lane validation 2026-04-23 22:17:20 +03:00
777genius
0bde66b032 fix(runtime): pass provider args through codex probes 2026-04-23 21:29:19 +03:00
777genius
155a9f76ab test(team): resolve wrapper modules from repo root 2026-04-23 21:23:37 +03:00
777genius
bd49e9b09d test(team): wrap worker fallback with tsx register 2026-04-23 21:17:50 +03:00
777genius
c1b2f08af5 test(team): stabilize worker fallback path resolution 2026-04-23 21:13:20 +03:00
777genius
501074e8c3 fix(team): stabilize opencode launch and task logs 2026-04-23 21:08:28 +03:00
777genius
70dd17c784 fix(runtime): honor stored Anthropic API key state 2026-04-23 20:08:17 +03:00
777genius
e01e099c6c fix(opencode): harden bridge delivery and bump runtime 2026-04-23 19:24:02 +03:00
777genius
9ebc4368d0 fix: stabilize opencode team launch recovery 2026-04-23 18:27:03 +03:00
777genius
f4e4ecca2e fix(team): degrade failed opencode prelaunch lanes 2026-04-23 13:28:46 +03:00
777genius
fa8bbcbb38 test(team): add opencode mixed recovery smoke 2026-04-23 13:25:38 +03:00
777genius
fe830da37d fix(team): sync mixed launch state back into live runs 2026-04-23 11:14:28 +03:00
777genius
b955901e15 fix(team): keep persisted launch failure details visible 2026-04-23 04:30:33 +03:00
777genius
e309eb8a0d fix(team): keep permission launch updates in store 2026-04-23 04:26:33 +03:00
777genius
6ea8b469f0 fix(team): map suffixed runtime metadata to launch statuses 2026-04-23 04:22:58 +03:00
777genius
560e14d5ad fix(team): include richer launch members in runtime snapshot 2026-04-23 04:20:01 +03:00
777genius
9766a2b7fc fix(team): match suffixed inbox senders during launch 2026-04-23 04:17:00 +03:00
777genius
b29adf1008 fix(team): match suffixed live agents during reconcile 2026-04-23 04:11:59 +03:00
777genius
1223fa236a fix(team): reconcile richer persisted launch members 2026-04-23 04:09:08 +03:00
777genius
be76b332c9 fix(team): expose richer launch member sets 2026-04-23 04:06:01 +03:00
777genius
8332e416a2 fix(team): preserve expected members on opencode heartbeat 2026-04-23 04:02:52 +03:00
777genius
98751a2cfc fix(team): prefer richer persisted launch snapshots 2026-04-23 04:00:17 +03:00
777genius
33f51b68a7 fix(team): keep launch summary projection aligned 2026-04-23 03:57:05 +03:00
777genius
f036cf0386 fix(team): prefer persisted join state over missing live entries 2026-04-23 03:01:34 +03:00
777genius
02419ec8ee fix(team): use persisted launch member union 2026-04-23 02:40:29 +03:00
777genius
82d4f094f4 fix(team): use persisted launch counts in pending copy 2026-04-23 02:38:39 +03:00
777genius
d8f0d78358 fix(team): trust persisted permission state in renderer 2026-04-23 02:36:35 +03:00
777genius
34dd669d88 fix(team): trust persisted permission launch state 2026-04-23 02:31:56 +03:00
777genius
842a929a83 fix(team): trust permission request ids in launch copy 2026-04-23 02:30:04 +03:00
777genius
146b839b9c fix(team): keep permission-pending launches from reading ready 2026-04-23 02:26:50 +03:00
777genius
e8ebe68576 fix(team): keep member launch labels consistent 2026-04-23 02:22:20 +03:00
777genius
0821b182e2 fix(team): keep member detail launch labels honest 2026-04-23 02:14:32 +03:00
777genius
006c242dc3 fix(team): keep missing opencode members bootstrap-pending 2026-04-23 02:11:06 +03:00
777genius
55021880e0 fix(team): preserve opencode member diagnostics 2026-04-23 02:08:56 +03:00
777genius
3f8276147e fix(team): make permission-pending launch copy honest 2026-04-23 02:04:55 +03:00
777genius
400eaf9acd fix(team): keep launch summary aligned with persisted members 2026-04-23 02:01:56 +03:00
777genius
72517418d9 fix(team): keep persisted launch members in spawn statuses 2026-04-23 01:59:59 +03:00
777genius
53d45c5e30 fix(team): keep launch loader for runtime-pending members 2026-04-23 01:56:38 +03:00
777genius
15f7219997 fix(team): clear permission state after approval 2026-04-23 01:48:25 +03:00
777genius
80beb3c877 fix(team): clear stale permission launch state 2026-04-23 01:44:55 +03:00
777genius
76fca31fb1 fix(team): make launch summary copy honest 2026-04-23 01:40:51 +03:00
777genius
3e53391a73 fix(team): preserve launch error and permission details 2026-04-23 01:36:52 +03:00
777genius
65fa117626 fix(team): preserve pure opencode permission state 2026-04-23 01:31:09 +03:00
777genius
a123b2e247 fix(team): surface permission-blocked launch state in graph 2026-04-23 01:13:17 +03:00
777genius
cfc50df5a1 fix(team): preserve opencode permission-blocked launch state 2026-04-23 01:10:05 +03:00
777genius
8cd3f04c20 fix(team): align permission-blocked launch state 2026-04-23 01:05:54 +03:00
777genius
2b96adda33 fix(team): avoid stale launch join mismatches 2026-04-23 00:51:34 +03:00
777genius
d3baf501f6 fix(team): keep launch join state aligned with pending roster 2026-04-23 00:47:37 +03:00
777genius
065ec81466 fix(team): keep launch failure copy without live details 2026-04-23 00:43:35 +03:00
777genius
1cb9af3fc7 fix(team): tighten pending launch runtime reporting 2026-04-23 00:36:22 +03:00
777genius
9005deb05c fix(team): prefer live launch truth over stale summary 2026-04-23 00:30:01 +03:00
777genius
2db49d694c fix(team): harden team launch and create flows 2026-04-23 00:21:26 +03:00
777genius
6211fd95ab fix(team): recover stale mixed opencode lane state 2026-04-22 20:34:42 +03:00
777genius
7cdee429ec fix(team): avoid leaking lead backend into mixed member summary 2026-04-22 20:16:27 +03:00
777genius
5ab14682a2 feat(team): support mixed runtime lanes and improve preflight UX 2026-04-22 20:10:20 +03:00
777genius
185789cc0a fix(opencode): tighten readiness and create-team preflight 2026-04-22 02:14:23 +03:00
777genius
6a9f281eca fix(opencode): preserve loading state during runtime hydration 2026-04-21 23:24:09 +03:00
777genius
94b97c4930 fix(team): preserve worktree isolation in edit snapshots 2026-04-21 22:47:19 +03:00
777genius
708e1c3bf2 merge(team): integrate teammate worktree isolation ui 2026-04-21 22:35:32 +03:00
777genius
339fb072e5 feat(team): add teammate worktree isolation controls 2026-04-21 22:35:18 +03:00
777genius
db94a08712 Merge remote-tracking branch 'origin/dev' into dev 2026-04-21 22:23:14 +03:00
777genius
796c529439 feat(runtime): add provider fast mode support 2026-04-21 22:22:47 +03:00
777genius
dc4d117a8e feat(opencode): enable managed runtime defaults 2026-04-21 22:17:11 +03:00
777genius
28b64ec467 fix(opencode): scope model preflight by provider 2026-04-21 21:22:40 +03:00
777genius
09004df72c feat(opencode): add production proof workflow 2026-04-21 21:03:48 +03:00
777genius
62cded28cc test(opencode): persist live production evidence 2026-04-21 20:43:39 +03:00
777genius
5e31bd1c06 feat(opencode): add team runtime integration 2026-04-21 20:28:22 +03:00
777genius
e20d74d95e test(teams): run cmd mcp preflight through shell on Windows 2026-04-21 18:42:26 +03:00
777genius
e0d32d59ff fix(task-change-ledger): normalize fixture paths on Windows 2026-04-21 18:19:29 +03:00
777genius
728603d788 test(teams): stabilize runtime launch validation mocks 2026-04-21 18:06:35 +03:00
777genius
95b62d6013 fix(task-change-ledger): read long hashed task artifacts 2026-04-21 18:02:40 +03:00
777genius
f40ea4f738 feat(agent-teams): add derived task queue agenda 2026-04-21 17:22:54 +03:00
777genius
7b486b7fea feat(task-change-ledger): merge review hardening 2026-04-21 17:22:01 +03:00
777genius
c69b7e4212 feat(task-change-ledger): harden review flow 2026-04-21 17:21:29 +03:00
777genius
7374108a71 fix(teams): preserve explicit provider during relaunch 2026-04-21 17:16:49 +03:00
777genius
1db7e501a0 feat(teams): introduce fast mode configuration for Anthropic provider and enhance related UI components 2026-04-21 16:44:18 +03:00
777genius
331166216e feat(team-runtime): snapshot catalog-backed picker baseline 2026-04-21 15:29:23 +03:00
777genius
7a337b6268 feat(codex): add app-server model catalog 2026-04-21 12:45:34 +03:00
777genius
99102565f3 feat(ledger): integrate task change ledger functionality into file content resolution and review application processes 2026-04-21 12:25:42 +03:00
777genius
66409ca56b fix(test): stabilize post-compact reminder assertion 2026-04-20 22:07:02 +03:00
Илия
4931115b7a
feat(codex): rewrite to app-server rich variant Merge pull request #80 from 777genius/spike/codex-native-runtime-plan
Merge pull request #80 from 777genius/spike/codex-native-runtime-plan
2026-04-20 20:54:35 +03:00
777genius
19e7ea995e fix(ci): stabilize workspace test suite 2026-04-20 20:38:12 +03:00
777genius
a76404fec7 feat(agent-graph): add activity visibility toggle 2026-04-20 20:33:34 +03:00
777genius
5683973c04 feat(codex): add app-server account management and polish native UX 2026-04-20 20:18:21 +03:00
777genius
8093201b78 Merge remote-tracking branch 'origin/dev' into spike/codex-native-runtime-plan
# Conflicts:
#	docs/research/codex-native-runtime-integration-decision.md
2026-04-20 19:42:49 +03:00
Илия
6929ab2a34
Merge pull request #75 from sardorb3k/perf/virtualization-threshold-tests
perf(team): enable virtualization past threshold + tests
2026-04-20 09:00:07 +03:00
777genius
63bc5ed866 fix(team): stabilize activity timeline virtualization 2026-04-20 08:59:38 +03:00
Mike
05f68ced44 perf(team): enable virtualization past threshold + tests
Final step of the virtualization plan. Turns the virtualized render
path on in production behind a row-count threshold, and adds regression
tests covering every gate.

- `VIRTUALIZATION_ROW_THRESHOLD = 60`. Short lists stay on the direct
  render path (no wrapper, no position: absolute, no measurement
  churn). Above the threshold the virtualizer takes over. Threshold is
  sized so conversations under ~one session of activity don't pay the
  virtualization cost; it activates once scrolling through a longer
  history.
- `shouldVirtualize` now requires `renderRows.length >= threshold` in
  addition to the existing opt-in and scroll-ref checks.
- `MessagesPanel` opts into virtualization for every layout it wires
  (inline / sidebar / bottom-sheet). The internal threshold then
  decides when to actually enable it, so callers don't need per-layout
  heuristics.
- Tests: adds a new `ActivityTimeline virtualization threshold` block
  covering (a) below-threshold list stays on the direct path,
  (b) no viewport → direct path regardless of count, (c) above
  threshold + viewport with `virtualizationEnabled` flips to the
  virtualized render path (simulated by clicking "show all" past
  pagination).

With this in, #70#74 combine to deliver:
- correct IntersectionObserver roots in scroll containers
- atomic render rows with stable keys
- windowed rendering with DOM-measured scrollMargin and measureElement
- auto-on when the cost of direct rendering actually shows up
2026-04-20 00:56:28 +05:00
Mike
a43fedcaab refactor(team): flatten ActivityTimeline render into atomic rows
Third step of the virtualization plan. Pure refactor — no UI change, no
virtualization yet. Prepares the timeline for row-level windowing.

- Introduces `TimelineRow`, a discriminated union of `session-separator`,
  `lead-thought-group` (pinned and non-pinned), `compaction-divider`,
  and `message-row`. Each row maps 1:1 to a single visual element.
- Adds a `renderRows` useMemo that walks `timelineItems` once and emits
  atomic rows, hoisting session separators out of the Fragment bundle
  that used to pair them with their owning item. This is the shape a
  windowing layer needs: each row measurable and addressable
  independently.
- Extracts a `renderTimelineRow(row)` helper that switches on `row.kind`
  and returns the same JSX the previous inline render produced. Logic
  per kind is identical — keys, memoization, collapse props, pinned
  thought "live" semantics — so there is no visual diff.
- The render body collapses from two blocks (pinned + `.slice().map()`)
  into a single `renderRows.map(renderTimelineRow)` call.

Follow-ups will virtualize `renderRows` with measured row heights and
tighten observer/animation wiring; pagination, collapse state, zebra
striping, and `groupTimelineItems` are untouched.
2026-04-20 00:47:02 +05:00
777genius
1794e5be4e refactor(runtime): finalize codex native-only config contract 2026-04-19 22:44:48 +03:00
777genius
cb62acb4fb fix(team): harden restart and session refresh flows 2026-04-19 22:34:43 +03:00
777genius
5d014b375b fix(runtime): tighten codex native-only phase 4 truth 2026-04-19 22:29:26 +03:00
777genius
1f7dd2100f refactor(runtime): remove legacy codex lanes 2026-04-19 22:22:13 +03:00
Mike
d4f518e8c5 refactor(team): viewport contract + observer root for ActivityTimeline
Second step of the virtualization plan. No virtualization yet. This PR
makes IntersectionObserver-based visibility tracking correct inside
scroll containers (sidebar, bottom-sheet), which is a prerequisite for
virtualizing the timeline.

- Introduces `TimelineViewport` — a grouped contract passed as a single
  `viewport` prop on `ActivityTimeline`. Holds `scrollElementRef`,
  `observerRoot`, `scrollMargin`, and `virtualizationEnabled`.
- `MessageRowWithObserver` and `LeadThoughtsGroupRow` now create their
  `IntersectionObserver` with `root = observerRoot?.current ?? null`
  instead of defaulting to the document viewport. Unread marking now
  fires when rows enter their real scroll parent.
- `MessagesPanel` resolves the active scroll owner from `position`
  (inline from parent ref, sidebar from `sidebarScrollRef`, bottom-sheet
  from `bottomSheetScrollRef`) and passes it into ActivityTimeline.
- Tests: stubs `IntersectionObserver` to capture `options.root` and
  asserts null when no viewport is passed, and the provided element when
  `viewport.observerRoot` is set.

`scrollMargin` and `virtualizationEnabled` are included in the contract
but not consumed yet — they land in follow-up PRs (#4/#5).
2026-04-20 00:17:04 +05:00
777genius
41f0b0d1d1 feat(team): enhance TeamMessageFeedService caching and logging
- Introduced caching mechanism with expiration for message feeds to improve performance.
- Added logging for cache expiration events to aid in debugging.
- Updated MessagesPanel to reopen search bar when participant filters are active.
- Added test cases for handling tmux server errors and message panel behavior with filters.
2026-04-19 22:04:44 +03:00
777genius
83748673af fix(team): dedupe project path options 2026-04-19 21:49:40 +03:00
777genius
e90bdc5b7f feat(runtime): switch codex default to native with hidden fallback 2026-04-19 21:21:29 +03:00
777genius
358496c353 merge: integrate task stall monitor shadow rollout into dev 2026-04-19 21:17:25 +03:00
777genius
a8cca65658 feat(team): add task stall monitor shadow rollout 2026-04-19 21:17:09 +03:00
777genius
52677b55d0 feat(team): enhance team messaging functionality and UI
- Integrated pending replies state management for team members.
- Updated TeamDetailView to initialize pending replies from state.
- Added logic to refresh team messages and member activity on tab focus.
- Improved UI components by increasing dialog content width for better layout.
- Enhanced member draft rows with avatar support for better visual representation.
- Implemented reconciliation logic for pending replies based on message history.
- Updated tests to cover new functionality and ensure reliability.
2026-04-19 20:57:13 +03:00
777genius
b5dfa14868 feat(runtime): enable codex-native limited internal unlock 2026-04-19 20:49:29 +03:00
777genius
1d3d7e1f1f fix(team): harden teammate restart lifecycle 2026-04-19 20:17:41 +03:00
777genius
e83e3cbcc9 test(runtime): cover codex-native phase 1 rollout truth 2026-04-19 20:01:45 +03:00
777genius
92a3124e3f fix(runtime): preserve codex-native lane state truth 2026-04-19 19:46:00 +03:00
777genius
30fce3c64d feat(runtime): surface codex-native internal rollout states 2026-04-19 19:41:36 +03:00
777genius
ba37c1caf5 feat(runtime): add codex-native phase 0 app integration 2026-04-19 19:33:37 +03:00
777genius
481965f1b4 feat(team): add relaunch flow and stabilize edit member colors 2026-04-19 16:46:56 +03:00
777genius
1e2241aead chore: checkpoint workspace before relaunch flow 2026-04-19 16:08:38 +03:00
777genius
fbf299f276 fix(team): update package manager and enhance member color handling
- Bumped pnpm version to 10.33.0 in package.json.
- Added existing members to EditTeamDialog for better context.
- Improved buildMemberDraftColorMap to reserve colors for existing members and predict colors for new drafts.
- Added tests to ensure color assignment logic works correctly for existing and new members.
2026-04-19 11:56:53 +03:00
Илия
b13ab71857
perf(team): precompute ActivityTimeline session anchors once per render Merge pull request #68 from sardorb3k/perf/activity-timeline-session-precompute
perf(team): precompute ActivityTimeline session anchors once per render
2026-04-19 09:16:09 +03:00
777genius
98657f8b5f fix(team): harden retained log cleanup fallback 2026-04-19 09:00:45 +03:00
Mike
4c359d5185 perf(team): precompute ActivityTimeline session anchors once per render
Replace the per-item backward scan that located the most recent session
anchor with a single forward pass via useMemo.

Before: for every timeline item the render loop walked backward until
it found a lead-thought anchor, so N items produced up to N * N anchor
lookups on every render pass.

After: a single O(n) sweep builds previousSessionAnchorByIndex; render
time lookup is O(1). getItemSessionAnchorId is hoisted to module scope
so it is not recreated per render.

Behavior is unchanged. The three existing separator tests still pass,
and four new cases cover three-session transitions, long runs of
non-anchor items between thought groups, consecutive same-session
thoughts, and single-item lists.
2026-04-19 09:00:59 +05:00
777genius
6ff9a28ccc feat(team): enhance Claude logs handling and improve retrieval logic
- Updated `getClaudeLogs` method to support asynchronous fetching of logs.
- Introduced new interfaces for retained logs and transcript cache entries.
- Added logic to retain and retrieve Claude logs even after cleanup of live runs.
- Implemented fallback mechanism to use persisted transcripts when no live run exists.
- Updated tests to cover new log retention and retrieval scenarios.
2026-04-19 01:38:58 +03:00
777genius
c4dba278b0 test(members): small improvements 2026-04-19 01:38:44 +03:00
777genius
d766d174e3 fix(ci): stabilize windows mcp preflight cleanup 2026-04-18 22:49:00 +03:00
777genius
61556a5a77 fix(ci): restore checks and lead model selection 2026-04-18 22:28:53 +03:00
777genius
93a6ae74b0 refactor(activity): reuse markdown rendering in compact previews 2026-04-18 21:57:59 +03:00
777genius
fd0c936244 fix(ui): finalize team activity and kanban polish 2026-04-18 21:40:47 +03:00
777genius
dac7b4f875 Merge remote-tracking branch 'origin/dev' into spike/team-snapshot-split-plan 2026-04-18 21:08:41 +03:00
777genius
2088ddcdaa Merge branch 'dev' of https://github.com/777genius/claude_agent_teams_ui into dev 2026-04-18 21:06:16 +03:00
777genius
d1c33cec64 feat(team): add live task log stream count badge 2026-04-18 21:04:15 +03:00
Илия
dc4efde401
Merge pull request #62 from sardorb3k/fix/team-progress-payload-cap
fix(team): cap renderer IPC payloads to prevent OOM crashes
2026-04-18 20:52:35 +03:00
777genius
82ca8e29c2 chore(merge): sync local dev into spike/team-snapshot-split-plan 2026-04-18 20:26:36 +03:00
Mike
fb474af2a7 refactor(team): narrow PR to progress payload cap only
Remove the SessionDetail.messages stripping and related cache-size
change per maintainer feedback. The session-detail optimization will
follow separately after PR #58 lands with the right architectural
pattern (lightweight snapshot + separate endpoints).

This PR now contains only:
- progressPayload helpers (buildProgressLogsTail, buildProgressAssistantOutput)
- cap applied to emitLogsProgress, updateProgress, stall warning, retry error
- throttle raised 300ms -> 1000ms
- tests for the progress payload behavior
2026-04-18 22:19:09 +05:00
777genius
372d744879 refactor(team): store runtime identity structurally 2026-04-18 20:14:49 +03:00
777genius
571b7fb0f5 feat(team): add member runtime diagnostics and restart controls 2026-04-18 19:17:58 +03:00
777genius
c25097a781 fix(sidebar): soften unread task highlight 2026-04-18 18:32:40 +03:00
777genius
452948b260 fix(team): refine bootstrap and provider diagnostics 2026-04-18 18:32:21 +03:00
777genius
fb3d1ceb27 fix(agent-graph): stabilize drag and pan interactions 2026-04-18 18:32:04 +03:00
777genius
2fd06fcd48 Merge branch 'dev' into spike/team-snapshot-split-plan 2026-04-18 18:21:25 +03:00
777genius
b7547e5d87 feat(team): expand task and member execution logs 2026-04-18 18:13:37 +03:00
777genius
2e062e4432 fix(agent-graph): route lead tasks and tighten lead spacing 2026-04-18 17:28:27 +03:00
777genius
ad8cddabcd feat(agent-graph): center transient handoff cards 2026-04-18 17:13:57 +03:00
777genius
cb603aaf37 fix(activity): make new session boundaries exact 2026-04-18 16:58:44 +03:00
Mike
297bd8f533 fix(team): cap renderer IPC payloads to prevent OOM crashes
Users with long-running teams (37+ tasks, 10+ agents for an hour) were
hitting constant renderer crashes (issue #36). Two hot paths were
serializing unbounded histories across IPC on every tick:

- Provisioning progress: emitLogsProgress and updateProgress both
  joined the full provisioningOutputParts array (~20 event-driven call
  sites) plus the full CLI log tail, then fanned that out to the
  renderer. After an hour, each tick shipped multi-megabyte payloads
  and Zustand OOM'd on the immutable state clone.

- Session detail cache: SessionDetail.messages (the raw parsed JSONL)
  was being cached and returned over IPC/HTTP even though the renderer
  only reads session/chunks/processes/metrics. This roughly doubled
  the per-entry cache footprint on large sessions.

Fixes:

- Add progressPayload helpers that cap the log tail to 200 lines and
  assistant output to the last 20 parts; empty/whitespace joins
  collapse to undefined so the noop guard is explicit rather than
  coincidental.

- Apply the cap inside emitLogsProgress, updateProgress, and the two
  inline emission paths (stall warning, retry error). Throttle the
  log-progress tick 300ms -> 1000ms so Zustand can keep up.

- Add stripSessionDetailMessages and call it at every SessionDetail
  production site that crosses IPC/HTTP (both sessions.ts routes,
  both cache stores).

- Raise MAX_CACHE_SESSIONS 5 -> 20 now that the per-entry SessionDetail
  footprint is bounded. Previously 5 forced constant re-parsing on
  every session switch.

Tests: 15 new unit tests covering the helpers (tail slicing, empty
parts, whitespace-only parts, non-mutation of inputs).
2026-04-18 17:44:39 +05:00
777genius
bff5f43da9 Merge branch 'dev' into spike/team-snapshot-split-plan 2026-04-18 15:03:02 +03:00
777genius
0a1831bc5e fix(team): validate agent-teams MCP via direct stdio preflight 2026-04-18 15:00:47 +03:00
777genius
ce60831758 Merge branch 'dev' into spike/team-snapshot-split-plan
# Conflicts:
#	src/renderer/components/sidebar/GlobalTaskList.tsx
#	src/renderer/components/team/members/MemberMessagesTab.tsx
#	src/renderer/components/team/messages/MessagesPanel.tsx
#	test/main/services/team/BoardTaskLogStreamIntegration.test.ts
2026-04-18 14:23:18 +03:00
777genius
5a7d5ea310 test(team): add real-jsonl coverage for task log fallback 2026-04-18 14:13:15 +03:00
777genius
39be3bce75 fix(team): restore task log fallback and block launch auto-assignment 2026-04-18 14:13:15 +03:00
777genius
52d45f87c1 feat(sidebar): improve project task grouping 2026-04-18 14:13:15 +03:00
777genius
9675f9b331 fix(recent-projects): show active projects during provisioning 2026-04-18 14:11:17 +03:00
777genius
4f97e9d2d8 Merge branch 'dev' of https://github.com/777genius/claude_agent_teams_ui into spike/team-snapshot-split-plan 2026-04-18 13:55:59 +03:00
Илия
d293ff4802
fix: unify context usage metrics
Merge pull request #61 from 777genius/research/context-usage-audit
2026-04-18 13:54:56 +03:00
777genius
f22373d4a9 Merge branch 'dev' into spike/team-snapshot-split-plan 2026-04-18 13:13:07 +03:00
777genius
82566162fc fix(team): restore task log fallback and block launch auto-assignment 2026-04-18 13:11:13 +03:00
777genius
416c4acf04 feat(sidebar): improve project task grouping 2026-04-18 13:09:51 +03:00
777genius
4178645e2c Merge remote-tracking branch 'origin/dev' into spike/team-snapshot-split-plan 2026-04-18 12:45:16 +03:00
777genius
cca644a1d2 fix(team): restore anthropic opus 4.6 option 2026-04-18 12:42:25 +03:00
777genius
e1a85786e7 fix(ci): resolve branch lint errors 2026-04-18 12:32:44 +03:00
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
78c6824d69 feat(team): merge live lead messages and repair transcript resolution 2026-04-18 11:02:21 +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
da9cb93e93 test(ci): stabilize file watcher first-read timing 2026-04-17 23:12:01 +03:00
777genius
351244ffdb fix(team): harden refresh races and loading state 2026-04-17 23:03:58 +03:00
777genius
94f41ed5a5 test(ci): normalize extension path mocks on windows 2026-04-17 22:59:10 +03:00
777genius
18d9f2b4a4 fix(ci): restore workspace checks 2026-04-17 22:45:19 +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
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
12f6f90701 fix(extensions): hide runtime-injected mcp diagnostics 2026-04-17 20:07:35 +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
8423656b97 fix(extensions): use safe legacy multimodel capability fallback 2026-04-17 14:46:43 +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
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
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
a5c79518fb fix(ci): repair validate and windows checks 2026-04-17 09:12:49 +03:00
777genius
f92b77e3af chore(merge): sync dev into team snapshot split spike 2026-04-17 08:54:27 +03:00
777genius
aedca570e1 fix(test): make plugin installation state test cross-platform 2026-04-17 08:36:26 +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