Commit graph

2615 commits

Author SHA1 Message Date
Илия
c9c6503a16
fix: prevent stale-runtime display on team lead for OpenCode teams Merge pull request #194 from ShyamKumar1/fix/stale-runtime-team-lead
fix: prevent stale-runtime display on team lead for OpenCode teams
2026-05-29 23:34:19 +03:00
777genius
60d3de48c9 fix(deps): bump axios audit override 2026-05-29 23:17:42 +03:00
ShyamKumar1
c23ccde24d fix: prevent stale-runtime display on team lead for OpenCode teams
The team lead's runtime is tracked via config.leadSessionId, not as a
spawned runtime process. In the OpenCode adapter path,
buildTeamAgentRuntimeSnapshot creates a synthetic runtime entry for the
lead with alive:false (no CLI child pid) and no livenessKind, which the
getCurrentRuntimeOfflineVisualState function then classifies as
stale_runtime. This causes every team to show the lead as stale-runtime
permanently.

Add a guard in getCurrentRuntimeOfflineVisualState to skip the
stale_runtime classification when the member is the team lead and the
runtime entry carries the 'lead' backend marker.
2026-05-29 23:13:07 +03:00
777genius
c0b9b4ec5d perf: isolate task detail dialog state 2026-05-29 17:02:00 +03:00
777genius
b830a3c53d perf: preload task detail dialog 2026-05-29 16:39:38 +03:00
777genius
5898fbeaa9 perf: slow live runtime polling 2026-05-29 16:15:54 +03:00
777genius
322c63ea8b perf: skip offline runtime polling 2026-05-29 16:11:16 +03:00
777genius
e4483a3ad6 perf: reduce idle team refresh polling 2026-05-29 15:57:12 +03:00
777genius
889e4cc374 perf: avoid sidebar timeline virtualization churn 2026-05-29 15:54:49 +03:00
777genius
0555a5e3be perf: trim kanban resize handles 2026-05-29 15:51:40 +03:00
777genius
b4b9175287 perf: reuse team summary for comment notification init 2026-05-29 15:43:24 +03:00
777genius
e1e5b68e8a perf: simplify kanban task card chrome 2026-05-29 15:43:03 +03:00
777genius
32b7bc3386 perf: unmount hidden team list tab 2026-05-29 15:37:12 +03:00
777genius
0c6bf5dd33 perf: page large team sections 2026-05-29 15:30:27 +03:00
777genius
2793dfc5b2 fix: keep team card text measurable 2026-05-29 15:25:01 +03:00
777genius
7ab0a41728 perf: simplify compact thought previews 2026-05-29 15:20:03 +03:00
777genius
f05aefe097 perf: trim team page render overhead 2026-05-29 15:15:01 +03:00
777genius
ef129f8931 perf: skip unchanged lead log renders 2026-05-29 14:46:54 +03:00
777genius
2303346e9c perf: avoid duplicate bootstrap transcript parsing 2026-05-29 14:42:42 +03:00
777genius
f0514a7d17 perf: skip unverifiable runtime process scans 2026-05-29 14:38:01 +03:00
777genius
9be096f864 perf: cache persisted bootstrap outcome lookups 2026-05-29 14:19:04 +03:00
777genius
d0c6fdd28c perf: extend persisted runtime probe cache 2026-05-29 14:04:28 +03:00
777genius
dd71420314 perf: extend persisted spawn status cache 2026-05-29 13:10:41 +03:00
777genius
35a9b05637 perf: cache persisted spawn status reads 2026-05-29 13:06:26 +03:00
777genius
fa242d9ff6 perf: cache bootstrap transcript outcomes 2026-05-29 12:58:15 +03:00
777genius
0b97985474 perf: cache team transcript affinity checks 2026-05-29 12:46:29 +03:00
777genius
169ac8bb68 perf: include process table usage metrics 2026-05-29 12:34:13 +03:00
777genius
3b0c2ed24b perf: cache runtime usage telemetry 2026-05-29 12:29:37 +03:00
777genius
7d21f9bd76 perf: avoid stale runtime pid sampling 2026-05-29 12:26:15 +03:00
777genius
906942cb7a perf: isolate messages panel logic exports 2026-05-29 12:26:09 +03:00
777genius
3c37b22379 perf: debounce messages scroll persistence 2026-05-29 12:26:04 +03:00
777genius
fa3f8ce85c perf: defer message composer suggestion data 2026-05-29 12:25:53 +03:00
777genius
4b85433afb perf: stop composer orbit idle animation 2026-05-29 12:23:45 +03:00
777genius
35a01f06d4 perf: stop composer orbit idle animation 2026-05-29 12:14:58 +03:00
777genius
8adbfd5357 perf: isolate messages panel logic exports 2026-05-29 12:10:26 +03:00
777genius
870861da9d perf: debounce messages scroll persistence 2026-05-29 12:04:33 +03:00
777genius
81d910399a perf: avoid stale runtime pid sampling 2026-05-29 11:10:23 +03:00
777genius
14f25fdc81 perf: reduce team page runtime telemetry load 2026-05-29 10:50:42 +03:00
777genius
6eada589aa feat(team): add Opus 4.8 to model catalog and runtime profile
Wire claude-opus-4-8 (+ [1m] variant) through the team model picker
alongside 4.7 and 4.6, point the opus alias label at 4.8, update the
reasoning/long-context predicates, and switch the fast-mode UI
message to mention 4.8.
2026-05-29 00:54:33 +03:00
777genius
37334aad0d docs: add Agent Teams with Opus 4.8 announcement article 2026-05-29 00:54:22 +03:00
777genius
cb35992cff fix(team): repair runtime snapshot caching and rss sampling regressions
Pre-existing regressions из 'cache transcript and telemetry scans':

- pidsMissingUsageStats теперь всегда фильтрует runtimeUsagePids по
  отсутствию stats, а не только когда runtimeProcessRowsForSnapshot
  null. Пустой/неполный results-row больше не блокирует pidusage
  fallback.
- Кэш runtimeProcessTableCache очищается при invalidateRuntime-
  SnapshotCaches и не репопулируется in-flight'ом, который начат до
  invalidate (через generation token + caller-aware cache context).
- runtimeProcessUsageStatsCacheByPid очищается в invalidate, а в
  shared OpenCode host refresh branch'е сбрасывается negative-cache
  для конкретного pid'а перед таргетным sample'ом.

Зеленит 25 теста в TeamProvisioningService > getTeamAgentRuntimeSnapshot,
включая 'uses batched pidusage rss values', 'captures CPU and memory
history', 'does not cache live runtime metadata when invalidated while
the probe is in flight', 'shows RSS for OpenCode secondary lane host
pids'.
2026-05-29 00:51:03 +03:00
777genius
9e3efa18ce perf(team): batch task activity interval resume across alive members
Collapses the per-member resume scan in getMemberSpawnStatuses into a single
readdir + file lock + pass over the team's tasks. Avoids N x IO when multiple
members become alive at launch. Semantics of the applied-set guard are
preserved 1:1; the single-member API stays as a wrapper around the batch.
2026-05-29 00:44:31 +03:00
777genius
d9479b5c61 perf(team): skip redundant task interval resumes for stable alive members
readPersistedStatuses каждый раз делал полный sync-scan всех task
JSON под file lock и звал resumeActiveIntervalsForMember для каждого
member с runtimeAlive=true — на больших командах блокировал main
до 8s. Теперь маркируем member как 'resume applied' пока он остаётся
alive, сбрасываем маркер при переходе в not-alive (через
syncMemberTaskActivityForRuntimeTransition и в readPersistedStatuses
loop). Resume остаётся идемпотентным и материализует интервалы из
истории один раз за цикл alive.
2026-05-29 00:14:40 +03:00
777genius
068399543e feat(team): clean stale persisted runtime metadata for dead direct processes
Когда снимок liveness возвращает stale_metadata для direct-process
teammate с persisted runtimePid, который реально мёртв — собираем
кандидатов на очистку и сбрасываем их runtimePid/bootstrap-поля
из config.json через двойной чек под guard для запущенных run/launch
state. Это убирает мёртвые pid из последующих snapshot'ов и не
трогает OpenCode/lane-aware/runtime-session-имеющиеся записи.

Дополнительно добавлены targeted-pid liveness check (используется
расширение TeamRuntimeLivenessResolver.targetedProcess) и
shouldUsePersistedLaunchRuntimePidForMetadata, чтобы не подсасывать
устаревший pid в metricsPid для членов с lane-aware конфигурацией.
2026-05-29 00:06:48 +03:00
777genius
7e6c0da21e fix(team): allow same-run bootstrap clock skew for native proofs
resolveBootstrapRuntimeEvidenceBoundaryMs учитывает оба источника
времени старта (firstSpawnAcceptedAt и bootstrapExpectedAfter) и
принимает более раннее, если у member и runtime совпадает
bootstrapProofToken + runId. Это лечит случай, когда proof подписан
до того, как app зафиксировал firstSpawnAcceptedAt, но после
bootstrap boundary самого ранкона. Та же логика применена в
isBootstrapMemberEvidenceCurrentForMember для confirmation evidence.
2026-05-29 00:03:17 +03:00
777genius
1f6c9fe34b feat(team): add targeted runtime pid liveness check
resolveTeamMemberRuntimeLiveness принимает опциональный targetedProcess
с pid + command — если строка процесса проходит team/agent verification,
liveness отмечается как 'runtime_process' даже когда полная process table
не нашла его (например при гонке snapshot vs spawn). Дополнительно для
direct-process backend разрешён fallback по --agent-name, когда команда
запущена без --agent-id.
2026-05-28 23:55:51 +03:00
777genius
90fe3c9107 fix(opencode): detect managed node_modules symlink permission failures
Распознаём отдельную диагностику для EPERM на создании managed
node_modules symlink под Windows и подсказываем пользователю
запустить приложение от имени Administrator. UI-подсказка и
provisioning hint показываются только для этого случая, обычный
Windows access-denied flow не затрагивается.
2026-05-28 23:55:28 +03:00
777genius
961770b7a7 fix(team): support OpenCode lead runtime sessions 2026-05-28 23:41:34 +03:00
777genius
9af0a0df2b perf(team): cache runtime command parsing 2026-05-28 23:13:26 +03:00
777genius
005742e9ad perf(team): throttle runtime watcher refreshes 2026-05-28 23:09:20 +03:00