Commit graph

638 commits

Author SHA1 Message Date
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