Skip to content

Web UI comparison and v1 adaptations ​

Use this source comparison to find which 0.x Web interactions the v1 client implements and which routes or data remain unavailable. It describes checked-in source and controlled screenshots, not a deployed product or live acceptance. The v1 Web client reuses the 0.x visual language and interactions that v1 services support. It does not restore the old monolith's API or guess data that a service does not return.

The visual baseline is the 0.x web app on the dev branch. The v1 client keeps that app's shell and shared components and fills them with v1 service data. When you compare the two, compare the routes that each app mounts, not only the retained source files.

Paths on this page that start with /api/v1 are public Gateway paths. Paths that start with /api are 0.x paths.

Structure ​

The 0.x rail is the same in every version. Shared parts keep one shape when their data source changes:

Shared partUsed by
RunListOverview, Sessions, Dashboard, Orchestrations, Flow, Observability, Diagnostics, and Heartbeat, on the project run list
DecisionViewRun Approvals tab
AttentionListOverview, Flow, and the notification bell, on your notifications
NewChatComposerRun Chat tab and the New session page
CaptureTaskFormBoard Intake and the Start task dialog
ProjectMetricsSectionsDashboard, Overview, and Observability, on project metrics and usage
PlatformComponentsSectionPlatform settings, Diagnostics, and Cluster, on the platform component report
PlatformComponentsTableRun settings tab

Run state words are the same everywhere: Needs input, Open, Working, and Done. Unavailable means the service did not return a state. It does not mean the run failed.

The UI says platform component for a replaceable platform area and implementation for the provider in use.

mermaid
flowchart LR
  signin[Sign in] --> overview[Overview]
  overview --> chief[Chief of Staff]
  chief --> priorities[Priorities]
  chief --> newchat[New chat]
  chief --> conversations[My conversations]
  overview --> projects[Projects]
  overview --> sessions[Sessions]
  overview --> attention[Needs attention]
  bell[Notification bell] --> attention
  sessions --> newsession[New session]
  newsession --> chat[Chat]
  projects --> dashboard[Project dashboard]
  dashboard --> orch[Orchestrations]
  dashboard --> agents[Agents]
  agents --> cast[Cast a team]
  orch --> run[Run page]
  sessions --> run
  attention --> decision[Decision view]
  dashboard --> board[Board]
  attention --> board
  starttask[Start task] --> board
  run --> decision
  run --> chat
  dashboard --> ops[Flow, Workflows, Workspace, Observability, Diagnostics, Heartbeat, Cluster]
  ops --> run
  ops --> board
  dashboard --> settings[Project settings]

The Overview groups Priorities, New chat, and My conversations under Chief of Staff. A v1-only rail link opens that section; 0.x navigation is unchanged. The Chief of Staff section follows the 0.x operations summary, projects, metrics, and activity. Start task is available on Overview when you can change an active project. The active Overview and Dashboard use published Gateway reads. Overview lists the four most recently updated active projects and reads their configuration, metrics, and backlog. Its Operations card keeps the 0.x four-counter layout and shows a neutral Health unavailable badge. In-flight, queued-work, and done-today values remain unavailable because GET /api/v1/overview is not published; only the caller-visible active-project count is measured. The same route is needed for the old aggregate metrics, usage, service health, and full activity feed. Overview therefore shows metrics for one selected project and recent run summaries rather than global activity. Dashboard reads GET /api/v1/projects/{projectId}, GET /api/v1/projects/{projectId}/configuration, GET /api/v1/projects/{projectId}/runs, GET /api/v1/projects/{projectId}/metrics, and GET /api/v1/projects/{projectId}/usage for its summary, setup checks, team, recent runs, selected range, model and per-agent usage panels, and quick actions. Neither page calls the old global overview or project dashboard endpoint. The notification bell and project switcher use the same published Gateway routes. When a read fails, its value is unavailable, not zero or healthy.

Page comparison checklist ​

Use the mounted 0.x pages as the reference. Compare at the same viewport and with the same project, active run, agent, and model fixture. Each app renders only fields its API provides. The screenshots compare layout and data gaps; they are not live acceptance evidence and do not claim pixel parity.

Page0.x section order and densityCard, table, and detail treatmentControls and navigationv1 data and gaps
OverviewOperations, Recent projects, AI usage & performance, then Activity feed beside Needs attention. Recent projects shows one current-focus panel and up to four compact project rows.One Operations card has a neutral Health unavailable badge and four counters. The project area is a split focus/list card. Five small usage cards follow. Activity and attention use bordered panels; there is no detail drawer or data table.Refresh, automatic refresh every 10 seconds while mounted, a 7-, 30-, or 90-day range, View all projects, project links, attention actions, and Start task for an active project you can change. The Chief of Staff group follows these sections. The project list becomes one column below 900px; the lower panels stack below 980px.Project card Issues counts only non-archived tasks linked to repository issues; other card stats use configuration and metrics. Operations keeps the four 0.x counters; only caller-visible Active projects is measurable. Health unavailable does not imply health status. GET /api/v1/overview is missing for the other totals, global health, aggregate usage, and full activity. v1 selects one project for metrics and shows recent run summaries.
DashboardStatus and four summary tiles lead; Setup checks and Team follow; Recent runs link to run details; Activity range controls and charts come next; model and agent panels finish the page.The status card pairs project state and next actions with four metric tiles. Setup checks link to saved model, repository, team, and skills settings. Team and recent runs use compact lists. Activity uses a bordered chart and run-total panel. Model and per-agent usage use tables; unavailable agent scores and response percentiles stay explicit. There is no detail drawer.Refresh and automatic refresh; 7-, 30-, and 90-day range selector; setup links, Team navigation, direct run links, and status-based links to Board, Flow, Orchestrations, or settings for archived projects. The header shows the current project role when the owner returns it. The activity columns stack below 980px.Project summary, configuration, run-list, metrics, and usage routes supply the supported panels. A failed separate weekly-count request leaves only that tile unavailable. Live health needs GET /api/v1/projects/{projectId}/health; task completions need GET /api/v1/projects/{projectId}/task-metrics; the leaderboard needs GET /api/v1/projects/{projectId}/agent-metrics; response percentiles need the responseDuration and timeToFirstToken fields on GET /api/v1/projects/{projectId}/metrics.
WorkflowsActive workflow, Available workflows, then Invalid workflows in 0.x, with only nonempty groups shown. v1 keeps the active section first, followed by Referenced workflows, not an invented available/invalid catalog.Both use the incumbent stacked ListRow inside RichList, flow icon bubbles, badges, a source/action row, and inline details. v1 groups saved blueprint references by workflow ID, puts references to the default on its active card, and expands blueprint assignments. It does not substitute assignments for a graph.0.x has New, Generate, Set as default, Sync, View graph, Run now, Duplicate, Edit, visual edit, schedule, and event controls; there is no global filter. v1 keeps Refresh, Open Project settings, and Use platform default, and adds View blueprints with Enter/Space support. Controls and long identifiers wrap at narrow widths.Configuration supplies only default and blueprint workflow IDs. Names, file sources, validity, built-in status, catalog choices, definitions, and execution controls remain unavailable, as stated on the page and in the inventory below.

Matched screenshots ​

These captures use the same 1440 by 1000 viewport and equivalent fixture data. They show layout and data gaps; they are not live acceptance evidence and do not claim pixel parity.

Page section0.x baselinev1
Overview, top0.x Overview at the top of the pagev1 Overview at the top of the page
Overview, Operations0.x Overview Operations sectionv1 Overview Operations section
Overview, activity0.x Overview activity sectionv1 Overview activity section
Dashboard, top0.x Dashboard at the top of the pagev1 Dashboard at the top of the page
Dashboard, model metrics0.x Dashboard model metrics sectionv1 Dashboard model metrics section

The restored setup, Team, and recent-run panels are also shown in a v1 supporting capture:

v1 Dashboard setup checks, Team, and recent runs

Workflows screenshot provenance ​

The Workflows v1 before capture is the mounted page at 2177004d0bc72f6ab02841c8d019383ffcd63ce7; after is the restored page. Both use a 1440 by 1000 viewport, expanded navigation, project Payments, default issue-to-merge, and three saved blueprint references: engineer uses the default; reviewer and release-manager use review-and-verify. The after capture has that second workflow's blueprint details expanded. All responses are local Playwright fixtures, not a live sign-in or deployment.

Before, mounted v1 configuration fixtureAfter, same fixture and viewport
Workflows before restoration, with one row per blueprintRestored Workflows, with active and grouped referenced workflow cards and expanded blueprint details

The historical reference below renders the real retained src/pages/WorkflowsPage.tsx in an isolated page harness, without the historical shell, at the same 1440 by 1000 viewport. Its functional source matches fb24c71c4d912354998ccaf775af12be4a049798 (later differences are comments). It uses the two equivalent workflow IDs in a local 0.x catalog fixture, including example names, descriptions, source filenames and valid status. Those extra fields are not present in the v1 configuration response and are deliberately absent from the restored v1 cards. This is source comparison, not a recovered historical screenshot or pixel-parity claim.

Historical 0.x Workflows page source with a local catalog fixture, without its shell

The supporting v1 capture uses 390 by 844 with navigation collapsed. The browser test also expands long unbroken workflow and blueprint IDs and checks both document and card overflow.

Restored Workflows at 390 pixels with collapsed navigation and wrapping cards

Surfaces ​

Each row says what works and what is still missing. The missing parts link to Endpoint gaps, which names the exact routes.

0.x surfaceWorks in v1Missing
Sign-inBroker sign-in in the 0.x card.Nothing.
ConsentPermission explanations in the sign-in card.Nothing.
Shell and breadcrumbs0.x rail with Overview, the v1-only Chief of Staff section link, Projects, and Sessions, the New session button, project switcher, persona menu with the running web app version, and Projects / project / page breadcrumbs. Project pages list Flow, Workflows, Workspace, Observability, Diagnostics, Heartbeat, and Cluster.Nothing.
Notification bellYour notifications across projects, with the pending count, links to the run Approvals tab or the Board, and Dismiss.Nothing.
Overview0.x Operations tiles first, then four recent project rows, metrics and usage for one chosen project, recent run summaries, and Needs attention. The Chief of Staff group with Priorities, New chat, and My conversations follows these sections. Start task opens task capture for an active project you can change. Missing global totals and full activity are named in the page.Cross-project totals, aggregate metrics and usage, service health, and the full activity feed from GET /api/v1/overview.
SessionsRuns across your projects, newest first, with Load more, Refresh, and New session.Nothing.
New session/assistant picks a project, creates the run with the first message, signs in silently for that run, starts it, and opens Chat.A run without a project (operator assistant).
Start taskFloating Start task button. Its dialog captures a task into the Backlog and opens the Board.Nothing.
Projects gallery0.x tiles with state and your access.Nothing.
Create blank projectDialog with a project name.Nothing.
Create from GitHubCreates the project, then saves the repository with GitHub App sign-in.The creator receives Owner authority; repository setup remains a separate operation.
DashboardRun-based status and metric tiles, saved setup checks and next actions, archived-project guidance, recent runs with direct links, Team, Activity chart, run totals, model usage, and per-agent usage. Unavailable values are named instead of filled with guesses.Live project health, completed-task counts, agent leaderboard scores, and response-duration percentiles.
OrchestrationsActive and Recent sections with Load more, a state summary, and Refresh.Run delete and archive.
Run pageTwo-pane layout with status strip, Run tree, and tabs Chat, Topology, Approvals, Activity, Changes, Usage, and Run settings. The Activity tab shows short, user-focused event summaries without internal journal fields. Stop run while the run is open. If the run sign-in is refused, the panel shows the reason.Terminal diagnostic and retry.
Run ChatConversation text loaded through the run-bound API and a composer for the coordinator or the selected session. Text that the API does not return is shown as unavailable; the UI does not fill in missing messages.Nothing.
Run ApprovalsShared decision view that rereads each gate before acting.Nothing.
Run ChangesGitHub App repository access for the run, and Produced files: saved file sets, newest first, with Browse files, the 0.x file viewer, Show changes with the 0.x diff viewer, Refresh, and Load older file sets.Nothing.
Run settingsModel, revisions, and implementations for each platform component.Nothing.
AgentsMetrics row, filter, tiles, drawer with Overview, recent caller-visible history with loading, empty, permission, and error states, and Charter, proposal-based Remove from team and Re-role with optional custom role titles, Cast team, Add member, explicit repository preview and reviewed commit, digest-checked AgentSuite Sync export/import, and Pending team proposals.Nothing.
Cast a teamFormulate, Template, and Analyze modes; goal, team size, role preferences, server-provided universe selection, and Augment or Recast when a team exists. AI output stays pending for review with role changes, custom titles, and member removal, then confirm or reject.Nothing.
SkillsStat strip, Add skill, Import skill with folder, files, or ZIP upload, Browse marketplaces with Suggested marketplaces, marketplace sources, browse, preview, import, Catalog with Remove skill, and Assignments.Nothing.
MemoriesRun and agent pickers, kind tabs, search, revisions, and transfer. Project-wide Knowledge uses GET /api/v1/projects/{projectId}/knowledge/records; the summary row shows pending-proposal, decision, active-memory, and v1 session-history-record totals, with independent loading and unavailable states.The session-history total counts records currently returned by accepted project-run history trees. It is not a literal legacy handoff count.
Settings > GeneralRename with the project revision.Nothing.
Settings > AccessYour permissions and Members: list, Add member, and Remove.Effective role names (behavior limit).
Settings > Repository, Platform components, Run limits, Connections, History, AdvancedSaved configuration fields and revisions.Nothing.
Settings > ModelsDefault model, reasoning effort, credential, and per-task models.Model catalog (behavior limit).
Settings > Danger zoneArchive and restore.Project delete: DELETE /api/v1/projects/{projectId}.
Account settingsThe 0.x description, an Authentication summary with the sign-in method and your name, Sign out, and the GitHub Repo App connection.Account AI access.
Platform settingsThe web app version and build commit, and all 16 platform component areas with owner, readiness, and the active and available implementations with their versions.BYOK providers, platform-default Copilot status, account AI access.
BoardRun counts from the same project metrics as Dashboard, plus Open runs, Human review, Problems, and paged Run history. Refresh reloads the backlog, run counts, and all four run lists. The backlog also has Backlog, Ready, Active, and Done columns with counts, summary strip, zoom, Intake, title and description edits, queue state, queue order, drag and drop within or between Backlog and Ready, send all to Ready, archive, prerequisite controls, and a revision-checked Delete task confirmation for eligible tasks. Known dependents and repository-issue links disable delete with an explanation. The Board can preview and explicitly promote a confirmed work plan.Automatic pickup settings remain unavailable until v1 has a scheduler. File decomposition is not available; work-plan promotion does not read local files or create a plan.
FlowProject task notifications, Needs input including dismissed gates, Task stages, and Open, Working, and Done run groups.The live agent graph for the project and current provider-side PR state per run.
WorkflowsActive workflow and grouped Referenced workflows rich-list cards, with View blueprints inline assignments. Use platform default clears a saved default; Refresh and Open Project settings work.Workflow catalog and definitions, validity, graph, edit, run, generate, sync, schedule and event triggers, and choosing a different workflow as the default.
WorkspaceRepository from configuration, committed files from a selected branch or tag when the configured GitHub App connection can read it, Pull requests that runs opened or reused, and Issues synced into the backlog.Uncommitted/local worktree changes and repository imports are not available.
ObservabilityMetric tiles, Activity chart, run totals, model and agent usage, and Recent runs.Per-run traces and response-duration percentiles.
DiagnosticsAreas that are not ready from the platform component report, and Failed runs.Service self-checks and project diagnostic reports.
HeartbeatSeven-day metric tiles and Active and blocked runs.Heartbeat records for each service process.
ClusterThe web app version and build commit, and Platform components with owner, readiness, and implementations with their versions.Node and replica topology.
Apps and CanvasNot shown.Not planned for v1.

Workflows page inventory ​

The v1 route keeps the project breadcrumb and uses the shared 0.x PageSection, RichList, and ListRow components for the settings-backed cards and their inline-detail layout. References to the default appear on its active card; other references appear once per workflow, in saved order. View blueprints expands the saved assignments with an accessible disclosure; its actions remain visible on touch and keyboard layouts. This is a configuration-backed adaptation, not a restored definition viewer. Workflow definitions and validity are not inferred from saved identifiers.

0.x section, card, control, or pathv1 equivalent or exact gap
/projects/:projectId/workflows, Projects / project / Workflows breadcrumbThe route and project breadcrumb work. Open Project settings links to that project's settings; Refresh reloads the saved configuration.
Active workflow card, default badge, and workflow IDActive workflow shows the saved default ID and Project default badge, source Project configuration, and explicit blueprint-use count. No validity or built-in badge is inferred. Use platform default clears it through PUT /api/v1/projects/{projectId}/configuration, preserving other settings and using the loaded revision.
Available workflow cards, built-in/project badges, descriptions, source, trigger badges, and valid statusMissing catalog reads: GET /api/v1/projects/{projectId}/workflows and GET /api/v1/projects/{projectId}/workflows/{workflowId}. The v1 page does not invent these details.
Invalid workflow cards and validation errorsMissing GET /api/v1/projects/{projectId}/workflows, which must return validation status and error text with the catalog.
Global workflow search or filterThe 0.x page has no global catalog search or filter. Event-trigger conditions are the only filter controls; their missing routes are listed below.
Blueprint workflow referencesReferenced workflows groups the saved IDs into one card per non-default workflow. View blueprints opens inline assignments; the default card has the same disclosure when blueprints use it. Empty copy distinguishes no explicit references from all references using the default. These cards are not the missing Available workflows catalog.
Set-as-default menu, project/built-in groups, and reset actionUse platform default works through the configuration update. Choosing a listed workflow needs the missing catalog read GET /api/v1/projects/{projectId}/workflows; the existing configuration update route can save the selected ID once the catalog is available.
View graph inline detail panelMissing GET /api/v1/projects/{projectId}/workflows/{workflowId}/graph.
New workflow, YAML Edit, Edit visually, and editor save/validate/undo/redo/revert/discard controlsMissing workflow YAML read GET /api/v1/projects/{projectId}/workflows/{workflowId}/yaml and save PUT /api/v1/projects/{projectId}/workflows/{workflowId}. The same save route must accept a new workflow ID.
Duplicate to project and built-in copy-on-write for edits or triggersMissing YAML read GET /api/v1/projects/{projectId}/workflows/{workflowId}/yaml and save PUT /api/v1/projects/{projectId}/workflows/{workflowId}.
Run nowMissing POST /api/v1/projects/{projectId}/workflows/{workflowId}/runs.
Schedule dialog: cadence, weekday/month day, UTC time, save, remove, cancelMissing YAML read GET /api/v1/projects/{projectId}/workflows/{workflowId}/yaml and save PUT /api/v1/projects/{projectId}/workflows/{workflowId}.
Event dialog: event, issue action, condition type/value, match-any, add/remove condition/value, save, remove, cancelMissing YAML read GET /api/v1/projects/{projectId}/workflows/{workflowId}/yaml and save PUT /api/v1/projects/{projectId}/workflows/{workflowId}.
Generate workflow dialog and Check status for a pending jobMissing POST /api/v1/projects/{projectId}/workflows/generate, GET /api/v1/projects/{projectId}/workflows/generation-jobs/{jobId}, and GET /api/v1/projects/{projectId}/workflows/generation-jobs/{jobId}/result.
Sync and the empty-state sync actionMissing POST /api/v1/projects/{projectId}/workflows/sync.
Loading, empty, error, and denied statesThe page uses the incumbent loading skeletons and empty-state component. Failed or denied reads show the error instead of cached references, including open details; Refresh retries. The reset action reports write errors, including denied writes.

src/v1/OperationsPages.test.tsx covers grouping, default reset and revision preservation, stale-refresh fencing, loading, empty, read/write denial, and read failure. e2e/workflows.e2e.test.mjs exercises the mounted route through the local Gateway harness, Tab/Enter/Space disclosure navigation, 390-pixel layout with long identifiers, all five read states, recovery, and a revision-fenced reset that preserves blueprint choices. No test calls a workflow catalog route or runs a workflow. The 0.x editor, graph, generation, and trigger controls remain blocked by the exact missing routes below; this slice does not close the whole page-parity issue.

Re-role comparison ​

In 0.x, Re-role changes a team member directly. In v1, it updates the member in a pending proposal; confirm the proposal to apply the change. A custom role title changes the display name without replacing the catalog role. These screenshots use example data.

0.x Re-role control

v1 proposal Re-role dialog

Every page shows a loading state, an empty state, a permission message for 403, and the service error for other failures. The Platform components section on Diagnostics and Cluster needs tenant or platform administrator access. Other users see a permission message there and the rest of the page.

Unavailable destinations ​

/observability/* without a project shows Not available in this version with a link back, because there is no summary across projects. Unknown addresses show Page not found. /console opens /assistant, and /projects/:projectId/sessions opens /sessions.

Endpoint gaps ​

Each row records a remaining endpoint or UI gap. A route marked available is in the Gateway catalog and uses the Orchestrator owner. The web client does not work around missing routes.

Configured-repository Workspace reads are now available through GET /api/v1/projects/{projectId}/source-control/refs, GET /api/v1/projects/{projectId}/source-control/tree?ref={commitSha}, and GET /api/v1/projects/{projectId}/source-control/files/{path}?ref={commitSha}. They use the configured repository, current project read authority, and its GitHub App connection; the tree and file are pinned to an immutable commit. This is separate from the produced-run file browser on Run Changes. Local worktree edits and repository import remain unavailable.

Gap0.x endpointMissing v1 method and pathPlan
Board task positionPOST /api/projects/{p}/backlog/reorderAvailable: PUT /api/v1/projects/{projectId}/backlog/tasks/{taskId}/positionQueue positions are stored and revision-checked. The Board supports earlier/later actions and drag and drop within or between Backlog and Ready.
Send all to ReadyPOST /api/projects/{p}/backlog/ready-allAvailable: POST /api/v1/projects/{projectId}/backlog/ready-allMoves eligible tasks in one graph change. The Board has a Backlog action.
Confirmed work-plan promotionExisting Orchestrator promotion owner operation; no 0.x Board actionAvailable: GET /api/v1/projects/{projectId}/runs/{runId}/backlog/promotions/preview and POST /api/v1/projects/{projectId}/runs/{runId}/backlog/promotionsThe Board previews the confirmed work plan without writing. On confirmation, the owner uses the current graph revision and commits tasks, dependencies, and origins together. A stale decision or graph revision returns a conflict without partial changes. This action promotes a work plan; it is not file decomposition.
Board columns and stagesGET /api/projects/{p}/board, GET /api/projects/{p}/workflow-stagesGET /api/v1/projects/{projectId}/boardReturn Human Review and Problems placement with the backlog; show both columns.
Task deleteDELETE /api/projects/{p}/backlog/tasks/{id}Available: DELETE /api/v1/projects/{projectId}/backlog/tasks/{taskId}The Board confirms the task title, sends the observed graph and task revisions, and replaces local state with the owner's returned graph. Loaded dependents and known repository-issue links are disabled in the UI; the owner remains authoritative for accepted-plan origins, issue-sync receipts, and an active issue sync cycle. No matching mounted 0.x card action was found; this is a new v1 control, not a restored legacy interaction.
Automatic pickup settingsGET and PUT /api/projects/{p}/backlog/settingsNo v1 routeKeep automatic pickup unavailable until v1 has a scheduler. Do not persist settings that cannot run or show a no-op control.
File decompositionPOST /api/projects/{p}/backlog/decomposeNo v1 routeFile decomposition is not available. The Board only promotes an existing confirmed work plan; it does not read local files or call a model.
Run deleteDELETE /api/runs/{id}DELETE /api/v1/projects/{projectId}/runs/{runId}Add delete for finished runs with an expected revision; add it to the run menu.
Run archivePOST /api/runs/{id}/archivePOST /api/v1/projects/{projectId}/runs/{runId}/archiveHide finished runs from lists without deleting their records.
Run terminal diagnosticGET /api/runs/{id}/terminal-diagnosticGET /api/v1/projects/{projectId}/runs/{runId}/terminal-diagnosticReturn the failure reason of a failed run; show it in the status strip.
Run retryPOST /api/runs/{id}/retryPOST /api/v1/projects/{projectId}/runs/{runId}/retryCreate a new run from the same selection; link it from the failed run.
BYOK providersGET and POST /api/admin/byok-providers, PUT and DELETE …/{id}, POST …/{id}/activate, POST …/deactivateGET and POST /api/v1/platform/byok-providers, PUT and DELETE /api/v1/platform/byok-providers/{providerId}, POST …/{providerId}/activate, POST /api/v1/platform/byok-providers/deactivateStore provider endpoints with secret references; add a Platform settings section.
Platform-default CopilotGET /api/admin/platform-default-copilot/status, POST …/begin, POST …/disconnectGET /api/v1/platform/copilot-connection, POST /api/v1/platform/copilot-connection/begin, POST /api/v1/platform/copilot-connection/disconnectPlatform runtime defaults hold model defaults only. Add a platform credential connection and show its status.
Account AI accessGET /api/account/ai-accessGET /api/v1/account/ai-accessReturn which model sources the caller can use; show it in the persona menu.
Operator assistantPOST /api/assistant/runs, POST /api/assistant/runs/{id}/messages, GET /api/assistant/runs?limit=POST /api/v1/assistant/runs, POST /api/v1/assistant/runs/{runId}/messages, GET /api/v1/assistant/runsChief of Staff conversations exist but cannot start a run without a project. Add project-less runs, then let New session skip the project picker.
Unattended GitHub readinessGET /api/projects/{p}/github/unattended-readinessGET /api/v1/projects/{projectId}/source-control/unattended-readinessReport whether runs can use the repository without a signed-in user; show it on Settings > Repository.
Automation statusGET /api/projects/{p}/automation/status, POST …/activate, POST …/deactivateGET /api/v1/projects/{projectId}/automation, POST /api/v1/projects/{projectId}/automation/activate, POST /api/v1/projects/{projectId}/automation/deactivateReport and switch backlog automation; add a Board control.
Response-duration percentilesGET /api/projects/{p}/metrics fields responseDuration and timeToFirstToken (p50Ms, p95Ms)Same fields on GET /api/v1/projects/{projectId}/metricsAdd p50 and p95 to the metrics response; show two tiles on Observability.
Cross-project overviewGET /api/overviewGET /api/v1/overviewReturn totals across the caller's projects; show them on Overview and on /observability.
Live project healthGET /api/projects/{p}/dashboardGET /api/v1/projects/{projectId}/healthDefine an owner read for the project's current run health, publish it through the Gateway, then show it in the dashboard status card. Until then, show saved setup readiness instead.
Overview activity feedGET /api/overview field recent_activityGET /api/v1/overview field recentActivityCollect run, merge, and deployment events from the relevant owners, then provide a caller-scoped event list. Until then, show recent run states only.
Dashboard task completionsGET /api/projects/{p}/dashboard field tasks_done_this_weekGET /api/v1/projects/{projectId}/task-metricsRecord task completion timestamps in the backlog owner and return measured counts by range. Until then, keep the completed tasks tile unavailable.
Dashboard agent leaderboardGET /api/projects/{p}/metrics field leaderboardGET /api/v1/projects/{projectId}/agent-metricsAdd per-agent run outcomes and duration data to the run owner, with its agent identity, before publishing ranked agent results. Until then, show an unavailable leaderboard, not project-wide success as an agent score.
Daily success trendGET /api/projects/{p}/metrics daily quality trendGET /api/v1/projects/{projectId}/metrics field dailySuccessAggregate the run owner's terminal outcomes by day and return the numerator and denominator per bucket. Until then, show the selected-range success rate without a daily trend.
Run tracesGET /api/metrics/runs/{runId}/tracesGET /api/v1/projects/{projectId}/runs/{runId}/tracesRun Activity replays run events today. Add span timing and show a trace view.
DiagnosticsGET /api/diagnostics, GET /api/diagnostics/detailedGET /api/v1/platform/diagnosticsReturn service self-checks; add a section on Diagnostics.
Project diagnosticsGET /api/projects/{p}/diagnosticsGET /api/v1/projects/{projectId}/diagnosticsReturn configuration and connection checks for one project.
HeartbeatGET /api/diagnostics/heartbeatGET /api/v1/platform/heartbeatReturn the last heartbeat of each service process; add a table on Heartbeat.
Cluster topologyGET /api/diagnostics/cluster, GET /api/diagnostics/cluster/topologyGET /api/v1/platform/clusterReturn nodes and replicas; add a table on Cluster.
System runtimeGET /api/system/runtimeGET /api/v1/platform/runtimeReturn host details, such as the .NET runtime and operating system, and show them on Cluster. The web app version and each component version are already shown.
Workflow catalogGET /api/projects/{p}/workflows, GET /api/projects/{p}/workflows/{id}GET /api/v1/projects/{projectId}/workflows, GET /api/v1/projects/{projectId}/workflows/{workflowId}Return available workflow summaries, validation results, and details for the Workflows cards.
Workflow YAML and graphGET /api/projects/{p}/workflows/{id}/yaml, GET /api/projects/{p}/workflows/{id}/graphGET /api/v1/projects/{projectId}/workflows/{workflowId}/yaml, GET /api/v1/projects/{projectId}/workflows/{workflowId}/graphReturn the saved YAML and graph descriptor for the editors and inline detail panel.
Workflow edit and triggersPUT /api/projects/{p}/workflows/{id}PUT /api/v1/projects/{projectId}/workflows/{workflowId}Create or save a workflow definition, including schedule and event trigger changes, with validation feedback.
Workflow generation and resumePOST /api/projects/{p}/workflows/generate, GET /api/projects/{p}/workflows/generation-jobs/{jobId}, GET /api/projects/{p}/workflows/generation-jobs/{jobId}/resultPOST /api/v1/projects/{projectId}/workflows/generate, GET /api/v1/projects/{projectId}/workflows/generation-jobs/{jobId}, GET /api/v1/projects/{projectId}/workflows/generation-jobs/{jobId}/resultReturn a reviewable YAML draft and support checking a pending generation job.
Workflow syncPOST /api/projects/{p}/workflows/syncPOST /api/v1/projects/{projectId}/workflows/syncRead workflow files from the repository.
Workflow runPOST /api/projects/{p}/workflows/{id}/runPOST /api/v1/projects/{projectId}/workflows/{workflowId}/runsStart a run with that workflow.
Default workflowPUT /api/projects/{p}/workflows/defaultAvailable: PUT /api/v1/projects/{projectId}/configuration saves defaultWorkflowIdThe Workflows page can clear a saved default. Choosing a different workflow needs the catalog route above.
Task workflow overridePUT /api/projects/{p}/backlog/tasks/{id}/workflow-overridePUT /api/v1/projects/{projectId}/backlog/tasks/{taskId}/workflowStore a workflow choice on a task; add it to the card editor.
Team memory summaryGET /api/projects/{p}/decisions, GET /api/projects/{p}/decisions/inbox, GET /api/projects/{p}/memory, GET /api/projects/{p}/sessionsGET /api/v1/projects/{projectId}/knowledge/records plus sessionHistoryRecordsTotal from GET /api/v1/projects/{projectId}/metricsPending proposals use kind=proposal&state=pending; decision and active-memory totals use the other supported project-wide search filters. These count Knowledge proposals, not legacy inbox entries. The v1 summary counts records in accepted run-history trees; this is not a literal legacy SessionContext handoff total. The per-run history endpoint remains GET /api/v1/projects/{projectId}/runs/{runId}/history/sessions.
Agent historyGET /api/projects/{p}/team/members/{name}/historyGET /api/v1/projects/{projectId}/agents/{agentId}/historyReturn recent history for one project agent; show it in the Agents drawer.
Repository-backed team syncGET and POST /api/projects/{p}/team/syncGET and POST /api/v1/projects/{projectId}/team/syncThe Agents Sync panel loads a preview when opened, displays the hash and changed .squad/ paths, and requires explicit commit with an optional message. The hash binds project revision, GitHub installation and repository IDs, branch head, and files. No files are mirrored automatically. Digest-checked AgentSuite export/import remains a separate portable transfer.
Project deleteDELETE /api/projects/{p}?confirm=trueDELETE /api/v1/projects/{projectId}Delete an archived project with its revision; add it to Danger zone.

Behavior limits ​

These limits are not missing routes:

  • Create-from-GitHub: project creation grants the creator Owner authority. Saving the optional repository configuration remains a separate operation and can fail without undoing project creation.
  • Effective role names: the authorization context lists permissions, not role names. Tiles show access based on permissions.
  • Project health: there is no live status dot. The dashboard shows readiness from saved configuration.
  • Model catalog: the Gateway does not return the available models and providers. Enter existing model and credential references.

Evidence boundary ​

Personal Priorities and the private conversation list are new Gateway adapters, not copies of a 0.x page. The new chat and follow-up forms use the retained NewChatComposer; Flow groups use RunList, and gates use DecisionView and AttentionList. Existing project pages remain available alongside these views.

Priority issue and pull request choices use authorized stored owner lists. Saved-capture list, detail and Priority selection are also new Gateway adapters. Their file tree and Source/Preview content reuse FilesTabPanel and FileViewer. Compare those components at matching widths, but do not invent a 0.x screenshot for the new adapters. See Chief of Staff for behavior and limits.

Local screenshots use fixture data and isolated source snapshots. They compare 0.x, v1 before the adaptation, and adapted v1 without live sign-in or real credentials. They do not prove deployed identity, authorization, or live providers. For the actual routes, settings, and current limits, see Use the v1 web client.