Skip to content

[MAIN] Add agent operations board - #30

Open
BarretoDiego wants to merge 1 commit into
mainfrom
feat/agent-board
Open

[MAIN] Add agent operations board#30
BarretoDiego wants to merge 1 commit into
mainfrom
feat/agent-board

Conversation

@BarretoDiego

Copy link
Copy Markdown
Owner

Problem

The thread tree answers where work lives, but it does not provide a global operational view across environments. Users need one place to see which agents require attention, are working, need review, completed, or failed without opening every thread.

Summary

  • Add a dedicated /board destination for web and desktop with entries in the sidebar and command palette.
  • Add a native mobile Agent Operations destination with state tabs and environment/project scoping.
  • Project all cards from the aggregate thread shell stream through a shared, provider-agnostic view model.
  • Reuse existing thread commands for Stop, Archive, Settle, and Unsettle without optimistic state movement.

Behavior

  • Groups threads into Needs You, Working, Review, Settled, Issue, and optional Idle history.
  • Supports URL-backed multi-select filters for environment, project, provider, account, and model.
  • Preserves cached cards during partial disconnection without turning connectivity failures into agent failures.
  • Hides mutating actions while an environment is disconnected.
  • Reprojects snoozed thread inclusion at the exact next wake boundary without polling or per-card timers.
  • Keeps archived and deleted work out of the Board and preserves scoped environment/thread identities.

Architecture and performance

  • Uses the aggregate OrchestrationThreadShell stream; cards never subscribe to thread detail.
  • Indexes environments, projects, and provider instances with Map and classifies each shell once.
  • Uses one coarse elapsed-time ticker for visible active cards and one one-shot snooze wake timer.
  • Adds no persistence, migrations, IPC, origin overrides, relay aggregate, or per-card network queries.
  • Keeps operational state behind one temporary compatibility adapter that can become an import bridge when Unified Agent State Model lands.

Surfaces and compatibility

  • Web: full responsive board, filters, loading/empty/disconnected states, navigation, and actions.
  • Desktop: uses the web route inside the existing Electron renderer; no new IPC.
  • Mobile: native route, state tabs, scoped list, connectivity handling, and lifecycle actions.
  • Direct, remote, relay-managed, and tunneled environments continue using their existing shell streams.
  • Optional shell fields preserve compatibility with older servers.

Verification

  • vp test run packages/client-runtime/src/agentBoard.test.ts packages/client-runtime/src/agentBoardStateAdapter.test.ts apps/web/src/agentBoardSearch.test.ts apps/web/src/components/agentBoard/AgentBoardPage.logic.test.ts — 20 tests passed.
  • vp run --filter @t3tools/client-runtime typecheck — passed.
  • vp run --filter @t3tools/web typecheck — passed.
  • vp run --filter @t3tools/mobile typecheck — passed.
  • Targeted lint, formatting, and git diff --check — passed.

Manual validation and evidence

UI evidence is intentionally pending maintainer validation:

  • Attach a before image showing the thread-only navigation.
  • Attach an after image of the wide web/desktop Board.
  • Verify narrow responsive scrolling and keyboard focus.
  • Verify mobile tabs, environment/project scope, and Clear scope.
  • Verify a snoozed thread returns without refresh.
  • Verify cached cards remain visible and expose no mutating actions while disconnected.

Known limitation

The Board uses a single isolated shell classifier until feat/agent-state-model provides the canonical API. No provider contracts, ingestion, or persistence are duplicated here; replacing the adapter is the intended integration seam.

Model: gpt-5.6-sol (high reasoning)
Harness: Codex in T3 Code

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XXL labels Aug 26, 2026
@github-actions

Copy link
Copy Markdown

Thread transfer impact

⚠️ The latest CI run did not produce a thread transfer result for dba69ad.

This comment will update automatically after the next completed run.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant