Skip to content

feat(agent-org): complete long-lived Team UI, E2E, and performance hardening #706

Description

@ShiboSheng

Stack position

This is the release-completion PR. It integrates and verifies the four preceding capabilities; it must not invent new lifecycle, Task authority, Proposal, routing, or concurrency semantics.

Problem / Motivation

The first four PRs deliberately land safe intermediate layers. The product is not complete until all states and errors are understandable, all Run-era UI is removed, history/projection is bounded, locales are complete, production-path E2E covers recovery/concurrency, idle resource usage is measured, and ordinary SDE behavior is proven unchanged.

Goal

Deliver the complete long-lived Team experience: one Conversation and Team across many work batches; Coordinator directly answers or creates work; Members can be asked safely; UI shows committed truth; Idle/Paused/Archived are quiet; and performance/SDE isolation have measured evidence.

Required scope

  • Complete Working/Paused/Idle/Failed/Archived, typed error, Current Work/History, Task source, and Archive/Delete dangerous-zone UI.
  • Present Root answers and committed Tasks only. Do not classify “question vs work” in the frontend and do not add an activation command.
  • Remove Run selector, Run number/timeline, and create-new-Run concepts from the Agent Org UI.
  • Add Agent Org/session strings to all 13 sessions.json locales: de/en/es/fr/ja/ko/pl/pt/ru/tr/vi/zh/zh-Hant.
  • Make Run View polling lifecycle-safe: Idle/Paused/Archived passive, no interval without pollable Teams, hidden-page pause, single-flight refresh, push coalescing, TTL eviction, and stale-generation rejection.
  • Complete direct Member queue/read-only/responder/error UI and Group causal reply UI.
  • Add keyset pagination and bounded payloads for Task/Inbox/Artifact history and Group projection.
  • Add production rendered E2E for lifecycle, direct/group conversation, activation, restart/crash, duplicate windows, Archive/Delete, and typed failures.
  • Measure and record CPU, requests, timers/listeners, cache, payload, runtime release, FIFO, group projection queries, reopen loops, multi-instance behavior, and ordinary SDE baselines.

Locked invariants

  • One Conversation shows one long-lived Team, not multiple Runs.
  • Coordinator decides in its normal Turn: answer directly or atomically create Tasks; there is no Proposal/confirmation/classifier/UI activation command.
  • Coordinator alone writes global Task graph; MemberConversation remains hard read-only and shares one FIFO/runtime with TaskExecution.
  • UI projects durable backend state and stable causal ids; it does not synthesize a second lifecycle or optimistic duplicate message.
  • Idle/Paused/Archived with no user action approach zero polling, Provider use, work Wake, and retained listeners/timers.
  • Ordinary SDE send, Queue, Force Send, Stop, Resume, Compaction, Sidebar, CPU, and subscriptions remain unchanged.
  • Performance verdict stays blocked until measurements meet the Design Doc budgets.

Acceptance criteria

  • Every Team state, typed error, Current Work/History, Task source, and Archive/Delete condition has clear UI.
  • Sending to Coordinator produces either an answer or committed Current Work without Proposal/confirmation UI.
  • Member direct and Group @Member clearly show responder, queue/read-only state, causal reply, and typed errors.
  • Run selector/number/timeline/create-new-Run concepts are removed.
  • All 13 locales contain the required keys and never expose internal wire values or old Run terminology.
  • Idle/Archived/hidden with no user action has no persistent poll, timer, Provider, or work Wake; Paused is excluded from fallback polling.
  • Push bursts are coalesced; unmount/reopen does not grow listeners or retained store entries.
  • Two-window retries do not duplicate Root turns, Task activation, or roll UI back to stale generations.
  • 1k+ Task/Inbox/Artifact history keeps first payload bounded and paged.
  • 50 Members/10k Group events use O(1) Team-channel requests/subscriptions and bounded cursor pages.
  • Group projection stays within the Design Doc query/row/P90 budgets and has query-plan evidence against fan-out/full scan.
  • Runtime release/FIFO/Pause/Archive timing meets the Design Doc P50/P90 and hard-wait budgets.
  • Archive diagnostics never offer Resume; Delete appears only for Archived.
  • Ordinary SDE behavior and idle resource baselines show no regression.
  • Production rendered E2E uses real user commands and owning side-effect paths, not debug-only result injection.
  • Light/dark, constrained viewport, loading/empty/error/queued/archived states have appropriate screenshots or recordings.

Verification

  • npm run typecheck, focused Vitest, targeted Cargo tests, and 13-locale key validation.
  • Rendered production E2E across lifecycle, direct/group Member conversation, activation, Pause/Resume, crash/restart, duplicate windows, Archive/Delete, and typed failures.
  • Multi-instance and ordinary SDE regression suites.
  • Measured performance matrix for CPU, requests, timers/listeners, caches, payloads, runtime release, FIFO, Group query plan, and repeated open/close.
  • Applicable frontend UI audit, architecture audit, E2E methodology review, and Agent Org performance guard.
  • Visual evidence for relevant themes, viewport constraints, and non-happy states.
  • Keep the PR Draft until all automated/manual acceptance criteria and performance budgets pass.

Out of scope

  • New product semantics beyond PRs 1–4.
  • Proposal, confirmation, multi-Run timeline/selector, revision-event product model, or new Team/Task states.
  • Worker-created Tasks, Manager Task administration, second Member runtime/FIFO, or model-decided permissions.
  • Unrelated frontend cleanup, generic SDE refactors, or formatting churn.
  • Relaxing performance targets without first updating the Design Doc and Impact Spike.

Effort and budget

  • Labels: Effort: High, UX
  • P50 range: 1,900–2,700 review lines; planning point: 2,300
  • P90 cap: 3,800 review lines
  • Expected substantive files: 13–21, plus all 13 locale files
  • At 70% of P50, review the diff and risks. Above 1.25× P50, explain new entry points/test surface; at 1.5×, stop and re-spike before expanding scope.
  • Stack total: P50 14,000 / P90 20,700 review lines. Test, permission, concurrency, E2E, and performance work cannot be removed merely to meet the estimate.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Effort: HighUXImprovements to user experience, workflow smoothnessenhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions