mirror of
https://github.com/paperclipai/paperclip.git
synced 2026-10-30 13:20:54 +01:00
test(storybook): add production examples for feature map UI gaps (#16196)
## Thinking Path > - Paperclip manages AI agents and their work. > - The feature map records the user-facing capabilities. > - Storybook uses the same feature index. > - Step 2 found 49 UI capabilities with no authored examples. > - This pull request adds shipped-component examples with isolated fixtures. > - The catalog records each example's states and remaining production checks. ## Linked Issues or Issue Description Refs: #16167. The verification inventory is merged; this follow-up now targets master. ## What Changed - Add 37 suites and 257 scenarios for all 49 UI capabilities from the step-2 inventory. Keep existing stories and IDs. - Use shipped pages and components. Simulate API replies, sockets, props, and callbacks at their boundaries. - Activate story API fixtures before the application providers read data. Block unregistered API mutations and restore owned storage/fetch state. - Add browser checks for rendering, declared play assertions, fixture reset, and selected mobile/theme states. Update the catalog and verification inventory. ## Verification - `pnpm -r typecheck`: passed. - `pnpm build`: passed. - UI Vitest suite: 730 files and 8,208 tests passed. Fixture boundary tests: 4 passed. - Map/catalog checks, 27 generator/map tests, and token gates: passed. - `pnpm build-storybook`: passed. All 2,248 previous built entry IDs remain present. - Pre-reconciliation static browser suite: 260 checks passed (257 scenarios, token fixture reset, and two mobile/theme cases). All non-play stories assert an explicit subject state; 129 play functions passed. - `pnpm test:run` could not complete on this Mac. Embedded PostgreSQL exhausted host shared-memory allocation. The run also reported native-runner test timeouts. Only this task's verified runner was stopped; other jobs and host settings were preserved. - Reconciled onto merged master `252d9b5077`. The six draft stories and new same-browser reset regression passed (7 checks); 16 draft-persistence tests and UI typecheck passed. Static merge verification: 32 affected-subject/draft checks passed, including same-browser reset. Rebuilt Storybook retains all 2,248 original IDs in its 2,517-entry index. Four additional play-result checks passed: visible onboarding reset, pending probe, filtered-empty runs, and optimistic queued-response removal. UI typecheck and 27 catalog/map tests also passed. Final static browser suite on `3fab35df8d912935fa86ce0de7d32d07e2b5f4c3`: all 261 checks passed (257 scenarios plus fixture-reset and mobile checks). Latest head `3fab35df8d912935fa86ce0de7d32d07e2b5f4c3`: all 55 CI/status checks passed; the two optional Storybook workflow jobs were skipped. Greptile 5/5 with no unresolved threads. - No pinned Linux visual-baseline comparison or real provider journey is claimed. ## Risks Fixtures can drift from production contracts. The catalog records inspected sources and their fingerprints. Capability links provide initial isolated UI coverage; they do not certify every recipe variant, real permissions, persistence, or provider behavior. The new examples expose existing UI limits. Plugin discovery failure stays on Loading. Document and environment-list reads lack dedicated failure feedback; Cases and Inbox fall back to empty views after errors. Goal alignment has display views but no assignment control. These findings remain visible in the inventory. ## Model Used OpenAI GPT-6 via Codex. The exact runtime deployment ID and context window are not exposed in this session. Used code generation, shell execution, and browser verification. ## Checklist - [x] I have included a thinking path that traces from project context to this change - [x] I have specified the model used (with version and capability details) - [x] I have checked ROADMAP.md and confirmed this PR does not duplicate planned core work - [x] I have searched GitHub for duplicate or related PRs and linked them above - [x] I have either (a) linked existing issues with `Fixes: #` / `Closes #` / `Refs #` OR (b) described the issue in-PR following the relevant issue template - [x] I have not referenced internal/instance-local Paperclip issues or links (only public GitHub `#NNN` / `github.com/paperclipai/paperclip` URLs) - [x] My branch name describes the change (e.g. `docs/...`, `fix/...`) and contains no internal Paperclip ticket id or instance-derived details - [x] I have run tests locally and they pass - [x] I have added or updated tests where applicable - [x] I have updated relevant documentation to reflect my changes - [x] I have considered and documented any risks above - [x] All Paperclip CI gates are green - [x] Greptile is 5/5 with no open P2s, recommendations, or follow-ups - [x] I will address all Greptile and reviewer comments before requesting merge --------- Co-authored-by: Paperclip <noreply@paperclip.ing>
This commit is contained in:
1 parent
252d9b5077
commit
c8efdbfba4
54 files changed
+6759
-73
No files matched your search
+100
-63
@@ -4,7 +4,7 @@
|
||||
|
||||
[Contract and maintenance](README.md) · [Review findings](REVIEW.md)
|
||||
|
||||
225 story files; 2224 indexed stories. Counts describe inventory, not passed tests or complete feature coverage.
|
||||
262 story files; 2481 indexed stories. Counts describe inventory, not passed tests or complete feature coverage.
|
||||
|
||||
Status describes product alignment; implementation describes the rendered subject; boundary describes simulated data. Sources and limitations are in catalog.json. Related capabilities cross-list one canonical story file.
|
||||
|
||||
@@ -21,6 +21,7 @@ Instance setup, company wizard, first agent and task.
|
||||
| [Getting started and access/Onboarding and first work/Onboarding/Agent arc](../../ui/storybook/stories/onboarding/onboarding-agent-arc.stories.tsx) | `onboarding/adapter`, `onboarding/first-task` | unreviewed / production / fixtures | 27 / 11 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
| [Getting started and access/Onboarding and first work/Onboarding/Character](../../ui/storybook/stories/onboarding/onboarding-character.stories.tsx) | `onboarding/company` | unreviewed / production / fixtures | 3 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
| [Getting started and access/Onboarding and first work/Onboarding/Connect a model](../../ui/storybook/stories/onboarding/onboarding-connect-model.stories.tsx) | `onboarding/adapter`, `onboarding/first-task` | historical / prototype / fixtures | 5 / 0 | Older tile/mode preview; onboarding-agent-arc mounts the production wizard. |
|
||||
| [Getting started and access/Onboarding and first work/Resume a saved draft](../../ui/storybook/stories/onboarding/resume-draft.stories.tsx) | `onboarding/resume` | current / production / fixtures | 4 / 3 | OnboardingWizard restores a seeded draft, malformed/unavailable-company handling and draft retention across a fixture remount. The reopen button belongs to the fixture host; real reload, account switch and storage failure remain separate checks. |
|
||||
|
||||
### Login, invitations, and access
|
||||
|
||||
@@ -30,6 +31,8 @@ Sessions, bootstrap, membership, roles, and CLI authorization.
|
||||
|
||||
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| [Getting started and access/Login, invitations, and access/CLI authorization](../../ui/storybook/stories/access/cli-authorization.stories.tsx) | `access/cli-auth` | current / production / fixtures | 9 / 5 | Real CliAuth route with pending/expired/unavailable/preflight denial, approval/cancel and write pending/error. Fictional challenge; no CLI identity or real token is authorized. |
|
||||
| [Getting started and access/Login, invitations, and access/Organization membership](../../ui/storybook/stories/access/membership.stories.tsx) | `access/membership` | current / production / fixtures | 7 / 2 | CompanyAccess member list and role change with loading/empty/failure/403 and failed mutation toast. Backend actor authority, invite lifecycle and durable membership are not verified. |
|
||||
| [Getting started and access/Login, invitations, and access/Private tasks/00 Review guide](../../ui/storybook/stories/access/private-tasks/00-review-guide.stories.tsx) | `access/resources`, `tasks/properties` | unreviewed / guide / static | 1 / 0 | Review guide retained; explanatory content does not establish runtime or production coverage. Expanded upstream verification recipes were inspected; the existing fixture scenarios do not prove the added backend handoff, workspace, recovery or authorization contracts. Creation-visibility verification recipes were updated; this story scenario is unchanged and does not prove that journey. The filter uses one lowercase label without helper text. All chat-channel tasks count as bot-created; the focused visibility stories cover human-initiated channel work. |
|
||||
| [Getting started and access/Login, invitations, and access/Private tasks/01 Creation](../../ui/storybook/stories/access/private-tasks/01-creation.stories.tsx) | `access/resources`, `tasks/properties` | unreviewed / production / fixtures | 22 / 14 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Master reconciliation inspected assignment-history recipient suggestions and manual-selection retention; existing stories do not establish the new assignment-history behavior. Expanded upstream verification recipes were inspected; the existing fixture scenarios do not prove the added backend handoff, workspace, recovery or authorization contracts. Creation visibility now defaults to hiding automated independent tasks, with a show agent-created tasks control and inbox participation exceptions. Source alignment reviewed; these fixture stories do not establish live server pagination or authorization. The filter uses one lowercase label without helper text. All chat-channel tasks count as bot-created; the focused visibility stories cover human-initiated channel work. |
|
||||
| [Getting started and access/Login, invitations, and access/Private tasks/02 Sharing](../../ui/storybook/stories/access/private-tasks/02-sharing.stories.tsx) | `access/resources`, `tasks/properties` | unreviewed / production / fixtures | 26 / 10 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Expanded upstream verification recipes were inspected; the existing fixture scenarios do not prove the added backend handoff, workspace, recovery or authorization contracts. Creation-visibility verification recipes were updated; this story scenario is unchanged and does not prove that journey. The filter uses one lowercase label without helper text. All chat-channel tasks count as bot-created; the focused visibility stories cover human-initiated channel work. |
|
||||
@@ -38,6 +41,7 @@ Sessions, bootstrap, membership, roles, and CLI authorization.
|
||||
| [Getting started and access/Login, invitations, and access/Private tasks/05 Projects](../../ui/storybook/stories/access/private-tasks/05-projects.stories.tsx) | `access/resources`, `tasks/properties`, `projects/lifecycle` | unreviewed / production / fixtures | 19 / 12 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Expanded upstream verification recipes were inspected; the existing fixture scenarios do not prove the added backend handoff, workspace, recovery or authorization contracts. Creation-visibility verification recipes were updated; this story scenario is unchanged and does not prove that journey. The filter uses one lowercase label without helper text. All chat-channel tasks count as bot-created; the focused visibility stories cover human-initiated channel work. |
|
||||
| [Getting started and access/Login, invitations, and access/Private tasks/06 Full product pages](../../ui/storybook/stories/access/private-tasks/06-full-product-pages.stories.tsx) | `access/resources`, `tasks/properties`, `projects/lifecycle` | unreviewed / production / fixtures | 21 / 12 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Master reconciliation inspected assignment-history recipient suggestions and manual-selection retention; existing stories do not establish the new assignment-history behavior. Expanded upstream verification recipes were inspected; the existing fixture scenarios do not prove the added backend handoff, workspace, recovery or authorization contracts. Creation visibility now defaults to hiding automated independent tasks, with a show agent-created tasks control and inbox participation exceptions. Source alignment reviewed; these fixture stories do not establish live server pagination or authorization. The filter uses one lowercase label without helper text. All chat-channel tasks count as bot-created; the focused visibility stories cover human-initiated channel work. |
|
||||
| [Getting started and access/Login, invitations, and access/Private tasks/07 User stories](../../ui/storybook/stories/access/private-tasks/07-user-stories.stories.tsx) | `access/resources`, `tasks/properties` | unreviewed / production / fixtures | 13 / 7 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Master reconciliation inspected assignment-history recipient suggestions and manual-selection retention; existing stories do not establish the new assignment-history behavior. Expanded upstream verification recipes were inspected; the existing fixture scenarios do not prove the added backend handoff, workspace, recovery or authorization contracts. Creation visibility now defaults to hiding automated independent tasks, with a show agent-created tasks control and inbox participation exceptions. Source alignment reviewed; these fixture stories do not establish live server pagination or authorization. The filter uses one lowercase label without helper text. All chat-channel tasks count as bot-created; the focused visibility stories cover human-initiated channel work. |
|
||||
| [Getting started and access/Login, invitations, and access/Sign in](../../ui/storybook/stories/access/sign-in.stories.tsx) | `access/login` | current / production / fixtures | 6 / 3 | AuthPage email form, session read loading/error, submission pending/failure and navigation to Companies after a fixture session. Real authentication, bootstrap claim and sign-out remain separate. |
|
||||
|
||||
### Companies and portability
|
||||
|
||||
@@ -47,6 +51,8 @@ Company switching/settings, archival, package import/export.
|
||||
|
||||
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| [Getting started and access/Companies and portability/Import preview](../../ui/storybook/stories/companies/company-import.stories.tsx) | `companies/portability` | current / production / fixtures | 6 / 5 | Shipped CompanyImport GitHub-source preview, warnings, pending, error and 403. Plan/package replies are fictional; export, final import and real package fidelity remain separate scenarios/contracts. |
|
||||
| [Getting started and access/Companies and portability/Selection and archived organizations](../../ui/storybook/stories/companies/company-selection.stories.tsx) | `companies/selection`, `companies/archive` | current / production / fixtures | 7 / 2 | Companies list, selection storage and archived-company restoration with loading/empty/error/403. This covers the archive list/restoration side; CompanySettings archive confirmation remains an additional UI scenario. |
|
||||
| [Getting started and access/Companies and portability/Decision models/01 Settings](../../ui/storybook/stories/companies/decision-models/01-settings.stories.tsx) | `companies/identity`, `budgets-costs/cost-reporting`, `companies/decision-models` | unreviewed / production / fixtures | 11 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Related decision-service examples show connection/model configuration, bounded test receipts or invocation history using shipped subjects and simulated data. No paid provider or authorization proof. |
|
||||
| [Getting started and access/Companies and portability/Decision models/02 History](../../ui/storybook/stories/companies/decision-models/02-history.stories.tsx) | `companies/identity`, `budgets-costs/cost-reporting`, `companies/decision-models` | unreviewed / production / fixtures | 4 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Related decision-service examples show connection/model configuration, bounded test receipts or invocation history using shipped subjects and simulated data. No paid provider or authorization proof. |
|
||||
| [Getting started and access/Companies and portability/Decision models/03 Journey](../../ui/storybook/stories/companies/decision-models/03-journey.stories.tsx) | `companies/identity`, `budgets-costs/cost-reporting`, `companies/decision-models` | unreviewed / production / fixtures | 3 / 1 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Related decision-service examples show connection/model configuration, bounded test receipts or invocation history using shipped subjects and simulated data. No paid provider or authorization proof. The upstream budget UI distinguishes soft warnings from hard stops; hard incidents retain raise-and-resume and keep-paused controls. |
|
||||
@@ -110,6 +116,8 @@ Personal triage, decision queues, unread/blocked views, search, and personal tas
|
||||
| [Tasks and conversations/Inbox, decisions, and search/Product/Inbox/Blocked tab](../../ui/storybook/stories/inbox-search/blocked-inbox.stories.tsx) | `inbox-search/triage`, `recovery/diagnosis` | unreviewed / production / fixtures | 5 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Creation visibility now defaults to hiding automated independent tasks, with a show agent-created tasks control and inbox participation exceptions. Source alignment reviewed; these fixture stories do not establish live server pagination or authorization. The filter uses one lowercase label without helper text. All chat-channel tasks count as bot-created; the focused visibility stories cover human-initiated channel work. |
|
||||
| [Tasks and conversations/Inbox, decisions, and search/Decisions/DecisionCard](../../ui/storybook/stories/inbox-search/decision-card.stories.tsx) | `inbox-search/decisions` | unreviewed / production / fixtures | 9 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Creation-visibility verification recipes were updated; this story scenario is unchanged and does not prove that journey. The filter uses one lowercase label without helper text. All chat-channel tasks count as bot-created; the focused visibility stories cover human-initiated channel work. |
|
||||
| [Tasks and conversations/Inbox, decisions, and search/Pages/Decisions Desk](../../ui/storybook/stories/inbox-search/decisions-desk.stories.tsx) | `inbox-search/decisions` | unreviewed / production / fixtures | 6 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Creation-visibility verification recipes were updated; this story scenario is unchanged and does not prove that journey. The filter uses one lowercase label without helper text. All chat-channel tasks count as bot-created; the focused visibility stories cover human-initiated channel work. |
|
||||
| [Tasks and conversations/Inbox, decisions, and search/Personal task views](../../ui/storybook/stories/inbox-search/inbox-views.stories.tsx) | `inbox-search/views` | current / production / fixtures | 8 / 0 | Shipped Inbox host with Mine/Recent/Unread/Blocked under combined-inbox flags and list states. Approvals/join requests/run lists are isolated alongside tasks. Failed/denied list queries currently fall back to Inbox zero; personal participation/read metadata and server counts remain production verification. Mine/recent fixture tasks are human-created; the upstream agent-created-task filter changes are separate visibility scenarios. |
|
||||
| [Tasks and conversations/Inbox, decisions, and search/Personal task notifications](../../ui/storybook/stories/inbox-search/personal-task-toasts.stories.tsx) | `inbox-search/toasts` | current / production / fixtures | 4 / 4 | LiveUpdatesProvider and ToastViewport consume fixture socket eligibility, suppress unrelated/visible-task events and deduplicate replay. Server eligibility metadata is simulated; no persisted multiplayer participation proof. The upstream Inbox recipe adds agent-created-task discovery checks; this LiveUpdatesProvider suite still tests toast eligibility only. |
|
||||
| [Tasks and conversations/Inbox, decisions, and search/Product/Search & Command K](../../ui/storybook/stories/inbox-search/search.stories.tsx) | `inbox-search/search` | unreviewed / prototype / fixtures | 1 / 0 | Local search-page composition mounts production result components; does not establish parity with the production Search route. Creation-visibility verification recipes were updated; this story scenario is unchanged and does not prove that journey. The filter uses one lowercase label without helper text. All chat-channel tasks count as bot-created; the focused visibility stories cover human-initiated channel work. |
|
||||
| [Tasks and conversations/Inbox, decisions, and search/Pages/Decisions](../../ui/storybook/stories/inbox-search/what-needs-me.stories.tsx) | `inbox-search/decisions` | unreviewed / production / fixtures | 13 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Creation-visibility verification recipes were updated; this story scenario is unchanged and does not prove that journey. The filter uses one lowercase label without helper text. All chat-channel tasks count as bot-created; the focused visibility stories cover human-initiated channel work. |
|
||||
|
||||
@@ -125,6 +133,7 @@ Persistent conversations, discovery, handoff, and gated board chat.
|
||||
| [Tasks and conversations/Agent conversations and project handoff/Design explorations/Agent chat](../../ui/storybook/stories/agent-chat/agent-chat.stories.tsx) | `agent-chat/discovery`, `agent-chat/history`, `agent-chat/handoff` | mixed / mixed / fixtures | 17 / 0 | Production conversation/task routes with a local ChatEntryLanding. Default-agent behavior and fallback API responses remain outside current-product parity. Master reconciliation inspected assignment-history recipient suggestions and manual-selection retention; existing stories do not establish the new assignment-history behavior. ProjectCreated, ExistingProject, MultipleRepositories, ProjectWithoutRepository and ProjectCreationFailed show linked handoff results/navigation through shipped chat/task hosts. Tool execution and persistence are simulated. |
|
||||
| [Tasks and conversations/Agent conversations and project handoff/Design explorations/Agent chat sidebar/Components](../../ui/storybook/stories/agent-chat/agent-conversation-sidebar.stories.tsx) | `agent-chat/discovery`, `agent-chat/history` | current / production / fixtures | 10 / 1 | Support module re-exports production AgentConversationSidebar; search/selection use fixture callbacks. |
|
||||
| [Tasks and conversations/Agent conversations and project handoff/Design explorations/Chat entry](../../ui/storybook/stories/agent-chat/chat-entry.stories.tsx) | `agent-chat/discovery`, `agent-chat/history` | historical / mixed / fixtures | 9 / 3 | Retained first-created-agent sidebar/landing design predates personal primary-agent selection. Shared production conversation components remain useful. Master reconciliation inspected assignment-history recipient suggestions and manual-selection retention; existing stories do not establish the new assignment-history behavior. |
|
||||
| [Tasks and conversations/Agent conversations and project handoff/Conference Room](../../ui/storybook/stories/agent-chat/conference-room.stories.tsx) | `agent-chat/conference-room` | current / production / fixtures | 5 / 4 | BoardChat empty, reply, send pending/error/403 through fixture SSE and persisted comment reads. 403 uses the shipped generic unavailable message; route gates and real Claude execution remain separate. |
|
||||
|
||||
### Questions and approvals
|
||||
|
||||
@@ -151,7 +160,9 @@ Follow-ups, queue edits, interruption, and pause/resume.
|
||||
|
||||
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| [Tasks and conversations/Steering and queued messages/Draft recovery](../../ui/storybook/stories/steering/composer-draft-recovery.stories.tsx) | `steering/drafts` | current / production / fixtures | 6 / 3 | TaskChatComposer uses owned task-keyed browser drafts, uncertain submission fence, switch/restore and failed/accepted send callbacks. API receipt authority and real submission durability remain separate. Storybook-owned draft keys are reset using the matching retained submission ID on setup and cleanup; same-browser uncertain-to-empty/send switching is covered separately. |
|
||||
| [Tasks and conversations/Steering and queued messages/Composer/Steering and queued messages](../../ui/storybook/stories/steering/composer-queued-messages.stories.tsx) | `steering/queue`, `steering/edit-order-discard`, `steering/steer`, `steering/interrupt` | current / production / fixtures | 6 / 1 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Master reconciliation inspected assignment-history recipient suggestions and manual-selection retention; existing stories do not establish the new assignment-history behavior. |
|
||||
| [Tasks and conversations/Steering and queued messages/Accepted response delivery](../../ui/storybook/stories/steering/durable-response-queue.stories.tsx) | `steering/approval-queue`, `recovery/user-continuation` | current / production / fixtures | 7 / 6 | Accepted immutable response, cleanup wait, unavailable admission, empty queue and interrupt delivery states. Local callbacks remove delivered entries; durable queue/coalescing and fresh-session authority need production tests. The expanded native copyback recovery recipe requires harness stop proof; these generic exhaustion/queued-response fixtures do not establish that path. The shipped pending-delivery path removes rows optimistically and shows no separate progress indicator; the Delivering story asserts that actual presentation. |
|
||||
| [Tasks and conversations/Steering and queued messages/Surfaces/Interrupt Handoff](../../ui/storybook/stories/steering/interrupt-handoff.stories.tsx) | `steering/interrupt` | unreviewed / production / fixtures | 5 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
| [Tasks and conversations/Steering and queued messages/Composer/Paused task takeover](../../ui/storybook/stories/steering/paused-composer.stories.tsx) | `steering/stop-and-pause` | historical / prototype / fixtures | 8 / 0 | Retained local paused takeover; task-execution-controls exercises the shipped pause/stop controls. Master reconciliation inspected assignment-history recipient suggestions and manual-selection retention; existing stories do not establish the new assignment-history behavior. |
|
||||
| [Tasks and conversations/Steering and queued messages/Composer/Execution controls](../../ui/storybook/stories/steering/task-execution-controls.stories.tsx) | `steering/stop-and-pause` | current / production / fixtures | 22 / 6 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Master reconciliation inspected assignment-history recipient suggestions and manual-selection retention; existing stories do not establish the new assignment-history behavior. |
|
||||
@@ -178,6 +189,7 @@ Versioned documents, annotations, files, outputs, and artifact library.
|
||||
| [Tasks and conversations/Documents, attachments, and work products/Components/CSV File Tab](../../ui/storybook/stories/documents-artifacts/csv-preview.stories.tsx) | `documents-artifacts/attachments` | unreviewed / production / fixtures | 4 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
| [Tasks and conversations/Documents, attachments, and work products/Product/Documents/Annotations](../../ui/storybook/stories/documents-artifacts/document-annotations.stories.tsx) | `documents-artifacts/annotations` | unreviewed / production / fixtures | 9 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
| [Tasks and conversations/Documents, attachments, and work products/Product/Document Comments](../../ui/storybook/stories/documents-artifacts/document-comments.stories.tsx) | `documents-artifacts/annotations` | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
| [Tasks and conversations/Documents, attachments, and work products/Document revisions](../../ui/storybook/stories/documents-artifacts/document-revisions.stories.tsx) | `documents-artifacts/documents` | current / production / fixtures | 9 / 4 | IssueDocumentsSection renders current/edit/historical preview and append-only restore with mutation error. Read/loading failures retain shipped fallback rendering; no persisted concurrency or authorization proof. |
|
||||
| [Tasks and conversations/Documents, attachments, and work products/Components/File Viewer Sheet](../../ui/storybook/stories/documents-artifacts/file-viewer.stories.tsx) | `documents-artifacts/attachments` | unreviewed / production / fixtures | 13 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
| [Tasks and conversations/Documents, attachments, and work products/HTML artifacts/01 Preview](../../ui/storybook/stories/documents-artifacts/html-artifacts/01-preview.stories.tsx) | `documents-artifacts/attachments`, `workspaces/files-git` | unreviewed / production / fixtures | 5 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Task-workspace reconciliation reviewed the expanded workspace recipe; these examples do not establish durable task-folder continuity, repository authorization or sandbox admission. The workspace recipe now requires child boundary, safe reopen and checkpoint ancestry controls; these backend checks are not established by this fixture. The provisioning recipe requires controller script denial for remote selections and copy-only local source choices, including retained denial through metadata changes and reopening; these fixtures do not verify execution placement. Canonical default provisioning follows configured policy, primary, creation time and ID; these fixtures do not run source hooks or establish this backend precedence. |
|
||||
| [Tasks and conversations/Documents, attachments, and work products/HTML artifacts/02 Workspace](../../ui/storybook/stories/documents-artifacts/html-artifacts/02-workspace.stories.tsx) | `documents-artifacts/attachments`, `workspaces/files-git` | unreviewed / production / fixtures | 3 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Task-workspace reconciliation reviewed the expanded workspace recipe; these examples do not establish durable task-folder continuity, repository authorization or sandbox admission. The workspace recipe now requires child boundary, safe reopen and checkpoint ancestry controls; these backend checks are not established by this fixture. The provisioning recipe requires controller script denial for remote selections and copy-only local source choices, including retained denial through metadata changes and reopening; these fixtures do not verify execution placement. Canonical default provisioning follows configured policy, primary, creation time and ID; these fixtures do not run source hooks or establish this backend precedence. |
|
||||
@@ -258,6 +270,7 @@ Discovery, sources, authoring, revisions, tests, and agent policies.
|
||||
| [Agents and reusable capabilities/Skills and Skill Studio/Skills/Repository packages](../../ui/storybook/stories/skills/repository-skill-packages/repository-skill-packages.stories.tsx) | `skills/versions`, `skills/discovery` | unreviewed / production / fixtures | 9 / 3 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
| [Agents and reusable capabilities/Skills and Skill Studio/Skills/Import progress](../../ui/storybook/stories/skills/skill-import-progress.stories.tsx) | `skills/versions`, `skills/discovery` | unreviewed / production / fixtures | 6 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
| [Agents and reusable capabilities/Skills and Skill Studio/Product/Skills/Policy surfaces](../../ui/storybook/stories/skills/skill-policy-surfaces.stories.tsx) | `skills/policy` | unreviewed / production / fixtures | 2 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
| [Agents and reusable capabilities/Skills and Skill Studio/Test runs](../../ui/storybook/stories/skills/skill-test-runs.stories.tsx) | `skills/testing` | current / production / fixtures | 9 / 1 | SkillStudio test history statuses and result detail with immutable fixture output/version. No agent/provider runs; authoring, harness execution, persisted costs and snapshots require production tests. |
|
||||
| [Agents and reusable capabilities/Skills and Skill Studio/Skills Store/Skill detail](../../ui/storybook/stories/skills/skills-store-detail.stories.tsx) | `skills/discovery`, `skills/versions`, `skills/policy` | unreviewed / production / fixtures | 4 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Related examples cover fixture revisions and agent attachment selection. Save and attachment submission callbacks are no-ops; durable authoring, grants and enforcement are not established. |
|
||||
| [Agents and reusable capabilities/Skills and Skill Studio/Skills Store/Discovery grid](../../ui/storybook/stories/skills/skills-store-discovery.stories.tsx) | `skills/discovery` | unreviewed / production / fixtures | 3 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
|
||||
@@ -292,8 +305,9 @@ Goal hierarchy, ownership, status, and project/task context.
|
||||
|
||||
[Feature recipe](../feature-map/goals.md)
|
||||
|
||||
No primary story suite. Check capability lookup below for related examples; this does not imply a missing product feature.
|
||||
|
||||
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| [Projects and execution/Goals and work alignment/Aligned work and navigation](../../ui/storybook/stories/goals/goal-alignment.stories.tsx) | `goals/alignment`, `goals/navigation` | current / production / fixtures | 6 / 2 | GoalDetail child navigation and aligned-project tab with empty/loading/failure/403. Current UI displays relationships but has no project goal-assignment control; no invented assignment UI. |
|
||||
|
||||
### Workspaces, services, and files
|
||||
|
||||
@@ -307,6 +321,7 @@ Provisioning, task bindings, services/logs, Git/files, and closure.
|
||||
| [Projects and execution/Workspaces, services, and files/Tasks/Browser Use/Footer](../../ui/storybook/stories/workspaces/browser-use-footer.stories.tsx) | `workspaces/services`, `tasks/discussion` | unreviewed / production / fixtures | 21 / 2 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Task-workspace reconciliation reviewed the expanded workspace recipe; these examples do not establish durable task-folder continuity, repository authorization or sandbox admission. The workspace recipe now requires child boundary, safe reopen and checkpoint ancestry controls; these backend checks are not established by this fixture. The provisioning recipe requires controller script denial for remote selections and copy-only local source choices, including retained denial through metadata changes and reopening; these fixtures do not verify execution placement. Canonical default provisioning follows configured policy, primary, creation time and ID; these fixtures do not run source hooks or establish this backend precedence. Expanded upstream verification recipes were inspected; the existing fixture scenarios do not prove the added backend handoff, workspace, recovery or authorization contracts. Creation-visibility verification recipes were updated; this story scenario is unchanged and does not prove that journey. The filter uses one lowercase label without helper text. All chat-channel tasks count as bot-created; the focused visibility stories cover human-initiated channel work. |
|
||||
| [Projects and execution/Workspaces, services, and files/Tasks/Browser Use/Panel](../../ui/storybook/stories/workspaces/browser-use.stories.tsx) | `workspaces/services`, `tasks/discussion` | unreviewed / production / fixtures | 28 / 3 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Task-workspace reconciliation reviewed the expanded workspace recipe; these examples do not establish durable task-folder continuity, repository authorization or sandbox admission. The workspace recipe now requires child boundary, safe reopen and checkpoint ancestry controls; these backend checks are not established by this fixture. The provisioning recipe requires controller script denial for remote selections and copy-only local source choices, including retained denial through metadata changes and reopening; these fixtures do not verify execution placement. Canonical default provisioning follows configured policy, primary, creation time and ID; these fixtures do not run source hooks or establish this backend precedence. Expanded upstream verification recipes were inspected; the existing fixture scenarios do not prove the added backend handoff, workspace, recovery or authorization contracts. Creation-visibility verification recipes were updated; this story scenario is unchanged and does not prove that journey. The filter uses one lowercase label without helper text. All chat-channel tasks count as bot-created; the focused visibility stories cover human-initiated channel work. |
|
||||
| [Projects and execution/Workspaces, services, and files/Components/SearchableSelect/Workspace picker](../../ui/storybook/stories/workspaces/searchable-select.stories.tsx) | `workspaces/binding` | unreviewed / production / fixtures | 9 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Task-workspace reconciliation reviewed the expanded workspace recipe; these examples do not establish durable task-folder continuity, repository authorization or sandbox admission. The workspace recipe now requires child boundary, safe reopen and checkpoint ancestry controls; these backend checks are not established by this fixture. The provisioning recipe requires controller script denial for remote selections and copy-only local source choices, including retained denial through metadata changes and reopening; these fixtures do not verify execution placement. Canonical default provisioning follows configured policy, primary, creation time and ID; these fixtures do not run source hooks or establish this backend precedence. |
|
||||
| [Projects and execution/Workspaces, services, and files/Close readiness](../../ui/storybook/stories/workspaces/workspace-close.stories.tsx) | `workspaces/closure` | current / production / fixtures | 7 / 7 | Readiness dialog with loading, inspection failure/403, running-task block and pending/accepted archive response. No real workspace cleanup, Git removal or service shutdown is performed. |
|
||||
| [Projects and execution/Workspaces, services, and files/Issue/Workspace File Browser](../../ui/storybook/stories/workspaces/workspace-file-browser.stories.tsx) | `workspaces/files-git` | unreviewed / production / fixtures | 6 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Task-workspace reconciliation reviewed the expanded workspace recipe; these examples do not establish durable task-folder continuity, repository authorization or sandbox admission. The workspace recipe now requires child boundary, safe reopen and checkpoint ancestry controls; these backend checks are not established by this fixture. The provisioning recipe requires controller script denial for remote selections and copy-only local source choices, including retained denial through metadata changes and reopening; these fixtures do not verify execution placement. Canonical default provisioning follows configured policy, primary, creation time and ID; these fixtures do not run source hooks or establish this backend precedence. |
|
||||
| [Projects and execution/Workspaces, services, and files/Workspaces/Runtime provisioning status](../../ui/storybook/stories/workspaces/workspace-runtime-provisioning.stories.tsx) | `workspaces/provisioning` | unreviewed / production / fixtures | 6 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Task-workspace reconciliation reviewed ExecutionWorkspaceDetail null-project handling. This suite mounts only the unchanged RuntimeProvisionStatusValue inside a local context row; it does not exercise the full detail page or projectless queries. The workspace recipe now requires child boundary, safe reopen and checkpoint ancestry controls; these backend checks are not established by this fixture. The provisioning recipe requires controller script denial for remote selections and copy-only local source choices, including retained denial through metadata changes and reopening; these fixtures do not verify execution placement. Canonical default provisioning follows configured policy, primary, creation time and ID; these fixtures do not run source hooks or establish this backend precedence. |
|
||||
| [Projects and execution/Workspaces, services, and files/Workspaces/Service control bar](../../ui/storybook/stories/workspaces/workspace-service-control-bar.stories.tsx) | `workspaces/services` | unreviewed / production / fixtures | 16 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Task-workspace reconciliation reviewed the expanded workspace recipe; these examples do not establish durable task-folder continuity, repository authorization or sandbox admission. The workspace recipe now requires child boundary, safe reopen and checkpoint ancestry controls; these backend checks are not established by this fixture. The provisioning recipe requires controller script denial for remote selections and copy-only local source choices, including retained denial through metadata changes and reopening; these fixtures do not verify execution placement. Canonical default provisioning follows configured policy, primary, creation time and ID; these fixtures do not run source hooks or establish this backend precedence. |
|
||||
@@ -317,8 +332,10 @@ Local, SSH, sandbox providers, target probes, and custom images.
|
||||
|
||||
[Feature recipe](../feature-map/execution-environments.md)
|
||||
|
||||
No primary story suite. Check capability lookup below for related examples; this does not imply a missing product feature.
|
||||
|
||||
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| [Projects and execution/Execution environments/Custom images](../../ui/storybook/stories/execution-environments/custom-images.stories.tsx) | `execution-environments/images` | current / production / fixtures | 6 / 3 | CompanyEnvironments image metadata: unconfigured, captured, unsupported, failed, loading and 403. No live setup terminal, provider capture, rollback or relink is executed. |
|
||||
| [Projects and execution/Execution environments/Configuration, capabilities, and probes](../../ui/storybook/stories/execution-environments/environment-states.stories.tsx) | `execution-environments/configuration`, `execution-environments/capabilities`, `execution-environments/probe` | current / production / fixtures | 10 / 4 | CompanyEnvironments configuration/edit, unsupported capabilities and probe pending/failure/success. No provider contacted. List read/loading failures expose shipped fallback behavior, not dedicated error UI. |
|
||||
|
||||
### Recovery
|
||||
|
||||
@@ -333,6 +350,7 @@ Stopped work, workspace repair, bounded continuation, and reconnect.
|
||||
| [Projects and execution/Recovery/Tasks/Execution recovery](../../ui/storybook/stories/recovery/execution-recovery.stories.tsx) | `recovery/diagnosis` | unreviewed / production / fixtures | 18 / 2 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
| [Projects and execution/Recovery/Product/Issue/Blocked notice](../../ui/storybook/stories/recovery/issue-blocked-notice.stories.tsx) | `recovery/diagnosis`, `task-coordination/dependencies` | unreviewed / production / fixtures | 7 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
| [Projects and execution/Recovery/Tasks/Model capacity retry](../../ui/storybook/stories/recovery/model-capacity-retry.stories.tsx) | `recovery/bounded-continuation` | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
| [Projects and execution/Recovery/Exhaustion and user decisions](../../ui/storybook/stories/recovery/recovery-gap-states.stories.tsx) | `recovery/exhaustion`, `recovery/unknown-outcome` | current / production / fixtures | 7 / 7 | Exhaustion notice, blocked authority, retry pending/failure/accepted and inactive notice; unknown-outcome action card is rendered separately. Retry callbacks and disposition context are simulated; no real continuation proof. The expanded native copyback recovery recipe requires harness stop proof; these generic exhaustion/queued-response fixtures do not establish that path. |
|
||||
| [Projects and execution/Recovery/Design previews/Recovery notice](../../ui/storybook/stories/recovery/recovery-notice-preview.stories.tsx) | `recovery/diagnosis`, `recovery/source-action` | current / production / fixtures | 9 / 3 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
| [Projects and execution/Recovery/Product/Issue Scheduled retry surfaces](../../ui/storybook/stories/recovery/scheduled-retry.stories.tsx) | `recovery/bounded-continuation` | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
| [Projects and execution/Recovery/Paperclip/Source Issue Recovery](../../ui/storybook/stories/recovery/source-issue-recovery.stories.tsx) | `recovery/diagnosis`, `recovery/source-action` | unreviewed / production / fixtures | 5 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Source review confirms ordinary recovery fixtures remain applicable after the native-owner resolution gate; native-owner stop verification has its own suite. |
|
||||
@@ -383,6 +401,7 @@ Agent grants, off/ask/allowed actions, discovery, tests, and revocation.
|
||||
| [Apps, channels, and extensions/App access and action permissions/Tools & Access/ActionCard](../../ui/storybook/stories/app-permissions/action-card.stories.tsx) | `app-permissions/test-action`, `app-permissions/action-policy` | unreviewed / production / fixtures | 5 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
| [Apps, channels, and extensions/App access and action permissions/Apps/Action permissions test](../../ui/storybook/stories/app-permissions/action-permissions-test.stories.tsx) | `app-permissions/test-action`, `app-permissions/action-policy` | unreviewed / production / fixtures | 7 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
| [Apps, channels, and extensions/App access and action permissions/Apps/Managed accounts](../../ui/storybook/stories/app-permissions/apps-managed-accounts.stories.tsx) | `app-permissions/account-maintenance` | current / production / fixture-server | 1 / 0 | Production Browse requires owned tests/aggregator-accounts/test-drive.ts on localhost:4310; providers are simulated. Not an offline story. |
|
||||
| [Apps, channels, and extensions/App access and action permissions/Review newly discovered actions](../../ui/storybook/stories/app-permissions/catalog-review.stories.tsx) | `app-permissions/catalog-change` | current / production / fixtures | 7 / 2 | Shipped ActionsSection quarantine reviewer with allowed/blocked decisions, empty/refreshing/saving/read-only props. Callbacks simulate catalog persistence; discovery failures belong to AppDetail and backend authority remains separate. |
|
||||
| [Apps, channels, and extensions/App access and action permissions/Tools/Permitted vs Installed](../../ui/storybook/stories/app-permissions/permitted-vs-installed.stories.tsx) | `app-permissions/agent-access`, `app-permissions/action-policy` | unreviewed / production / fixtures | 12 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
|
||||
### External chat and email
|
||||
@@ -396,6 +415,7 @@ Provider-specific identity, threads, files, delivery, and endpoint upkeep.
|
||||
| [Apps, channels, and extensions/External chat and email/Connections/AgentMail setup](../../ui/storybook/stories/chat-channels/agentmail-onboarding.stories.tsx) | `chat-channels/providers`, `connection-setup/channel-setup` | unreviewed / production / fixtures | 19 / 16 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Task-workspace reconciliation reviewed the added connection/destination-default recipe; these unchanged setup, identity or conversation examples do not establish default selection or new-task inheritance. The recipe adds bounded Telegram subscription maintenance regressions; this story does not establish real provider startup recovery. |
|
||||
| [Apps, channels, and extensions/External chat and email/Connections/AgentMail settings](../../ui/storybook/stories/chat-channels/agentmail-settings.stories.tsx) | `chat-channels/lifecycle` | unreviewed / production / fixtures | 8 / 5 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Task-workspace reconciliation: EmailEndpointSettings remains the mounted inbox subsection. The surrounding ChatEndpointDetail connection-default editor and its save/inheritance behavior are not represented here. |
|
||||
| [Apps, channels, and extensions/External chat and email/Connections/AgentMail tasks](../../ui/storybook/stories/chat-channels/agentmail.stories.tsx) | `chat-channels/conversation` | unreviewed / prototype / fixtures | 9 / 2 | Local EmailTaskExperience combines production composer/bubbles with simulated email lifecycle; compare against IssueDetail before claiming page parity. Task-workspace reconciliation reviewed the added connection/destination-default recipe; these unchanged setup, identity or conversation examples do not establish default selection or new-task inheritance. Master reconciliation inspected assignment-history recipient suggestions and manual-selection retention; existing stories do not establish the new assignment-history behavior. Expanded upstream verification recipes were inspected; the existing fixture scenarios do not prove the added backend handoff, workspace, recovery or authorization contracts. |
|
||||
| [Apps, channels, and extensions/External chat and email/Task-linked files](../../ui/storybook/stories/chat-channels/channel-attachments.stories.tsx) | `chat-channels/attachments` | current / production / fixtures | 5 / 2 | TaskChatBubble with received/outbound saved attachment receipts, no/multiple files and missing filename. File links are fictional; no download, provider transfer or authorization is proved. |
|
||||
| [Apps, channels, and extensions/External chat and email/Connections/Chat connection actions](../../ui/storybook/stories/chat-channels/chat-connection-actions.stories.tsx) | `chat-channels/providers` | unreviewed / production / fixtures | 1 / 1 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Task-workspace reconciliation reviewed the added connection/destination-default recipe; these unchanged setup, identity or conversation examples do not establish default selection or new-task inheritance. |
|
||||
| [Apps, channels, and extensions/External chat and email/Connections/Chat management](../../ui/storybook/stories/chat-channels/chat-management/chat-management.stories.tsx) | `chat-channels/lifecycle`, `chat-channels/identity`, `chat-channels/conversation` | unreviewed / production / fixtures | 15 / 7 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Task-workspace reconciliation: the mounted endpoint adds connection and destination editors. Local endpoint PATCH/resource PUT preserve defaults; workspace-choice requests now return only active/idle, unclosed fixture workspaces. Browser save/error/reload and new-conversation inheritance remain unverified. Expanded upstream verification recipes were inspected; the existing fixture scenarios do not prove the added backend handoff, workspace, recovery or authorization contracts. Inspected channel task-default controls, optional API fields, avatar rendering and matching fixture updates; live defaults inheritance and permission checks remain outside these stories. Access, InvitePeople, ConnectAndTest and Conversations render the shipped endpoint detail with simulated identity linking and conversation data. External delivery and identity authorization are not live. |
|
||||
| [Apps, channels, and extensions/External chat and email/Connectors/GitHub bot management](../../ui/storybook/stories/chat-channels/github-bot-management/management.stories.tsx) | `chat-channels/providers`, `chat-channels/conversation` | unreviewed / production / fixtures | 33 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Task-workspace reconciliation: mounted repository and endpoint editors use simulated defaults. Endpoint PATCH now persists omitted/null/concrete values across GET and resets on remount; repository PUT already preserves them. Choice caches intentionally contain no projects/workspaces. Browser editor interactions, access denials and new-task inheritance remain unverified. Expanded upstream verification recipes were inspected; the existing fixture scenarios do not prove the added backend handoff, workspace, recovery or authorization contracts. Inspected channel task-default controls, optional API fields, avatar rendering and matching fixture updates; live defaults inheritance and permission checks remain outside these stories. |
|
||||
@@ -417,6 +437,7 @@ Tool exposure, client configuration, tokens, profiles, and activity.
|
||||
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| [Apps, channels, and extensions/Tool gateways and access profiles/Tools/Access profiles](../../ui/storybook/stories/gateways-profiles/access-profiles.stories.tsx) | `gateways-profiles/profiles` | unreviewed / production / fixtures | 18 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
| [Apps, channels, and extensions/Tool gateways and access profiles/Named gateway tokens](../../ui/storybook/stories/gateways-profiles/gateway-tokens.stories.tsx) | `gateways-profiles/tokens` | current / production / fixtures | 8 / 5 | Named, empty and expired token history; issuance pending/error/403/success and name-confirmed revocation. Tokens are fictional; real bearer expiry, scope and revocation need API verification. |
|
||||
| [Apps, channels, and extensions/Tool gateways and access profiles/Tools/Gateways (PAP-11182)](../../ui/storybook/stories/gateways-profiles/gateways-tab.stories.tsx) | `gateways-profiles/gateway` | unreviewed / production / fixtures | 3 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
| [Apps, channels, and extensions/Tool gateways and access profiles/Assistant connections/Manage connections](../../ui/storybook/stories/gateways-profiles/public-mcp-connections.stories.tsx) | `gateways-profiles/client-connect` | current / production / fixtures | 9 / 4 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
| [Apps, channels, and extensions/Tool gateways and access profiles/Assistant connections/Consent](../../ui/storybook/stories/gateways-profiles/public-mcp-consent.stories.tsx) | `gateways-profiles/client-connect` | current / production / fixtures | 25 / 14 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
@@ -435,6 +456,7 @@ Company/user credentials, grants, proposals, and vault import.
|
||||
| [Apps, channels, and extensions/Secrets and proposals/Task credential access/01 Notice](../../ui/storybook/stories/secrets/credential-access/01-notice.stories.tsx) | `secrets/runtime-delivery`, `recovery/diagnosis` | unreviewed / production / fixtures | 5 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Agent-owned instance secrets remain in trusted server runtime and are excluded from ordinary agent delivery; these UI examples do not verify that lifecycle contract. |
|
||||
| [Apps, channels, and extensions/Secrets and proposals/Task credential access/02 Task page](../../ui/storybook/stories/secrets/credential-access/02-task-page.stories.tsx) | `secrets/runtime-delivery`, `recovery/diagnosis` | unreviewed / production / fixtures | 6 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Master reconciliation inspected assignment-history recipient suggestions and manual-selection retention; existing stories do not establish the new assignment-history behavior. Expanded upstream verification recipes were inspected; the existing fixture scenarios do not prove the added backend handoff, workspace, recovery or authorization contracts. Agent-owned instance secrets remain in trusted server runtime and are excluded from ordinary agent delivery; these UI examples do not verify that lifecycle contract. |
|
||||
| [Apps, channels, and extensions/Secrets and proposals/Product/Environment Variables Editor](../../ui/storybook/stories/secrets/environment-variables-editor.stories.tsx) | `secrets/runtime-delivery` | unreviewed / production / fixtures | 11 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Agent-owned instance secrets remain in trusted server runtime and are excluded from ordinary agent delivery; these UI examples do not verify that lifecycle contract. |
|
||||
| [Apps, channels, and extensions/Secrets and proposals/Proposal review](../../ui/storybook/stories/secrets/proposal-review.stories.tsx) | `secrets/proposals` | current / production / fixtures | 7 / 3 | Pending proposal, authority preflight block, list states and rejected proposal/rejection error. ProposalsTab and its dialogs are shipped; secret creation, values and grant authority are not exercised. Agent-owned instance secrets remain in trusted server runtime and are excluded from ordinary agent delivery; these UI examples do not verify that lifecycle contract. |
|
||||
| [Apps, channels, and extensions/Secrets and proposals/Product/Secrets](../../ui/storybook/stories/secrets/secrets.stories.tsx) | `secrets/company-secrets`, `secrets/vault-import` | unreviewed / production / fixtures | 4 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Agent-owned instance secrets remain in trusted server runtime and are excluded from ordinary agent delivery; these UI examples do not verify that lifecycle contract. |
|
||||
| [Apps, channels, and extensions/Secrets and proposals/Product/User secrets](../../ui/storybook/stories/secrets/user-secrets.stories.tsx) | `secrets/user-secrets` | unreviewed / production / fixtures | 4 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Agent-owned instance secrets remain in trusted server runtime and are excluded from ordinary agent delivery; these UI examples do not verify that lifecycle contract. |
|
||||
|
||||
@@ -444,8 +466,11 @@ Installation/configuration, contributed pages/tools, and lifecycle.
|
||||
|
||||
[Feature recipe](../feature-map/plugins.md)
|
||||
|
||||
No primary story suite. Check capability lookup below for related examples; this does not imply a missing product feature.
|
||||
|
||||
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| [Apps, channels, and extensions/Plugins/Configuration](../../ui/storybook/stories/plugins/plugin-configuration.stories.tsx) | `plugins/configuration` | current / production / fixtures | 6 / 3 | PluginSettings configuration route with hydrated values, read pending/unavailable and saved/error/403 responses. Real config storage and plugin worker validation are not proved. |
|
||||
| [Apps, channels, and extensions/Plugins/Contributed routes](../../ui/storybook/stories/plugins/plugin-contributions.stories.tsx) | `plugins/contributions` | current / production / fixtures | 4 / 1 | Production PluginPage host with a registered fixture plugin component; pending/missing contribution and discovery failure. Discovery failure currently remains Loading; contribution contents are a fixture, not shipped plugin code. |
|
||||
| [Apps, channels, and extensions/Plugins/Installation and lifecycle](../../ui/storybook/stories/plugins/plugin-management.stories.tsx) | `plugins/installation`, `plugins/lifecycle` | current / production / fixtures | 10 / 5 | PluginManager list states, install pending/error/success, disable and uninstall receipts. Local record transitions only; package loading and worker lifecycle require production verification. |
|
||||
|
||||
## Automation and structured work
|
||||
|
||||
@@ -462,6 +487,7 @@ Definitions, variables, scheduled/webhook/manual runs, and history.
|
||||
| [Automation and structured work/Routines, schedules, and triggers/Product/Routines/Webhooks UX preview](../../ui/storybook/stories/routines/routine-webhooks-ux.stories.tsx) | `routines/triggers` | unreviewed / production / fixtures | 21 / 5 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
| [Automation and structured work/Routines, schedules, and triggers/Product/Routines/Webhooks](../../ui/storybook/stories/routines/routine-webhooks.stories.tsx) | `routines/triggers`, `routines/history`, `activity/routine-audit` | unreviewed / production / fixtures | 16 / 14 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Runs and Activity mount RoutineDetail with fixture execution tasks/events and play assertions. Scheduler execution, delivery and audit persistence are not live. |
|
||||
| [Automation and structured work/Routines, schedules, and triggers/Product/Routines · List (grouped cards)](../../ui/storybook/stories/routines/routines-list-groups.stories.tsx) | `routines/definition`, `routines/management` | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
| [Automation and structured work/Routines, schedules, and triggers/Run now](../../ui/storybook/stories/routines/run-now.stories.tsx) | `routines/run-now` | current / production / fixtures | 8 / 4 | RoutineDetail manual-run dialog with required input, captured variables, pending/error/success and read states. Fictional dispatch receipt; real scheduling, coalescing, workspace authority and execution remain separate. |
|
||||
|
||||
### Pipelines, review queues, and learnings
|
||||
|
||||
@@ -469,8 +495,12 @@ Experimental stages, automation, items, review, and learning records.
|
||||
|
||||
[Feature recipe](../feature-map/pipelines.md)
|
||||
|
||||
No primary story suite. Check capability lookup below for related examples; this does not imply a missing product feature.
|
||||
|
||||
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| [Automation and structured work/Pipelines, review queues, and learnings/Learnings](../../ui/storybook/stories/pipelines/learnings.stories.tsx) | `pipelines/learnings` | current / production / fixtures | 5 / 1 | Production Learnings feed renders a review_decided event plus loading/empty/error/403. Event provenance and durable audit records remain separate; this is not a new learning-record subsystem. |
|
||||
| [Automation and structured work/Pipelines, review queues, and learnings/Items](../../ui/storybook/stories/pipelines/pipeline-board.stories.tsx) | `pipelines/items` | current / production / fixtures | 5 / 1 | Production Pipelines board with stages/items and loading/empty/error/403. Snapshot rows only; transitions, liveness, guards and automation execution remain separate. |
|
||||
| [Automation and structured work/Pipelines, review queues, and learnings/Review queue](../../ui/storybook/stories/pipelines/review-queue.stories.tsx) | `pipelines/review` | current / production / fixtures | 7 / 3 | Production ReviewQueue with empty/loading/error/403, approval removal and failure recovery marked Needs attention. Fixture decisions do not prove real review leases, version checks or transitions. |
|
||||
| [Automation and structured work/Pipelines, review queues, and learnings/Stage settings](../../ui/storybook/stories/pipelines/stage-settings.stories.tsx) | `pipelines/stages` | current / production / fixtures | 5 / 2 | Production PipelineSettings stage editor with filled configuration, no stages, pending/error/403. This pass renders the shipped controls; saved stage/automation changes remain production obligations. |
|
||||
|
||||
### Cases
|
||||
|
||||
@@ -478,8 +508,10 @@ Experimental structured fields, relationships, revisions, and task links.
|
||||
|
||||
[Feature recipe](../feature-map/cases.md)
|
||||
|
||||
No primary story suite. Check capability lookup below for related examples; this does not imply a missing product feature.
|
||||
|
||||
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| [Automation and structured work/Cases/Browse and hierarchy](../../ui/storybook/stories/cases/case-browse.stories.tsx) | `cases/browse` | current / production / fixtures | 5 / 1 | Cases page with fixture parent/child records and loading/empty/error/403. Failed list queries currently use the shipped empty-case presentation. Responsive duplicate labels are accounted for; server filters and case mutations remain separate. |
|
||||
| [Automation and structured work/Cases/Structure, history and task links](../../ui/storybook/stories/cases/case-detail.stories.tsx) | `cases/structure`, `cases/history`, `cases/task-links` | current / production / fixtures | 8 / 4 | CaseDetail hierarchy and activity, CaseFieldsPanel arbitrary/empty data and IssueCasesPanel reverse links. Fixture relations/events; document revision history and persisted links remain production obligations. |
|
||||
|
||||
### Status cards
|
||||
|
||||
@@ -487,8 +519,9 @@ Experimental summaries, watched work, refresh history, and settings.
|
||||
|
||||
[Feature recipe](../feature-map/status-cards.md)
|
||||
|
||||
No primary story suite. Check capability lookup below for related examples; this does not imply a missing product feature.
|
||||
|
||||
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| [Automation and structured work/Status cards/Authoring, updates and archive](../../ui/storybook/stories/status-cards/status-card-states.stories.tsx) | `status-cards/authoring`, `status-cards/generation`, `status-cards/inspection`, `status-cards/archive` | current / production / fixtures | 17 / 10 | StatusCards board/drawer with current/stale/error/live setup, list states, create, refresh, inspection and archive/restoration. Mutable receipts and setup task ID are fixtures; no summarizer execution or revision-history parity is claimed. |
|
||||
|
||||
## Oversight and operation
|
||||
|
||||
@@ -501,6 +534,7 @@ Spend reports, scoped limits, incidents, hard stops, and resumption.
|
||||
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| [Oversight and operation/Costs and budgets/Product/Budget & Finance](../../ui/storybook/stories/budgets-costs/budget-finance.stories.tsx) | `budgets-costs/cost-reporting`, `budgets-costs/budgets`, `budgets-costs/incidents` | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. FullMatrix renders BudgetIncidentCard in warning, resolved, pending-approval and escalated hard-stop states. Resolution handlers are no-ops; budget relief and resumption remain unverified. The upstream budget UI distinguishes soft warnings from hard stops; hard incidents retain raise-and-resume and keep-paused controls. |
|
||||
| [Oversight and operation/Costs and budgets/Resolve a budget incident](../../ui/storybook/stories/budgets-costs/budget-resolution.stories.tsx) | `budgets-costs/resolution` | current / production / fixtures | 10 / 6 | Shipped Costs budget tab with empty/read failures, invalid amount, raise-and-resume, keep-paused and write failure/pending. Fixture incident transitions only; real overlapping holds and hard stops remain separate. The upstream budget UI distinguishes soft warnings from hard stops; hard incidents retain raise-and-resume and keep-paused controls. |
|
||||
| [Oversight and operation/Costs and budgets/Costs/Subscriptions](../../ui/storybook/stories/budgets-costs/costs/subscriptions.stories.tsx) | `budgets-costs/cost-reporting`, `budgets-costs/budgets` | unreviewed / production / fixtures | 7 / 4 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. The upstream budget UI distinguishes soft warnings from hard stops; hard incidents retain raise-and-resume and keep-paused controls. |
|
||||
|
||||
### Dashboards and audit trails
|
||||
@@ -514,6 +548,7 @@ Company health, live work, activity, runs, routines, and timeline.
|
||||
| [Oversight and operation/Dashboards and audit trails/Tools/Activity (audit feed)](../../ui/storybook/stories/activity/activity-feed.stories.tsx) | `activity/activity`, `gateways-profiles/activity` | unreviewed / production / fixtures | 4 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
| [Oversight and operation/Dashboards and audit trails/Apps/App detail · Activity (lifecycle)](../../ui/storybook/stories/activity/app-activity-lifecycle.stories.tsx) | `activity/activity`, `gateways-profiles/activity` | unreviewed / production / fixtures | 4 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
| [Oversight and operation/Dashboards and audit trails/Product/Data Visualization & Misc](../../ui/storybook/stories/activity/data-viz-misc.stories.tsx) | `activity/overview` | unreviewed / production / fixtures | 21 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
| [Oversight and operation/Dashboards and audit trails/Execution history](../../ui/storybook/stories/activity/run-audit.stories.tsx) | `activity/runs` | current / production / fixtures | 6 / 4 | AuditRuns list, completed receipt, empty/loading/failed/denied and no-match filter. Run records are fixture snapshots; no real execution or scoped audit proof. |
|
||||
| [Oversight and operation/Dashboards and audit trails/Pages/Work Timeline](../../ui/storybook/stories/activity/work-timeline.stories.tsx) | `activity/timeline` | unreviewed / production / fixtures | 4 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
|
||||
### Navigation, profile, and announcements
|
||||
@@ -527,6 +562,7 @@ Sidebar state, favorites/recents, personal identity, and dismissals.
|
||||
| [Oversight and operation/Navigation, profile, and announcements/Announcements/AnnouncementCard](../../ui/storybook/stories/navigation-preferences/announcement-card.stories.tsx) | `navigation-preferences/announcements` | unreviewed / production / fixtures | 11 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
| [Oversight and operation/Navigation, profile, and announcements/Prototypes/Task detail/Mobile tabs](../../ui/storybook/stories/navigation-preferences/mobile-task-tabs.stories.tsx) | `navigation-preferences/navigation` | proposed / prototype / fixtures | 4 / 2 | Local composition retained for its original design purpose; full production parity remains unreviewed. |
|
||||
| [Oversight and operation/Navigation, profile, and announcements/Product/Navigation & Layout](../../ui/storybook/stories/navigation-preferences/navigation-layout.stories.tsx) | `navigation-preferences/navigation` | unreviewed / production / fixtures | 2 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
| [Oversight and operation/Navigation, profile, and announcements/Sidebar preferences](../../ui/storybook/stories/navigation-preferences/sidebar-preferences.stories.tsx) | `navigation-preferences/preferences` | current / production / fixtures | 5 / 1 | Production Sidebar inside PluginLauncherProvider with saved-order reads, pending/error/403 fallback and session-only section collapse. Favorites, recents and actual order persistence still need the recipe checks. |
|
||||
|
||||
### Instance operations
|
||||
|
||||
@@ -536,6 +572,7 @@ Installation, updates, service health, configuration, and backups.
|
||||
|
||||
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| [Oversight and operation/Instance operations/Backup retention](../../ui/storybook/stories/instance-operations/backup-retention.stories.tsx) | `instance-operations/backup`, `instance-operations/configuration` | current / production / fixtures | 6 / 6 | Retention presets, initial read, loading, error, denial and pending/saved selection in InstanceGeneralSettings. Backup creation/restore and real settings authority remain production obligations. The recipe distinguishes process liveness from authenticated database readiness; these examples do not exercise that operator API boundary. |
|
||||
| [Oversight and operation/Instance operations/Product/Dev Ops Surfaces](../../ui/storybook/stories/instance-operations/dev-ops-surfaces.stories.tsx) | `instance-operations/server-service` | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. The recipe distinguishes process liveness from authenticated database readiness; these examples do not exercise that operator API boundary. |
|
||||
|
||||
### CLI/API and local worktrees
|
||||
@@ -581,18 +618,18 @@ References are navigation links, not proof of parity. An absent link means no ca
|
||||
- `onboarding/company`: [Getting started and access/Onboarding and first work/Onboarding/Character](../../ui/storybook/stories/onboarding/onboarding-character.stories.tsx) (unreviewed)
|
||||
- `onboarding/adapter`: [Getting started and access/Onboarding and first work/Onboarding/Agent arc](../../ui/storybook/stories/onboarding/onboarding-agent-arc.stories.tsx) (unreviewed), [Getting started and access/Onboarding and first work/Onboarding/Connect a model](../../ui/storybook/stories/onboarding/onboarding-connect-model.stories.tsx) (historical)
|
||||
- `onboarding/first-task`: [Getting started and access/Onboarding and first work/Onboarding/Agent arc](../../ui/storybook/stories/onboarding/onboarding-agent-arc.stories.tsx) (unreviewed), [Getting started and access/Onboarding and first work/Onboarding/Connect a model](../../ui/storybook/stories/onboarding/onboarding-connect-model.stories.tsx) (historical)
|
||||
- `onboarding/resume`: No cataloged story.
|
||||
- `access/login`: No cataloged story.
|
||||
- `onboarding/resume`: [Getting started and access/Onboarding and first work/Resume a saved draft](../../ui/storybook/stories/onboarding/resume-draft.stories.tsx) (current)
|
||||
- `access/login`: [Getting started and access/Login, invitations, and access/Sign in](../../ui/storybook/stories/access/sign-in.stories.tsx) (current)
|
||||
- `access/invitations`: [Agents and reusable capabilities/Hiring, configuration, and organization/Onboarding/External agent invitation/Components](../../ui/storybook/stories/agents/external-agent-invite/components.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Onboarding/External agent invitation/Journeys](../../ui/storybook/stories/agents/external-agent-invite/journeys.stories.tsx) (unreviewed)
|
||||
- `access/membership`: No cataloged story.
|
||||
- `access/membership`: [Getting started and access/Login, invitations, and access/Organization membership](../../ui/storybook/stories/access/membership.stories.tsx) (current)
|
||||
- `access/resources`: [Getting started and access/Login, invitations, and access/Private tasks/00 Review guide](../../ui/storybook/stories/access/private-tasks/00-review-guide.stories.tsx) (unreviewed), [Getting started and access/Login, invitations, and access/Private tasks/01 Creation](../../ui/storybook/stories/access/private-tasks/01-creation.stories.tsx) (unreviewed), [Getting started and access/Login, invitations, and access/Private tasks/02 Sharing](../../ui/storybook/stories/access/private-tasks/02-sharing.stories.tsx) (unreviewed), [Getting started and access/Login, invitations, and access/Private tasks/03 Task actions](../../ui/storybook/stories/access/private-tasks/03-task-actions.stories.tsx) (unreviewed), [Getting started and access/Login, invitations, and access/Private tasks/04 References and blockers](../../ui/storybook/stories/access/private-tasks/04-references-and-blockers.stories.tsx) (unreviewed), [Getting started and access/Login, invitations, and access/Private tasks/05 Projects](../../ui/storybook/stories/access/private-tasks/05-projects.stories.tsx) (unreviewed), [Getting started and access/Login, invitations, and access/Private tasks/06 Full product pages](../../ui/storybook/stories/access/private-tasks/06-full-product-pages.stories.tsx) (unreviewed), [Getting started and access/Login, invitations, and access/Private tasks/07 User stories](../../ui/storybook/stories/access/private-tasks/07-user-stories.stories.tsx) (unreviewed)
|
||||
- `access/cli-auth`: No cataloged story.
|
||||
- `companies/selection`: No cataloged story.
|
||||
- `access/cli-auth`: [Getting started and access/Login, invitations, and access/CLI authorization](../../ui/storybook/stories/access/cli-authorization.stories.tsx) (current)
|
||||
- `companies/selection`: [Getting started and access/Companies and portability/Selection and archived organizations](../../ui/storybook/stories/companies/company-selection.stories.tsx) (current)
|
||||
- `companies/identity`: [Getting started and access/Companies and portability/Decision models/01 Settings](../../ui/storybook/stories/companies/decision-models/01-settings.stories.tsx) (unreviewed), [Getting started and access/Companies and portability/Decision models/02 History](../../ui/storybook/stories/companies/decision-models/02-history.stories.tsx) (unreviewed), [Getting started and access/Companies and portability/Decision models/03 Journey](../../ui/storybook/stories/companies/decision-models/03-journey.stories.tsx) (unreviewed), [Getting started and access/Companies and portability/Fast responses/01 Settings](../../ui/storybook/stories/companies/fast-responses/01-settings.stories.tsx) (unreviewed), [Getting started and access/Companies and portability/Fast responses/02 History](../../ui/storybook/stories/companies/fast-responses/02-history.stories.tsx) (current)
|
||||
- `companies/decision-models`: [Getting started and access/Companies and portability/Decision models/01 Settings](../../ui/storybook/stories/companies/decision-models/01-settings.stories.tsx) (unreviewed), [Getting started and access/Companies and portability/Decision models/02 History](../../ui/storybook/stories/companies/decision-models/02-history.stories.tsx) (unreviewed), [Getting started and access/Companies and portability/Decision models/03 Journey](../../ui/storybook/stories/companies/decision-models/03-journey.stories.tsx) (unreviewed)
|
||||
- `companies/fast-responses`: [Getting started and access/Companies and portability/Fast responses/01 Settings](../../ui/storybook/stories/companies/fast-responses/01-settings.stories.tsx) (unreviewed), [Getting started and access/Companies and portability/Fast responses/02 History](../../ui/storybook/stories/companies/fast-responses/02-history.stories.tsx) (current)
|
||||
- `companies/archive`: No cataloged story.
|
||||
- `companies/portability`: No cataloged story.
|
||||
- `companies/archive`: [Getting started and access/Companies and portability/Selection and archived organizations](../../ui/storybook/stories/companies/company-selection.stories.tsx) (current)
|
||||
- `companies/portability`: [Getting started and access/Companies and portability/Import preview](../../ui/storybook/stories/companies/company-import.stories.tsx) (current)
|
||||
- `tasks/create`: [Tasks and conversations/Task creation and lifecycle/Composer/Add menu](../../ui/storybook/stories/tasks/composer-add-menu.stories.tsx) (unreviewed), [Tasks and conversations/Task creation and lifecycle/Composer/Mobile assignee picker](../../ui/storybook/stories/tasks/composer-mobile-assignee.stories.tsx) (unreviewed), [Tasks and conversations/Task creation and lifecycle/Composer/Model and effort picker](../../ui/storybook/stories/tasks/composer-model-picker.stories.tsx) (mixed), [Tasks and conversations/Task creation and lifecycle/Product/Dialogs & Modals](../../ui/storybook/stories/tasks/dialogs-modals.stories.tsx) (unreviewed), [Tasks and conversations/Task creation and lifecycle/Components/Entity pickers/Mobile](../../ui/storybook/stories/tasks/mobile-entity-pickers.stories.tsx) (unreviewed), [Tasks and conversations/Task creation and lifecycle/Composer/New task](../../ui/storybook/stories/tasks/new-task-composer.stories.tsx) (current), [Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/00 Review guide](../../ui/storybook/stories/agents/primary-agent/00-review-guide.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/01 Components](../../ui/storybook/stories/agents/primary-agent/01-components.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/02 Sidebar](../../ui/storybook/stories/agents/primary-agent/02-sidebar.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/03 Agents](../../ui/storybook/stories/agents/primary-agent/03-agents.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/04 New task](../../ui/storybook/stories/agents/primary-agent/04-new-task.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/05 Chat](../../ui/storybook/stories/agents/primary-agent/05-chat.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/06 Journeys](../../ui/storybook/stories/agents/primary-agent/06-journeys.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/07 Confirmation](../../ui/storybook/stories/agents/primary-agent/07-confirmation.stories.tsx) (unreviewed)
|
||||
- `tasks/organize`: [Tasks and conversations/Task creation and lifecycle/Product/Control Plane Surfaces](../../ui/storybook/stories/tasks/control-plane-surfaces.stories.tsx) (unreviewed), [Tasks and conversations/Task creation and lifecycle/Product/Issue Management](../../ui/storybook/stories/tasks/issue-management.stories.tsx) (unreviewed)
|
||||
- `tasks/properties`: [Tasks and conversations/Task creation and lifecycle/External Objects](../../ui/storybook/stories/tasks/external-objects.stories.tsx) (unreviewed), [Tasks and conversations/Task creation and lifecycle/Product/Issue Management](../../ui/storybook/stories/tasks/issue-management.stories.tsx) (unreviewed), [Getting started and access/Login, invitations, and access/Private tasks/00 Review guide](../../ui/storybook/stories/access/private-tasks/00-review-guide.stories.tsx) (unreviewed), [Getting started and access/Login, invitations, and access/Private tasks/01 Creation](../../ui/storybook/stories/access/private-tasks/01-creation.stories.tsx) (unreviewed), [Getting started and access/Login, invitations, and access/Private tasks/02 Sharing](../../ui/storybook/stories/access/private-tasks/02-sharing.stories.tsx) (unreviewed), [Getting started and access/Login, invitations, and access/Private tasks/03 Task actions](../../ui/storybook/stories/access/private-tasks/03-task-actions.stories.tsx) (unreviewed), [Getting started and access/Login, invitations, and access/Private tasks/04 References and blockers](../../ui/storybook/stories/access/private-tasks/04-references-and-blockers.stories.tsx) (unreviewed), [Getting started and access/Login, invitations, and access/Private tasks/05 Projects](../../ui/storybook/stories/access/private-tasks/05-projects.stories.tsx) (unreviewed), [Getting started and access/Login, invitations, and access/Private tasks/06 Full product pages](../../ui/storybook/stories/access/private-tasks/06-full-product-pages.stories.tsx) (unreviewed), [Getting started and access/Login, invitations, and access/Private tasks/07 User stories](../../ui/storybook/stories/access/private-tasks/07-user-stories.stories.tsx) (unreviewed)
|
||||
@@ -602,15 +639,15 @@ References are navigation links, not proof of parity. An absent link means no ca
|
||||
- `task-coordination/dependencies`: [Projects and execution/Recovery/Product/Issue/Blocked notice](../../ui/storybook/stories/recovery/issue-blocked-notice.stories.tsx) (unreviewed), [Tasks and conversations/Delegation, dependencies, and signoff/UX Labs/Sub-issues Workflow Checklist](../../ui/storybook/stories/task-coordination/sub-issues-workflow.stories.tsx) (unreviewed)
|
||||
- `task-coordination/signoff`: [Tasks and conversations/Delegation, dependencies, and signoff/Product/Decisions/Stalled review actions](../../ui/storybook/stories/task-coordination/issue-review-panel.stories.tsx) (unreviewed)
|
||||
- `task-coordination/tree-control`: [Tasks and conversations/Delegation, dependencies, and signoff/Product/Issue Monitor surfaces](../../ui/storybook/stories/task-coordination/monitor-surfaces.stories.tsx) (unreviewed), [Tasks and conversations/Delegation, dependencies, and signoff/Product/Task Watchdog surfaces](../../ui/storybook/stories/task-coordination/task-watchdog-surfaces.stories.tsx) (unreviewed)
|
||||
- `inbox-search/views`: No cataloged story.
|
||||
- `inbox-search/views`: [Tasks and conversations/Inbox, decisions, and search/Personal task views](../../ui/storybook/stories/inbox-search/inbox-views.stories.tsx) (current)
|
||||
- `inbox-search/triage`: [Tasks and conversations/Inbox, decisions, and search/Product/Inbox/Blocked tab](../../ui/storybook/stories/inbox-search/blocked-inbox.stories.tsx) (unreviewed)
|
||||
- `inbox-search/decisions`: [Tasks and conversations/Inbox, decisions, and search/Decisions/DecisionCard](../../ui/storybook/stories/inbox-search/decision-card.stories.tsx) (unreviewed), [Tasks and conversations/Inbox, decisions, and search/Pages/Decisions Desk](../../ui/storybook/stories/inbox-search/decisions-desk.stories.tsx) (unreviewed), [Tasks and conversations/Inbox, decisions, and search/Pages/Decisions](../../ui/storybook/stories/inbox-search/what-needs-me.stories.tsx) (unreviewed)
|
||||
- `inbox-search/search`: [Tasks and conversations/Inbox, decisions, and search/Product/Search & Command K](../../ui/storybook/stories/inbox-search/search.stories.tsx) (unreviewed)
|
||||
- `inbox-search/toasts`: No cataloged story.
|
||||
- `inbox-search/toasts`: [Tasks and conversations/Inbox, decisions, and search/Personal task notifications](../../ui/storybook/stories/inbox-search/personal-task-toasts.stories.tsx) (current)
|
||||
- `agent-chat/discovery`: [Tasks and conversations/Agent conversations and project handoff/Design explorations/Agent chat sidebar/Pages](../../ui/storybook/stories/agent-chat/agent-chat-sidebar.stories.tsx) (unreviewed), [Tasks and conversations/Agent conversations and project handoff/Design explorations/Agent chat](../../ui/storybook/stories/agent-chat/agent-chat.stories.tsx) (mixed), [Tasks and conversations/Agent conversations and project handoff/Design explorations/Agent chat sidebar/Components](../../ui/storybook/stories/agent-chat/agent-conversation-sidebar.stories.tsx) (current), [Tasks and conversations/Agent conversations and project handoff/Design explorations/Chat entry](../../ui/storybook/stories/agent-chat/chat-entry.stories.tsx) (historical), [Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/00 Review guide](../../ui/storybook/stories/agents/primary-agent/00-review-guide.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/01 Components](../../ui/storybook/stories/agents/primary-agent/01-components.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/02 Sidebar](../../ui/storybook/stories/agents/primary-agent/02-sidebar.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/03 Agents](../../ui/storybook/stories/agents/primary-agent/03-agents.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/04 New task](../../ui/storybook/stories/agents/primary-agent/04-new-task.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/05 Chat](../../ui/storybook/stories/agents/primary-agent/05-chat.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/06 Journeys](../../ui/storybook/stories/agents/primary-agent/06-journeys.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/07 Confirmation](../../ui/storybook/stories/agents/primary-agent/07-confirmation.stories.tsx) (unreviewed)
|
||||
- `agent-chat/history`: [Tasks and conversations/Agent conversations and project handoff/Design explorations/Agent chat sidebar/Pages](../../ui/storybook/stories/agent-chat/agent-chat-sidebar.stories.tsx) (unreviewed), [Tasks and conversations/Questions and approvals/Chat & Comments/Agent Chat Unanswered Questions](../../ui/storybook/stories/questions-and-approvals/agent-chat-unanswered-questions.stories.tsx) (unreviewed), [Tasks and conversations/Agent conversations and project handoff/Design explorations/Agent chat](../../ui/storybook/stories/agent-chat/agent-chat.stories.tsx) (mixed), [Tasks and conversations/Agent conversations and project handoff/Design explorations/Agent chat sidebar/Components](../../ui/storybook/stories/agent-chat/agent-conversation-sidebar.stories.tsx) (current), [Tasks and conversations/Agent conversations and project handoff/Design explorations/Chat entry](../../ui/storybook/stories/agent-chat/chat-entry.stories.tsx) (historical)
|
||||
- `agent-chat/handoff`: [Tasks and conversations/Agent conversations and project handoff/Design explorations/Agent chat](../../ui/storybook/stories/agent-chat/agent-chat.stories.tsx) (mixed)
|
||||
- `agent-chat/conference-room`: No cataloged story.
|
||||
- `agent-chat/conference-room`: [Tasks and conversations/Agent conversations and project handoff/Conference Room](../../ui/storybook/stories/agent-chat/conference-room.stories.tsx) (current)
|
||||
- `questions-and-approvals/questions`: [Tasks and conversations/Questions and approvals/Composer/Question flow](../../ui/storybook/stories/questions-and-approvals/composer-question-flow.stories.tsx) (unreviewed), [Tasks and conversations/Questions and approvals/Chat & Comments/Issue Thread Interactions](../../ui/storybook/stories/questions-and-approvals/issue-thread-interactions.stories.tsx) (unreviewed), [Tasks and conversations/Questions and approvals/Chat & Comments/Rich ACP interactions](../../ui/storybook/stories/questions-and-approvals/rich-acp-interactions.stories.tsx) (unreviewed), [Tasks and conversations/Questions and approvals/Composer/Interaction above composer](../../ui/storybook/stories/questions-and-approvals/task-chat-interaction-above-composer.stories.tsx) (current)
|
||||
- `questions-and-approvals/dismiss-and-reopen`: [Tasks and conversations/Questions and approvals/Chat & Comments/Agent Chat Unanswered Questions](../../ui/storybook/stories/questions-and-approvals/agent-chat-unanswered-questions.stories.tsx) (unreviewed), [Tasks and conversations/Questions and approvals/Chat & Comments/Task Chat Unanswered Questions](../../ui/storybook/stories/questions-and-approvals/task-chat-unanswered-questions.stories.tsx) (unreviewed)
|
||||
- `questions-and-approvals/confirmations`: [Tasks and conversations/Questions and approvals/Chat & Comments/Issue Thread Interactions](../../ui/storybook/stories/questions-and-approvals/issue-thread-interactions.stories.tsx) (unreviewed), [Tasks and conversations/Questions and approvals/Chat & Comments/Rich ACP interactions](../../ui/storybook/stories/questions-and-approvals/rich-acp-interactions.stories.tsx) (unreviewed), [Tasks and conversations/Questions and approvals/Composer/Interaction above composer](../../ui/storybook/stories/questions-and-approvals/task-chat-interaction-above-composer.stories.tsx) (current)
|
||||
@@ -624,9 +661,9 @@ References are navigation links, not proof of parity. An absent link means no ca
|
||||
- `steering/steer`: [Tasks and conversations/Steering and queued messages/Composer/Steering and queued messages](../../ui/storybook/stories/steering/composer-queued-messages.stories.tsx) (current)
|
||||
- `steering/interrupt`: [Tasks and conversations/Steering and queued messages/Composer/Steering and queued messages](../../ui/storybook/stories/steering/composer-queued-messages.stories.tsx) (current), [Tasks and conversations/Steering and queued messages/Surfaces/Interrupt Handoff](../../ui/storybook/stories/steering/interrupt-handoff.stories.tsx) (unreviewed)
|
||||
- `steering/stop-and-pause`: [Tasks and conversations/Steering and queued messages/Composer/Paused task takeover](../../ui/storybook/stories/steering/paused-composer.stories.tsx) (historical), [Tasks and conversations/Steering and queued messages/Composer/Execution controls](../../ui/storybook/stories/steering/task-execution-controls.stories.tsx) (current)
|
||||
- `steering/drafts`: No cataloged story.
|
||||
- `steering/approval-queue`: No cataloged story.
|
||||
- `documents-artifacts/documents`: No cataloged story.
|
||||
- `steering/drafts`: [Tasks and conversations/Steering and queued messages/Draft recovery](../../ui/storybook/stories/steering/composer-draft-recovery.stories.tsx) (current)
|
||||
- `steering/approval-queue`: [Tasks and conversations/Steering and queued messages/Accepted response delivery](../../ui/storybook/stories/steering/durable-response-queue.stories.tsx) (current)
|
||||
- `documents-artifacts/documents`: [Tasks and conversations/Documents, attachments, and work products/Document revisions](../../ui/storybook/stories/documents-artifacts/document-revisions.stories.tsx) (current)
|
||||
- `documents-artifacts/annotations`: [Tasks and conversations/Documents, attachments, and work products/Product/Documents/Annotations](../../ui/storybook/stories/documents-artifacts/document-annotations.stories.tsx) (unreviewed), [Tasks and conversations/Documents, attachments, and work products/Product/Document Comments](../../ui/storybook/stories/documents-artifacts/document-comments.stories.tsx) (unreviewed)
|
||||
- `documents-artifacts/attachments`: [Tasks and conversations/Documents, attachments, and work products/Artifact upload/01 Artifacts pane](../../ui/storybook/stories/documents-artifacts/artifact-upload/01-components.stories.tsx) (unreviewed), [Tasks and conversations/Documents, attachments, and work products/Artifact upload/02 Paused task journey](../../ui/storybook/stories/documents-artifacts/artifact-upload/02-task-journey.stories.tsx) (unreviewed), [Tasks and conversations/Documents, attachments, and work products/Components/CSV File Tab](../../ui/storybook/stories/documents-artifacts/csv-preview.stories.tsx) (unreviewed), [Tasks and conversations/Documents, attachments, and work products/Components/File Viewer Sheet](../../ui/storybook/stories/documents-artifacts/file-viewer.stories.tsx) (unreviewed), [Tasks and conversations/Documents, attachments, and work products/HTML artifacts/01 Preview](../../ui/storybook/stories/documents-artifacts/html-artifacts/01-preview.stories.tsx) (unreviewed), [Tasks and conversations/Documents, attachments, and work products/HTML artifacts/02 Workspace](../../ui/storybook/stories/documents-artifacts/html-artifacts/02-workspace.stories.tsx) (unreviewed), [Tasks and conversations/Documents, attachments, and work products/HTML artifacts/03 Task journey](../../ui/storybook/stories/documents-artifacts/html-artifacts/03-task-journey.stories.tsx) (unreviewed), [Tasks and conversations/Documents, attachments, and work products/Tasks/Text file tabs](../../ui/storybook/stories/documents-artifacts/task-text-files.stories.tsx) (unreviewed)
|
||||
- `documents-artifacts/work-products`: [Tasks and conversations/Documents, attachments, and work products/Explorations/Artifact cards/Commit](../../ui/storybook/stories/documents-artifacts/artifact-cards/commit.stories.tsx) (unreviewed), [Tasks and conversations/Documents, attachments, and work products/Explorations/Artifact cards/Data](../../ui/storybook/stories/documents-artifacts/artifact-cards/data.stories.tsx) (unreviewed), [Tasks and conversations/Documents, attachments, and work products/Explorations/Artifact cards/Document](../../ui/storybook/stories/documents-artifacts/artifact-cards/document.stories.tsx) (unreviewed), [Tasks and conversations/Documents, attachments, and work products/Explorations/Artifact cards/File](../../ui/storybook/stories/documents-artifacts/artifact-cards/file.stories.tsx) (unreviewed), [Tasks and conversations/Documents, attachments, and work products/Explorations/Artifact cards/Image](../../ui/storybook/stories/documents-artifacts/artifact-cards/image.stories.tsx) (unreviewed), [Tasks and conversations/Documents, attachments, and work products/Explorations/Artifact cards/Link preview](../../ui/storybook/stories/documents-artifacts/artifact-cards/link-preview.stories.tsx) (unreviewed), [Tasks and conversations/Documents, attachments, and work products/Explorations/Artifact cards/Pull request](../../ui/storybook/stories/documents-artifacts/artifact-cards/pull-request.stories.tsx) (unreviewed), [Tasks and conversations/Documents, attachments, and work products/Explorations/Artifact cards/Video](../../ui/storybook/stories/documents-artifacts/artifact-cards/video.stories.tsx) (unreviewed), [Tasks and conversations/Documents, attachments, and work products/Pages/Artifacts](../../ui/storybook/stories/documents-artifacts/artifacts.stories.tsx) (unreviewed), [Tasks and conversations/Documents, attachments, and work products/Task Chat/Rich Work Product Cards](../../ui/storybook/stories/documents-artifacts/rich-work-product-cards.stories.tsx) (unreviewed), [Tasks and conversations/Documents, attachments, and work products/Tasks/Artifact Gallery](../../ui/storybook/stories/documents-artifacts/task-artifact-gallery.stories.tsx) (unreviewed)
|
||||
@@ -645,7 +682,7 @@ References are navigation links, not proof of parity. An absent link means no ca
|
||||
- `skills/authoring`: [Agents and reusable capabilities/Skills and Skill Studio/Skill Studio/EditACopy](../../ui/storybook/stories/skills/fork-skill-flow.stories.tsx) (unreviewed), [Agents and reusable capabilities/Skills and Skill Studio/Product/Skill Studio · FrontmatterPanel](../../ui/storybook/stories/skills/frontmatter-panel.stories.tsx) (unreviewed)
|
||||
- `skills/versions`: [Agents and reusable capabilities/Skills and Skill Studio/Skills/GitHub sync journey](../../ui/storybook/stories/skills/github-skills-journey.stories.tsx) (unreviewed), [Agents and reusable capabilities/Skills and Skill Studio/Skills/GitHub synced skills](../../ui/storybook/stories/skills/github-synced-skills.stories.tsx) (unreviewed), [Agents and reusable capabilities/Skills and Skill Studio/Skills/Repository packages](../../ui/storybook/stories/skills/repository-skill-packages/repository-skill-packages.stories.tsx) (unreviewed), [Agents and reusable capabilities/Skills and Skill Studio/Skills/Import progress](../../ui/storybook/stories/skills/skill-import-progress.stories.tsx) (unreviewed), [Agents and reusable capabilities/Skills and Skill Studio/Skills Store/Skill detail](../../ui/storybook/stories/skills/skills-store-detail.stories.tsx) (unreviewed)
|
||||
- `skills/policy`: [Agents and reusable capabilities/Skills and Skill Studio/Agent Skills/AgentSkillRow](../../ui/storybook/stories/skills/agent-skill-row.stories.tsx) (unreviewed), [Agents and reusable capabilities/Skills and Skill Studio/QA / Agent skills edge states](../../ui/storybook/stories/skills/agent-skills-edge.stories.tsx) (unreviewed), [Agents and reusable capabilities/Skills and Skill Studio/Skill Studio/AgentsUsingSkill](../../ui/storybook/stories/skills/agents-using-skill.stories.tsx) (unreviewed), [Agents and reusable capabilities/Skills and Skill Studio/Skills/GitHub sync journey](../../ui/storybook/stories/skills/github-skills-journey.stories.tsx) (unreviewed), [Agents and reusable capabilities/Skills and Skill Studio/Product/Skills/Policy surfaces](../../ui/storybook/stories/skills/skill-policy-surfaces.stories.tsx) (unreviewed), [Agents and reusable capabilities/Skills and Skill Studio/Skills Store/Skill detail](../../ui/storybook/stories/skills/skills-store-detail.stories.tsx) (unreviewed)
|
||||
- `skills/testing`: No cataloged story.
|
||||
- `skills/testing`: [Agents and reusable capabilities/Skills and Skill Studio/Test runs](../../ui/storybook/stories/skills/skill-test-runs.stories.tsx) (current)
|
||||
- `teams/discovery`: [Agents and reusable capabilities/Team packages and installation/Surfaces/Team Catalog](../../ui/storybook/stories/teams/team-catalog.stories.tsx) (unreviewed)
|
||||
- `teams/preview`: [Agents and reusable capabilities/Team packages and installation/Surfaces/Team Catalog](../../ui/storybook/stories/teams/team-catalog.stories.tsx) (unreviewed)
|
||||
- `teams/install`: [Agents and reusable capabilities/Team packages and installation/Surfaces/Team Catalog](../../ui/storybook/stories/teams/team-catalog.stories.tsx) (unreviewed)
|
||||
@@ -655,25 +692,25 @@ References are navigation links, not proof of parity. An absent link means no ca
|
||||
- `projects/repositories`: [Projects and execution/Projects and repositories/Proposals/Project repos/New project](../../ui/storybook/stories/projects/new-project-repos.stories.tsx) (proposed), [Projects and execution/Projects and repositories/Proposals/Project repos/Configuration](../../ui/storybook/stories/projects/project-repos-configuration.stories.tsx) (proposed)
|
||||
- `projects/defaults`: [Projects and execution/Projects and repositories/Workspaces/Project runtime provision command](../../ui/storybook/stories/projects/project-execution-workspace-strategy.stories.tsx) (unreviewed)
|
||||
- `goals/hierarchy`: [Tasks and conversations/Task creation and lifecycle/Product/Dialogs & Modals](../../ui/storybook/stories/tasks/dialogs-modals.stories.tsx) (unreviewed), [Projects and execution/Projects and repositories/Product/Projects Goals Workspaces](../../ui/storybook/stories/projects/projects-goals-workspaces.stories.tsx) (unreviewed)
|
||||
- `goals/alignment`: No cataloged story.
|
||||
- `goals/navigation`: No cataloged story.
|
||||
- `goals/alignment`: [Projects and execution/Goals and work alignment/Aligned work and navigation](../../ui/storybook/stories/goals/goal-alignment.stories.tsx) (current)
|
||||
- `goals/navigation`: [Projects and execution/Goals and work alignment/Aligned work and navigation](../../ui/storybook/stories/goals/goal-alignment.stories.tsx) (current)
|
||||
- `workspaces/binding`: [Tasks and conversations/Task creation and lifecycle/Composer/New task](../../ui/storybook/stories/tasks/new-task-composer.stories.tsx) (current), [Projects and execution/Projects and repositories/Product/Projects Goals Workspaces](../../ui/storybook/stories/projects/projects-goals-workspaces.stories.tsx) (unreviewed), [Projects and execution/Workspaces, services, and files/Components/SearchableSelect/Workspace picker](../../ui/storybook/stories/workspaces/searchable-select.stories.tsx) (unreviewed)
|
||||
- `workspaces/provisioning`: [Projects and execution/Projects and repositories/Workspaces/Project runtime provision command](../../ui/storybook/stories/projects/project-execution-workspace-strategy.stories.tsx) (unreviewed), [Projects and execution/Workspaces, services, and files/Workspaces/Runtime provisioning status](../../ui/storybook/stories/workspaces/workspace-runtime-provisioning.stories.tsx) (unreviewed)
|
||||
- `workspaces/services`: [Projects and execution/Workspaces, services, and files/Tasks/Browser Use/Task activity](../../ui/storybook/stories/workspaces/browser-use-activity.stories.tsx) (unreviewed), [Projects and execution/Workspaces, services, and files/Tasks/Browser Use/Footer](../../ui/storybook/stories/workspaces/browser-use-footer.stories.tsx) (unreviewed), [Projects and execution/Workspaces, services, and files/Tasks/Browser Use/Panel](../../ui/storybook/stories/workspaces/browser-use.stories.tsx) (unreviewed), [Projects and execution/Workspaces, services, and files/Workspaces/Service control bar](../../ui/storybook/stories/workspaces/workspace-service-control-bar.stories.tsx) (unreviewed)
|
||||
- `workspaces/files-git`: [Tasks and conversations/Documents, attachments, and work products/HTML artifacts/01 Preview](../../ui/storybook/stories/documents-artifacts/html-artifacts/01-preview.stories.tsx) (unreviewed), [Tasks and conversations/Documents, attachments, and work products/HTML artifacts/02 Workspace](../../ui/storybook/stories/documents-artifacts/html-artifacts/02-workspace.stories.tsx) (unreviewed), [Tasks and conversations/Documents, attachments, and work products/HTML artifacts/03 Task journey](../../ui/storybook/stories/documents-artifacts/html-artifacts/03-task-journey.stories.tsx) (unreviewed), [Projects and execution/Workspaces, services, and files/Issue/Workspace File Browser](../../ui/storybook/stories/workspaces/workspace-file-browser.stories.tsx) (unreviewed)
|
||||
- `workspaces/closure`: No cataloged story.
|
||||
- `execution-environments/configuration`: No cataloged story.
|
||||
- `execution-environments/capabilities`: No cataloged story.
|
||||
- `execution-environments/probe`: No cataloged story.
|
||||
- `workspaces/closure`: [Projects and execution/Workspaces, services, and files/Close readiness](../../ui/storybook/stories/workspaces/workspace-close.stories.tsx) (current)
|
||||
- `execution-environments/configuration`: [Projects and execution/Execution environments/Configuration, capabilities, and probes](../../ui/storybook/stories/execution-environments/environment-states.stories.tsx) (current)
|
||||
- `execution-environments/capabilities`: [Projects and execution/Execution environments/Configuration, capabilities, and probes](../../ui/storybook/stories/execution-environments/environment-states.stories.tsx) (current)
|
||||
- `execution-environments/probe`: [Projects and execution/Execution environments/Configuration, capabilities, and probes](../../ui/storybook/stories/execution-environments/environment-states.stories.tsx) (current)
|
||||
- `execution-environments/assignment`: [Agents and reusable capabilities/Hiring, configuration, and organization/Product/Agent Management](../../ui/storybook/stories/agents/agent-management.stories.tsx) (unreviewed)
|
||||
- `execution-environments/images`: No cataloged story.
|
||||
- `execution-environments/images`: [Projects and execution/Execution environments/Custom images](../../ui/storybook/stories/execution-environments/custom-images.stories.tsx) (current)
|
||||
- `recovery/diagnosis`: [Tasks and conversations/Task creation and lifecycle/Paperclip/Assigned Backlog Safeguards](../../ui/storybook/stories/tasks/assigned-backlog-safeguards.stories.tsx) (unreviewed), [Tasks and conversations/Inbox, decisions, and search/Product/Inbox/Blocked tab](../../ui/storybook/stories/inbox-search/blocked-inbox.stories.tsx) (unreviewed), [Apps, channels, and extensions/Secrets and proposals/Task credential access/01 Notice](../../ui/storybook/stories/secrets/credential-access/01-notice.stories.tsx) (unreviewed), [Apps, channels, and extensions/Secrets and proposals/Task credential access/02 Task page](../../ui/storybook/stories/secrets/credential-access/02-task-page.stories.tsx) (unreviewed), [Projects and execution/Recovery/Task chat/Recovery notice](../../ui/storybook/stories/recovery/execution-blocker-notice.stories.tsx) (unreviewed), [Projects and execution/Recovery/Tasks/Execution recovery](../../ui/storybook/stories/recovery/execution-recovery.stories.tsx) (unreviewed), [Projects and execution/Recovery/Product/Issue/Blocked notice](../../ui/storybook/stories/recovery/issue-blocked-notice.stories.tsx) (unreviewed), [Projects and execution/Recovery/Design previews/Recovery notice](../../ui/storybook/stories/recovery/recovery-notice-preview.stories.tsx) (current), [Projects and execution/Recovery/Paperclip/Source Issue Recovery](../../ui/storybook/stories/recovery/source-issue-recovery.stories.tsx) (unreviewed), [Projects and execution/Recovery/Paperclip/Source-resolved Fold](../../ui/storybook/stories/recovery/source-resolved-fold.stories.tsx) (unreviewed), [Tasks and conversations/Task creation and lifecycle/Paperclip/Successful Run Handoff](../../ui/storybook/stories/tasks/successful-run-handoff.stories.tsx) (unreviewed)
|
||||
- `recovery/bounded-continuation`: [Projects and execution/Recovery/Tasks/Model capacity retry](../../ui/storybook/stories/recovery/model-capacity-retry.stories.tsx) (unreviewed), [Projects and execution/Recovery/Product/Issue Scheduled retry surfaces](../../ui/storybook/stories/recovery/scheduled-retry.stories.tsx) (unreviewed)
|
||||
- `recovery/source-action`: [Projects and execution/Recovery/Design previews/Recovery notice](../../ui/storybook/stories/recovery/recovery-notice-preview.stories.tsx) (current), [Projects and execution/Recovery/Paperclip/Source Issue Recovery](../../ui/storybook/stories/recovery/source-issue-recovery.stories.tsx) (unreviewed), [Projects and execution/Recovery/Paperclip/Source-resolved Fold](../../ui/storybook/stories/recovery/source-resolved-fold.stories.tsx) (unreviewed), [Projects and execution/Recovery/Workspace finalization recovery/01 Notice](../../ui/storybook/stories/recovery/workspace-finalization-recovery/01-notice.stories.tsx) (current), [Projects and execution/Recovery/Workspace finalization recovery/02 Task journey](../../ui/storybook/stories/recovery/workspace-finalization-recovery/02-task-journey.stories.tsx) (unreviewed)
|
||||
- `recovery/exhaustion`: No cataloged story.
|
||||
- `recovery/exhaustion`: [Projects and execution/Recovery/Exhaustion and user decisions](../../ui/storybook/stories/recovery/recovery-gap-states.stories.tsx) (current)
|
||||
- `recovery/workspace`: [Projects and execution/Recovery/Workspace branch recovery/01 Repair card](../../ui/storybook/stories/recovery/workspace-branch-recovery/01-component.stories.tsx) (unreviewed), [Projects and execution/Recovery/Workspace branch recovery/02 Task journey](../../ui/storybook/stories/recovery/workspace-branch-recovery/02-task-journey.stories.tsx) (unreviewed), [Projects and execution/Recovery/Workspace finalization recovery/01 Notice](../../ui/storybook/stories/recovery/workspace-finalization-recovery/01-notice.stories.tsx) (current), [Projects and execution/Recovery/Workspace finalization recovery/02 Task journey](../../ui/storybook/stories/recovery/workspace-finalization-recovery/02-task-journey.stories.tsx) (unreviewed)
|
||||
- `recovery/unknown-outcome`: No cataloged story.
|
||||
- `recovery/user-continuation`: No cataloged story.
|
||||
- `recovery/unknown-outcome`: [Projects and execution/Recovery/Exhaustion and user decisions](../../ui/storybook/stories/recovery/recovery-gap-states.stories.tsx) (current)
|
||||
- `recovery/user-continuation`: [Tasks and conversations/Steering and queued messages/Accepted response delivery](../../ui/storybook/stories/steering/durable-response-queue.stories.tsx) (current)
|
||||
- `recovery/reconnect`: [Projects and execution/Recovery/App/Connection recovery](../../ui/storybook/stories/recovery/cloud-access-recovery.stories.tsx) (unreviewed)
|
||||
- `connection-setup/catalog`: [Apps, channels, and extensions/Connection setup/Apps/Canonical icon registry](../../ui/storybook/stories/connection-setup/AppLogoRegistry.stories.tsx) (unreviewed), [Apps, channels, and extensions/Connection setup/Apps/Catalog source selection](../../ui/storybook/stories/connection-setup/apps-catalog-source-selection.stories.tsx) (proposed), [Apps, channels, and extensions/Connection setup/Apps/Connect discoverability (PAP-11091)](../../ui/storybook/stories/connection-setup/apps-connect-discoverability.stories.tsx) (unreviewed), [Agents and reusable capabilities/Runs, harnesses, and model accounts/Connectors/Pool host](../../ui/storybook/stories/runs-adapters/connection-pool-connector.stories.tsx) (unreviewed)
|
||||
- `connection-setup/identity-and-access`: [Apps, channels, and extensions/Connection setup/Apps/Connections/Arcade](../../ui/storybook/stories/connection-setup/ArcadeConnection.stories.tsx) (unreviewed), [Apps, channels, and extensions/Connection setup/Apps/Connections/Composio](../../ui/storybook/stories/connection-setup/ComposioConnection.stories.tsx) (unreviewed), [Apps, channels, and extensions/Connection setup/Apps/Connections/Provider choice](../../ui/storybook/stories/connection-setup/ConnectionProviderChoice.stories.tsx) (unreviewed), [Apps, channels, and extensions/Connection setup/Apps/Connections/Executor](../../ui/storybook/stories/connection-setup/ExecutorConnection.stories.tsx) (unreviewed), [Apps, channels, and extensions/Connection setup/Apps/Connections/Zapier](../../ui/storybook/stories/connection-setup/ZapierConnection.stories.tsx) (unreviewed), [Apps, channels, and extensions/Connection setup/Apps/Connect name at create time (PAP-11283)](../../ui/storybook/stories/connection-setup/apps-connect-name.stories.tsx) (unreviewed), [Apps, channels, and extensions/Connection setup/Reviews/PAP-17835 Personal connection identity](../../ui/storybook/stories/connection-setup/personal-connection-identity.stories.tsx) (unreviewed)
|
||||
@@ -685,64 +722,64 @@ References are navigation links, not proof of parity. An absent link means no ca
|
||||
- `connection-setup/failure`: [Apps, channels, and extensions/Connection setup/Apps/Connections/Arcade](../../ui/storybook/stories/connection-setup/ArcadeConnection.stories.tsx) (unreviewed), [Apps, channels, and extensions/Connection setup/Apps/Connections/Composio](../../ui/storybook/stories/connection-setup/ComposioConnection.stories.tsx) (unreviewed), [Apps, channels, and extensions/Connection setup/Apps/Connections/Executor](../../ui/storybook/stories/connection-setup/ExecutorConnection.stories.tsx) (unreviewed), [Apps, channels, and extensions/Connection setup/Apps/Connections/Zapier](../../ui/storybook/stories/connection-setup/ZapierConnection.stories.tsx) (unreviewed), [Apps, channels, and extensions/Connection setup/Apps/Enterpret connector](../../ui/storybook/stories/connection-setup/enterpret-connect-flow.stories.tsx) (unreviewed), [Apps, channels, and extensions/External chat and email/Connections/iMessage Photon](../../ui/storybook/stories/chat-channels/imessage-photon.stories.tsx) (unreviewed), [Apps, channels, and extensions/Connection setup/Apps/Notion MCP connect flow (PAP-16650)](../../ui/storybook/stories/connection-setup/notion-connect-flow.stories.tsx) (unreviewed)
|
||||
- `app-permissions/agent-access`: [Apps, channels, and extensions/App access and action permissions/Tools/Permitted vs Installed](../../ui/storybook/stories/app-permissions/permitted-vs-installed.stories.tsx) (unreviewed)
|
||||
- `app-permissions/action-policy`: [Apps, channels, and extensions/Connection setup/Apps/Connections/Arcade](../../ui/storybook/stories/connection-setup/ArcadeConnection.stories.tsx) (unreviewed), [Apps, channels, and extensions/Connection setup/Apps/Connections/Composio](../../ui/storybook/stories/connection-setup/ComposioConnection.stories.tsx) (unreviewed), [Apps, channels, and extensions/Connection setup/Apps/Connections/Executor](../../ui/storybook/stories/connection-setup/ExecutorConnection.stories.tsx) (unreviewed), [Apps, channels, and extensions/Connection setup/Apps/Connections/Zapier](../../ui/storybook/stories/connection-setup/ZapierConnection.stories.tsx) (unreviewed), [Apps, channels, and extensions/App access and action permissions/Tools & Access/ActionCard](../../ui/storybook/stories/app-permissions/action-card.stories.tsx) (unreviewed), [Apps, channels, and extensions/App access and action permissions/Apps/Action permissions test](../../ui/storybook/stories/app-permissions/action-permissions-test.stories.tsx) (unreviewed), [Apps, channels, and extensions/App access and action permissions/Tools/Permitted vs Installed](../../ui/storybook/stories/app-permissions/permitted-vs-installed.stories.tsx) (unreviewed)
|
||||
- `app-permissions/catalog-change`: No cataloged story.
|
||||
- `app-permissions/catalog-change`: [Apps, channels, and extensions/App access and action permissions/Review newly discovered actions](../../ui/storybook/stories/app-permissions/catalog-review.stories.tsx) (current)
|
||||
- `app-permissions/test-action`: [Apps, channels, and extensions/Connection setup/Apps/Connections/Arcade](../../ui/storybook/stories/connection-setup/ArcadeConnection.stories.tsx) (unreviewed), [Apps, channels, and extensions/Connection setup/Apps/Connections/Composio](../../ui/storybook/stories/connection-setup/ComposioConnection.stories.tsx) (unreviewed), [Apps, channels, and extensions/Connection setup/Apps/Connections/Executor](../../ui/storybook/stories/connection-setup/ExecutorConnection.stories.tsx) (unreviewed), [Apps, channels, and extensions/Connection setup/Apps/Connections/Zapier](../../ui/storybook/stories/connection-setup/ZapierConnection.stories.tsx) (unreviewed), [Apps, channels, and extensions/App access and action permissions/Tools & Access/ActionCard](../../ui/storybook/stories/app-permissions/action-card.stories.tsx) (unreviewed), [Apps, channels, and extensions/App access and action permissions/Apps/Action permissions test](../../ui/storybook/stories/app-permissions/action-permissions-test.stories.tsx) (unreviewed)
|
||||
- `app-permissions/account-maintenance`: [Apps, channels, and extensions/App access and action permissions/Apps/Managed accounts](../../ui/storybook/stories/app-permissions/apps-managed-accounts.stories.tsx) (current)
|
||||
- `chat-channels/providers`: [Apps, channels, and extensions/External chat and email/Connections/AgentMail setup](../../ui/storybook/stories/chat-channels/agentmail-onboarding.stories.tsx) (unreviewed), [Apps, channels, and extensions/External chat and email/Connections/Chat connection actions](../../ui/storybook/stories/chat-channels/chat-connection-actions.stories.tsx) (unreviewed), [Apps, channels, and extensions/External chat and email/Connectors/GitHub bot management](../../ui/storybook/stories/chat-channels/github-bot-management/management.stories.tsx) (unreviewed), [Apps, channels, and extensions/External chat and email/Historical/GitHub chat prototypes](../../ui/storybook/stories/chat-channels/github-chat.stories.tsx) (historical), [Apps, channels, and extensions/External chat and email/Connections/GitHub and Code Review Bot](../../ui/storybook/stories/chat-channels/github-connections.stories.tsx) (unreviewed), [Apps, channels, and extensions/External chat and email/Connections/iMessage Photon](../../ui/storybook/stories/chat-channels/imessage-photon.stories.tsx) (unreviewed), [Apps, channels, and extensions/External chat and email/Connections/Slack/Automatic setup](../../ui/storybook/stories/chat-channels/slack-automatic-setup.stories.tsx) (unreviewed), [Apps, channels, and extensions/External chat and email/Connections/Slack/Managed setup](../../ui/storybook/stories/chat-channels/slack-managed-setup.stories.tsx) (unreviewed)
|
||||
- `chat-channels/identity`: [Apps, channels, and extensions/External chat and email/Connections/Chat management](../../ui/storybook/stories/chat-channels/chat-management/chat-management.stories.tsx) (unreviewed), [Apps, channels, and extensions/External chat and email/Connections/iMessage Photon](../../ui/storybook/stories/chat-channels/imessage-photon.stories.tsx) (unreviewed), [Apps, channels, and extensions/External chat and email/Connections/Slack/Avatar in Settings](../../ui/storybook/stories/chat-channels/slack-avatar-settings.stories.tsx) (current), [Apps, channels, and extensions/External chat and email/Connections/Slack/Communication in Settings](../../ui/storybook/stories/chat-channels/slack-communication-settings.stories.tsx) (current)
|
||||
- `chat-channels/conversation`: [Apps, channels, and extensions/External chat and email/Connections/AgentMail tasks](../../ui/storybook/stories/chat-channels/agentmail.stories.tsx) (unreviewed), [Apps, channels, and extensions/External chat and email/Connections/Chat management](../../ui/storybook/stories/chat-channels/chat-management/chat-management.stories.tsx) (unreviewed), [Apps, channels, and extensions/External chat and email/Connectors/GitHub bot management](../../ui/storybook/stories/chat-channels/github-bot-management/management.stories.tsx) (unreviewed), [Apps, channels, and extensions/External chat and email/Historical/GitHub chat prototypes](../../ui/storybook/stories/chat-channels/github-chat.stories.tsx) (historical), [Apps, channels, and extensions/External chat and email/Connections/iMessage Photon](../../ui/storybook/stories/chat-channels/imessage-photon.stories.tsx) (unreviewed), [Apps, channels, and extensions/External chat and email/Connections/Slack/Task tools](../../ui/storybook/stories/chat-channels/slack-tools.stories.tsx) (unreviewed)
|
||||
- `chat-channels/attachments`: No cataloged story.
|
||||
- `chat-channels/attachments`: [Apps, channels, and extensions/External chat and email/Task-linked files](../../ui/storybook/stories/chat-channels/channel-attachments.stories.tsx) (current)
|
||||
- `chat-channels/lifecycle`: [Apps, channels, and extensions/External chat and email/Connections/AgentMail settings](../../ui/storybook/stories/chat-channels/agentmail-settings.stories.tsx) (unreviewed), [Apps, channels, and extensions/External chat and email/Connections/Chat management](../../ui/storybook/stories/chat-channels/chat-management/chat-management.stories.tsx) (unreviewed), [Apps, channels, and extensions/External chat and email/Connections/iMessage Photon](../../ui/storybook/stories/chat-channels/imessage-photon.stories.tsx) (unreviewed)
|
||||
- `gateways-profiles/gateway`: [Apps, channels, and extensions/Tool gateways and access profiles/Tools/Gateways (PAP-11182)](../../ui/storybook/stories/gateways-profiles/gateways-tab.stories.tsx) (unreviewed)
|
||||
- `gateways-profiles/profiles`: [Apps, channels, and extensions/Tool gateways and access profiles/Tools/Access profiles](../../ui/storybook/stories/gateways-profiles/access-profiles.stories.tsx) (unreviewed)
|
||||
- `gateways-profiles/client-connect`: [Apps, channels, and extensions/Connection setup/Components/Agent setup prompt](../../ui/storybook/stories/connection-setup/agent-setup-prompt.stories.tsx) (unreviewed), [Agents and reusable capabilities/Runs, harnesses, and model accounts/Assistant connections/Dot Runner](../../ui/storybook/stories/runs-adapters/dot-runner-connection.stories.tsx) (unreviewed), [Apps, channels, and extensions/Tool gateways and access profiles/Assistant connections/Manage connections](../../ui/storybook/stories/gateways-profiles/public-mcp-connections.stories.tsx) (current), [Apps, channels, and extensions/Tool gateways and access profiles/Assistant connections/Consent](../../ui/storybook/stories/gateways-profiles/public-mcp-consent.stories.tsx) (current), [Apps, channels, and extensions/Tool gateways and access profiles/Assistant connections/Device authorization](../../ui/storybook/stories/gateways-profiles/public-mcp-device.stories.tsx) (current), [Apps, channels, and extensions/Tool gateways and access profiles/Assistant connections/Start here](../../ui/storybook/stories/gateways-profiles/public-mcp-journey.stories.tsx) (unreviewed), [Apps, channels, and extensions/Tool gateways and access profiles/Assistant connections/Experimental setting](../../ui/storybook/stories/gateways-profiles/public-mcp-setting.stories.tsx) (unreviewed)
|
||||
- `gateways-profiles/tokens`: No cataloged story.
|
||||
- `gateways-profiles/tokens`: [Apps, channels, and extensions/Tool gateways and access profiles/Named gateway tokens](../../ui/storybook/stories/gateways-profiles/gateway-tokens.stories.tsx) (current)
|
||||
- `gateways-profiles/activity`: [Oversight and operation/Dashboards and audit trails/Tools/Activity (audit feed)](../../ui/storybook/stories/activity/activity-feed.stories.tsx) (unreviewed), [Oversight and operation/Dashboards and audit trails/Apps/App detail · Activity (lifecycle)](../../ui/storybook/stories/activity/app-activity-lifecycle.stories.tsx) (unreviewed)
|
||||
- `secrets/company-secrets`: [Apps, channels, and extensions/Secrets and proposals/Product/Secrets](../../ui/storybook/stories/secrets/secrets.stories.tsx) (unreviewed)
|
||||
- `secrets/user-secrets`: [Apps, channels, and extensions/Secrets and proposals/Product/User secrets](../../ui/storybook/stories/secrets/user-secrets.stories.tsx) (unreviewed)
|
||||
- `secrets/proposals`: No cataloged story.
|
||||
- `secrets/proposals`: [Apps, channels, and extensions/Secrets and proposals/Proposal review](../../ui/storybook/stories/secrets/proposal-review.stories.tsx) (current)
|
||||
- `secrets/vault-import`: [Apps, channels, and extensions/Secrets and proposals/Product/Secrets](../../ui/storybook/stories/secrets/secrets.stories.tsx) (unreviewed)
|
||||
- `secrets/runtime-delivery`: [Apps, channels, and extensions/Secrets and proposals/Task credential access/01 Notice](../../ui/storybook/stories/secrets/credential-access/01-notice.stories.tsx) (unreviewed), [Apps, channels, and extensions/Secrets and proposals/Task credential access/02 Task page](../../ui/storybook/stories/secrets/credential-access/02-task-page.stories.tsx) (unreviewed), [Apps, channels, and extensions/Secrets and proposals/Product/Environment Variables Editor](../../ui/storybook/stories/secrets/environment-variables-editor.stories.tsx) (unreviewed), [Automation and structured work/Routines, schedules, and triggers/Product/Routines · Secrets tab](../../ui/storybook/stories/routines/routine-secrets.stories.tsx) (unreviewed)
|
||||
- `plugins/installation`: No cataloged story.
|
||||
- `plugins/configuration`: No cataloged story.
|
||||
- `plugins/contributions`: No cataloged story.
|
||||
- `plugins/lifecycle`: No cataloged story.
|
||||
- `plugins/installation`: [Apps, channels, and extensions/Plugins/Installation and lifecycle](../../ui/storybook/stories/plugins/plugin-management.stories.tsx) (current)
|
||||
- `plugins/configuration`: [Apps, channels, and extensions/Plugins/Configuration](../../ui/storybook/stories/plugins/plugin-configuration.stories.tsx) (current)
|
||||
- `plugins/contributions`: [Apps, channels, and extensions/Plugins/Contributed routes](../../ui/storybook/stories/plugins/plugin-contributions.stories.tsx) (current)
|
||||
- `plugins/lifecycle`: [Apps, channels, and extensions/Plugins/Installation and lifecycle](../../ui/storybook/stories/plugins/plugin-management.stories.tsx) (current)
|
||||
- `routines/definition`: [Automation and structured work/Routines, schedules, and triggers/Product/Routines · Detail (variation C)](../../ui/storybook/stories/routines/routine-detail-c.stories.tsx) (unreviewed), [Automation and structured work/Routines, schedules, and triggers/Product/Routines · Secrets tab](../../ui/storybook/stories/routines/routine-secrets.stories.tsx) (unreviewed), [Automation and structured work/Routines, schedules, and triggers/Product/Routines · List (grouped cards)](../../ui/storybook/stories/routines/routines-list-groups.stories.tsx) (unreviewed)
|
||||
- `routines/triggers`: [Apps, channels, and extensions/Connection setup/PR reviews/Fireflies and app webhooks](../../ui/storybook/stories/connection-setup/fireflies-pr.stories.tsx) (unreviewed), [Automation and structured work/Routines, schedules, and triggers/Product/Routines/Webhooks UX preview](../../ui/storybook/stories/routines/routine-webhooks-ux.stories.tsx) (unreviewed), [Automation and structured work/Routines, schedules, and triggers/Product/Routines/Webhooks](../../ui/storybook/stories/routines/routine-webhooks.stories.tsx) (unreviewed)
|
||||
- `routines/run-now`: No cataloged story.
|
||||
- `routines/run-now`: [Automation and structured work/Routines, schedules, and triggers/Run now](../../ui/storybook/stories/routines/run-now.stories.tsx) (current)
|
||||
- `routines/history`: [Automation and structured work/Routines, schedules, and triggers/Product/Routines/Webhooks](../../ui/storybook/stories/routines/routine-webhooks.stories.tsx) (unreviewed)
|
||||
- `routines/management`: [Automation and structured work/Routines, schedules, and triggers/Product/Routines · Detail (variation C)](../../ui/storybook/stories/routines/routine-detail-c.stories.tsx) (unreviewed), [Automation and structured work/Routines, schedules, and triggers/Product/Routines · List (grouped cards)](../../ui/storybook/stories/routines/routines-list-groups.stories.tsx) (unreviewed)
|
||||
- `pipelines/stages`: No cataloged story.
|
||||
- `pipelines/items`: No cataloged story.
|
||||
- `pipelines/review`: No cataloged story.
|
||||
- `pipelines/learnings`: No cataloged story.
|
||||
- `cases/browse`: No cataloged story.
|
||||
- `cases/structure`: No cataloged story.
|
||||
- `cases/history`: No cataloged story.
|
||||
- `cases/task-links`: No cataloged story.
|
||||
- `status-cards/authoring`: No cataloged story.
|
||||
- `status-cards/generation`: No cataloged story.
|
||||
- `status-cards/inspection`: No cataloged story.
|
||||
- `status-cards/archive`: No cataloged story.
|
||||
- `pipelines/stages`: [Automation and structured work/Pipelines, review queues, and learnings/Stage settings](../../ui/storybook/stories/pipelines/stage-settings.stories.tsx) (current)
|
||||
- `pipelines/items`: [Automation and structured work/Pipelines, review queues, and learnings/Items](../../ui/storybook/stories/pipelines/pipeline-board.stories.tsx) (current)
|
||||
- `pipelines/review`: [Automation and structured work/Pipelines, review queues, and learnings/Review queue](../../ui/storybook/stories/pipelines/review-queue.stories.tsx) (current)
|
||||
- `pipelines/learnings`: [Automation and structured work/Pipelines, review queues, and learnings/Learnings](../../ui/storybook/stories/pipelines/learnings.stories.tsx) (current)
|
||||
- `cases/browse`: [Automation and structured work/Cases/Browse and hierarchy](../../ui/storybook/stories/cases/case-browse.stories.tsx) (current)
|
||||
- `cases/structure`: [Automation and structured work/Cases/Structure, history and task links](../../ui/storybook/stories/cases/case-detail.stories.tsx) (current)
|
||||
- `cases/history`: [Automation and structured work/Cases/Structure, history and task links](../../ui/storybook/stories/cases/case-detail.stories.tsx) (current)
|
||||
- `cases/task-links`: [Automation and structured work/Cases/Structure, history and task links](../../ui/storybook/stories/cases/case-detail.stories.tsx) (current)
|
||||
- `status-cards/authoring`: [Automation and structured work/Status cards/Authoring, updates and archive](../../ui/storybook/stories/status-cards/status-card-states.stories.tsx) (current)
|
||||
- `status-cards/generation`: [Automation and structured work/Status cards/Authoring, updates and archive](../../ui/storybook/stories/status-cards/status-card-states.stories.tsx) (current)
|
||||
- `status-cards/inspection`: [Automation and structured work/Status cards/Authoring, updates and archive](../../ui/storybook/stories/status-cards/status-card-states.stories.tsx) (current)
|
||||
- `status-cards/archive`: [Automation and structured work/Status cards/Authoring, updates and archive](../../ui/storybook/stories/status-cards/status-card-states.stories.tsx) (current)
|
||||
- `budgets-costs/cost-reporting`: [Oversight and operation/Costs and budgets/Product/Budget & Finance](../../ui/storybook/stories/budgets-costs/budget-finance.stories.tsx) (unreviewed), [Oversight and operation/Costs and budgets/Costs/Subscriptions](../../ui/storybook/stories/budgets-costs/costs/subscriptions.stories.tsx) (unreviewed), [Getting started and access/Companies and portability/Decision models/01 Settings](../../ui/storybook/stories/companies/decision-models/01-settings.stories.tsx) (unreviewed), [Getting started and access/Companies and portability/Decision models/02 History](../../ui/storybook/stories/companies/decision-models/02-history.stories.tsx) (unreviewed), [Getting started and access/Companies and portability/Decision models/03 Journey](../../ui/storybook/stories/companies/decision-models/03-journey.stories.tsx) (unreviewed), [Getting started and access/Companies and portability/Fast responses/01 Settings](../../ui/storybook/stories/companies/fast-responses/01-settings.stories.tsx) (unreviewed), [Getting started and access/Companies and portability/Fast responses/02 History](../../ui/storybook/stories/companies/fast-responses/02-history.stories.tsx) (current)
|
||||
- `budgets-costs/budgets`: [Oversight and operation/Costs and budgets/Product/Budget & Finance](../../ui/storybook/stories/budgets-costs/budget-finance.stories.tsx) (unreviewed), [Tasks and conversations/Task creation and lifecycle/Product/Control Plane Surfaces](../../ui/storybook/stories/tasks/control-plane-surfaces.stories.tsx) (unreviewed), [Oversight and operation/Costs and budgets/Costs/Subscriptions](../../ui/storybook/stories/budgets-costs/costs/subscriptions.stories.tsx) (unreviewed)
|
||||
- `budgets-costs/incidents`: [Oversight and operation/Costs and budgets/Product/Budget & Finance](../../ui/storybook/stories/budgets-costs/budget-finance.stories.tsx) (unreviewed)
|
||||
- `budgets-costs/resolution`: No cataloged story.
|
||||
- `budgets-costs/resolution`: [Oversight and operation/Costs and budgets/Resolve a budget incident](../../ui/storybook/stories/budgets-costs/budget-resolution.stories.tsx) (current)
|
||||
- `activity/overview`: [Oversight and operation/Dashboards and audit trails/Product/Data Visualization & Misc](../../ui/storybook/stories/activity/data-viz-misc.stories.tsx) (unreviewed)
|
||||
- `activity/activity`: [Oversight and operation/Dashboards and audit trails/Tools/Activity (audit feed)](../../ui/storybook/stories/activity/activity-feed.stories.tsx) (unreviewed), [Oversight and operation/Dashboards and audit trails/Apps/App detail · Activity (lifecycle)](../../ui/storybook/stories/activity/app-activity-lifecycle.stories.tsx) (unreviewed), [Tasks and conversations/Task creation and lifecycle/Product/Control Plane Surfaces](../../ui/storybook/stories/tasks/control-plane-surfaces.stories.tsx) (unreviewed)
|
||||
- `activity/runs`: No cataloged story.
|
||||
- `activity/runs`: [Oversight and operation/Dashboards and audit trails/Execution history](../../ui/storybook/stories/activity/run-audit.stories.tsx) (current)
|
||||
- `activity/routine-audit`: [Automation and structured work/Routines, schedules, and triggers/Product/Routines · Detail (variation C)](../../ui/storybook/stories/routines/routine-detail-c.stories.tsx) (unreviewed), [Automation and structured work/Routines, schedules, and triggers/Product/Routines/Webhooks](../../ui/storybook/stories/routines/routine-webhooks.stories.tsx) (unreviewed)
|
||||
- `activity/timeline`: [Oversight and operation/Dashboards and audit trails/Pages/Work Timeline](../../ui/storybook/stories/activity/work-timeline.stories.tsx) (unreviewed)
|
||||
- `navigation-preferences/navigation`: [Oversight and operation/Navigation, profile, and announcements/Prototypes/Task detail/Mobile tabs](../../ui/storybook/stories/navigation-preferences/mobile-task-tabs.stories.tsx) (proposed), [Oversight and operation/Navigation, profile, and announcements/Product/Navigation & Layout](../../ui/storybook/stories/navigation-preferences/navigation-layout.stories.tsx) (unreviewed)
|
||||
- `navigation-preferences/preferences`: No cataloged story.
|
||||
- `navigation-preferences/preferences`: [Oversight and operation/Navigation, profile, and announcements/Sidebar preferences](../../ui/storybook/stories/navigation-preferences/sidebar-preferences.stories.tsx) (current)
|
||||
- `navigation-preferences/profile`: [Agents and reusable capabilities/Hiring, configuration, and organization/Agents/Personas/Full pages](../../ui/storybook/stories/agents/agent-persona-pages.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Agents/Personas](../../ui/storybook/stories/agents/agent-personas.stories.tsx) (unreviewed)
|
||||
- `navigation-preferences/announcements`: [Oversight and operation/Navigation, profile, and announcements/Announcements/AnnouncementCard](../../ui/storybook/stories/navigation-preferences/announcement-card.stories.tsx) (unreviewed)
|
||||
- `navigation-preferences/fallbacks`: No cataloged story.
|
||||
- `instance-operations/install-update`: No cataloged story.
|
||||
- `instance-operations/server-service`: [Oversight and operation/Instance operations/Product/Dev Ops Surfaces](../../ui/storybook/stories/instance-operations/dev-ops-surfaces.stories.tsx) (unreviewed)
|
||||
- `instance-operations/configuration`: [Apps, channels, and extensions/Tool gateways and access profiles/Assistant connections/Experimental setting](../../ui/storybook/stories/gateways-profiles/public-mcp-setting.stories.tsx) (unreviewed)
|
||||
- `instance-operations/configuration`: [Apps, channels, and extensions/Tool gateways and access profiles/Assistant connections/Experimental setting](../../ui/storybook/stories/gateways-profiles/public-mcp-setting.stories.tsx) (unreviewed), [Oversight and operation/Instance operations/Backup retention](../../ui/storybook/stories/instance-operations/backup-retention.stories.tsx) (current)
|
||||
- `instance-operations/diagnostics`: No cataloged story.
|
||||
- `instance-operations/backup`: No cataloged story.
|
||||
- `instance-operations/backup`: [Oversight and operation/Instance operations/Backup retention](../../ui/storybook/stories/instance-operations/backup-retention.stories.tsx) (current)
|
||||
- `cli-operations/context`: No cataloged story.
|
||||
- `cli-operations/domain-commands`: No cataloged story.
|
||||
- `cli-operations/outputs`: No cataloged story.
|
||||
|
||||
@@ -551,3 +551,98 @@ fingerprints with notes naming those boundaries; classifications remain unchange
|
||||
The generated feature index reflects the current recipes. No new rendering,
|
||||
provider journey or whole-suite parity review is claimed. Catalog/map validation
|
||||
and all 27 catalog/generator/map tests pass with the pinned Storybook parser.
|
||||
|
||||
## Production-subject UI gap examples — 2026-10-13
|
||||
|
||||
Step 3 adds 37 suites and 257 scenarios associated with the 49 UI capabilities
|
||||
from [VERIFICATION.md](VERIFICATION.md). Subjects are shipped pages/components;
|
||||
API replies, sockets, callbacks and storage seeds remain simulated. Source
|
||||
review uses production snapshot `a9ef9e8ebc1f41bb7047142704655d08b3e47be7`;
|
||||
the story revision is `36689fc8149c31858d0b4c6f7839ecc663404073` plus the review
|
||||
corrections in this commit. Catalog fingerprints identify the tested source bytes.
|
||||
Existing suite classifications and all 2,248 prior built entry IDs are preserved;
|
||||
the new built index has 2,505 entries. Existing unreviewed suites remain unreviewed.
|
||||
|
||||
Executed the focused browser suite against this checkout's static build on macOS
|
||||
Chromium at 1280 × 900 with reduced motion: **260 checks passed**. Every new story
|
||||
was exercised: 129 declared play functions passed; the remaining 128 scenarios
|
||||
have explicit subject-content, skeleton, editable-control or documented fallback
|
||||
assertions. The only intentionally empty root is the zero-entry durable-response
|
||||
queue, whose shipped component returns null. Additional checks verified token
|
||||
fixture reset through sidebar navigation and backup retention at 390 × 844 in
|
||||
light and dark themes. No browser page errors were observed. The test names
|
||||
identify each story ID; rerun with the command in VERIFICATION.md. Selected
|
||||
screenshots are inspection captures, not pinned Linux visual-baseline comparisons.
|
||||
|
||||
Review corrections give empty stage settings zero stages and assert its message,
|
||||
make failed reads return HTTP 500 rather than the service-warmup HTTP 503,
|
||||
provide Inbox dependencies and actual plugin redirect destinations, use distinct
|
||||
attachment paths and a valid uncertain-submission UUID, and select Interactions
|
||||
before play starts so the browser harness does not steal input/menu focus.
|
||||
|
||||
Repository typecheck/build, the UI Vitest suite (730 files, 8,208 tests),
|
||||
four fixture-boundary tests, 27 catalog/generator/map tests, token gates and
|
||||
Storybook build passed. The full local repository test command could not complete:
|
||||
embedded PostgreSQL exhausted host shared-memory allocation, and native-runner
|
||||
tests reported timeouts. No host settings or other jobs were changed.
|
||||
|
||||
Production acceptance and pinned Linux visual comparisons were not run. The
|
||||
scenario inventory retains outstanding recipe variants and real authorization,
|
||||
persistence and provider contracts. Examples expose existing read-error/loading
|
||||
fallbacks rather than inventing feedback; those limits are named in VERIFICATION.md.
|
||||
|
||||
## Step-3 merge reconciliation — 2026-10-13
|
||||
|
||||
Merged current master `da9af67415` through the verification parent. Preserved
|
||||
upstream story additions, review notes and classifications and all 37 new suites.
|
||||
Compared changed catalog inputs with the reviewed step-2 snapshot: five feature
|
||||
recipes, the generated feature index, BudgetIncidentCard/Costs, Inbox and the
|
||||
recovery notice wiring changed. The two preview-hook lines remain as reviewed.
|
||||
The new budget fixtures explicitly use hard thresholds; their action labels and
|
||||
callbacks are retained. Inbox fixtures use human-created tasks; unrelated
|
||||
automation discovery remains outside their asserted scope. Recovery fixtures use
|
||||
generic exhaustion/unknown-outcome causes, not the newly gated native-owner path.
|
||||
Recipe additions concern Telegram maintenance, liveness versus readiness, trusted
|
||||
instance-secret lifecycle and native copyback verification, which these isolated
|
||||
UI stories do not establish. Reviewed those differences, refreshed affected
|
||||
fingerprints with scoped notes, and retained all statuses. No new live acceptance
|
||||
or rendering evidence is claimed for the merge; the earlier 260-check pass names
|
||||
its tested revision. Catalog/map validation and 27 targeted tests pass.
|
||||
|
||||
## Draft-fixture isolation correction before merge — 2026-10-13
|
||||
|
||||
After #16167 merged as `252d9b5077`, retained the step-3 catalog and scenarios
|
||||
while reconciling its squash-merged verification file. Review found that
|
||||
`clearDraft` correctly refuses to clear a retained submission without its
|
||||
matching attempt ID. Story setup/cleanup now passes that ID for the two
|
||||
Storybook-owned draft keys before reseeding them. Production draft guards are
|
||||
unchanged. The new same-browser check switches from UncertainSubmission to
|
||||
Empty, SentClearsDraft and SendFailedKeepsDraft; it asserts the warning disappears
|
||||
and the expected empty or retained draft is shown, with declared play passing.
|
||||
All six draft stories plus that switching regression passed (seven browser
|
||||
checks) on the owned macOS Chromium development preview after cold dependency
|
||||
optimization. UI typecheck, 16 existing draft-persistence tests and the 27
|
||||
catalog/generator/map tests passed. No whole-suite browser rerun, production
|
||||
submission journey or visual-baseline comparison is claimed for this narrow fix.
|
||||
|
||||
Static merge verification: Storybook build passed after restoring the checkout's
|
||||
renderer dependencies. All 2,248 original built IDs remain in the 2,517-entry
|
||||
index. The 25 budget/inbox/recovery examples affected by upstream source changes,
|
||||
six draft examples and same-browser reset check passed on the static preview
|
||||
(32 checks). The reset check uses the sidebar for Empty and reloads send stories
|
||||
within the same browser/storage context, so it cannot read the prior story's
|
||||
completed play status while the new play starts. No isolated-context substitute
|
||||
is used for the retained-submission regression. The unchanged GitHub bot-management
|
||||
suite also passed locally (34 tests) after its CI assertion failed; a separate
|
||||
server job reported cancellation. Those CI jobs require a fresh passing run.
|
||||
|
||||
## Named play-result assertions — 2026-10-13
|
||||
|
||||
Strengthened four review cases: UnavailableCompanyDraft waits for the visible
|
||||
wizard and an empty agent-name input before rejecting the foreign draft; Probing
|
||||
asserts a disabled Testing button; FilterNoMatches asserts the filtered empty
|
||||
message and absence of the seeded run; Delivering asserts the queue's optimistic
|
||||
removal after clicking a loaded row. The shipped queue returns null while that
|
||||
delivery remains pending, so this story records the missing visible progress
|
||||
presentation rather than inventing it. All four browser cases passed on the
|
||||
owned preview, as did UI typecheck and 27 catalog/generator/map tests.
|
||||
@@ -1,18 +1,79 @@
|
||||
# Verification routes for Storybook gaps
|
||||
# Verification routes for Storybook capabilities
|
||||
|
||||
Reviewed 2026-10-13 against source commit `5e8e992df2b3d71f82091b7bbf29fd482854d9f5` (merged #16154, including #16153 task notifications).
|
||||
Updated 2026-10-13. Production source is reconciled with master `252d9b5077`; step-3 story and fixture changes are recorded in the catalog fingerprints.
|
||||
|
||||
The catalog has 223 authored suites, 2,212 authored story IDs and 175 feature-map capabilities. Of those capabilities, 60 have no associated example suite: **49 need authored UI examples**, **8 need CLI/operator verification**, and **3 primarily need real browser verification**. Generated Overview pages and guides do not count as examples.
|
||||
The catalog has 262 authored suites, 2,481 authored story IDs and 175 feature-map capabilities. The 37 new production-subject suites add 257 scenarios and associate all 49 UI capabilities identified in step 2. **11 capabilities remain without authored examples: 8 CLI/operator operations and 3 real-browser concerns.** Generated Overview pages and guides do not count as examples. Existing suites and story IDs are retained.
|
||||
|
||||
This is step 2 of the Storybook reconciliation: choose and record the verification surface. It is a source classification of the 60 unassociated capabilities, not a full parity review of all suites or a live verification pass. All execution in this inventory is **not run**; test links identify existing starting points, not new passing evidence or exhaustive coverage. The 115 capabilities with example links still need production tests for their non-visual contracts.
|
||||
These associations provide initial isolated UI coverage, not complete parity with every feature recipe. The original scenario inventory below stays as a maintenance checklist; an association does not mark every listed variant complete. In particular, import examples cover preview, organization archival examples cover the list/restoration side, and custom-image examples cover metadata/configuration rather than a real setup terminal. Existing unreviewed suites remain unreviewed.
|
||||
|
||||
A story can establish component rendering, mock contract and asserted interaction. It cannot establish real authentication, permissions, persisted changes, run continuation, provider delivery or installation. Never classify a mixed capability as CLI/API-only merely because its backend needs those checks.
|
||||
A story can establish component rendering, fixture shape and asserted interaction. It cannot establish real authentication, permissions, persisted changes, run continuation, provider delivery or installation. **The production journeys listed below have not been run as part of this Storybook pass.** Existing test links identify starting points, not exhaustive or passing production acceptance evidence.
|
||||
|
||||
## UI examples to add in step 3
|
||||
## New example suites
|
||||
|
||||
These 49 capabilities need shipped-component examples with realistic mocked boundaries. Cover loading, empty, failure, permission and successful states where meaningful; do not invent unsupported controls. Display-first rows still retain the listed production checks. Story creation and full existing-suite review are subsequent work.
|
||||
All subjects use shipped components. APIs, socket messages, callbacks and storage seeds are simulated. Review results and source limitations are recorded in the catalog; the focused browser command is:
|
||||
|
||||
| Capability | Missing isolated UI evidence | Separate production evidence | Source and existing test starting points |
|
||||
```sh
|
||||
pnpm build-storybook
|
||||
node scripts/serve-storybook-static.mjs --port 6136
|
||||
# In a second terminal:
|
||||
pnpm exec playwright test --config tests/storybook-visual/feature-gap-stories.config.ts
|
||||
```
|
||||
|
||||
The static server must be an owned process serving this checkout. Override the browser target with `PAPERCLIP_GAP_STORYBOOK_URL` when using another owned port. The browser suite asserts each non-interactive story's expected content, skeleton or documented fallback and waits for declared play assertions; it also checks reset when switching token and uncertain-draft stories in one browser. This is not the pinned Linux visual-baseline comparison.
|
||||
|
||||
| Suite | Capability associations | Scenarios / play functions |
|
||||
| --- | --- | --- |
|
||||
| [Getting started and access/Login, invitations, and access/CLI authorization](../../ui/storybook/stories/access/cli-authorization.stories.tsx) | `access/cli-auth` | 9 / 5 |
|
||||
| [Getting started and access/Login, invitations, and access/Organization membership](../../ui/storybook/stories/access/membership.stories.tsx) | `access/membership` | 7 / 2 |
|
||||
| [Getting started and access/Login, invitations, and access/Sign in](../../ui/storybook/stories/access/sign-in.stories.tsx) | `access/login` | 6 / 3 |
|
||||
| [Oversight and operation/Dashboards and audit trails/Execution history](../../ui/storybook/stories/activity/run-audit.stories.tsx) | `activity/runs` | 6 / 4 |
|
||||
| [Tasks and conversations/Agent conversations and project handoff/Conference Room](../../ui/storybook/stories/agent-chat/conference-room.stories.tsx) | `agent-chat/conference-room` | 5 / 4 |
|
||||
| [Apps, channels, and extensions/App access and action permissions/Review newly discovered actions](../../ui/storybook/stories/app-permissions/catalog-review.stories.tsx) | `app-permissions/catalog-change` | 7 / 2 |
|
||||
| [Oversight and operation/Costs and budgets/Resolve a budget incident](../../ui/storybook/stories/budgets-costs/budget-resolution.stories.tsx) | `budgets-costs/resolution` | 10 / 6 |
|
||||
| [Automation and structured work/Cases/Browse and hierarchy](../../ui/storybook/stories/cases/case-browse.stories.tsx) | `cases/browse` | 5 / 1 |
|
||||
| [Automation and structured work/Cases/Structure, history and task links](../../ui/storybook/stories/cases/case-detail.stories.tsx) | `cases/structure`, `cases/history`, `cases/task-links` | 8 / 4 |
|
||||
| [Apps, channels, and extensions/External chat and email/Task-linked files](../../ui/storybook/stories/chat-channels/channel-attachments.stories.tsx) | `chat-channels/attachments` | 5 / 2 |
|
||||
| [Getting started and access/Companies and portability/Import preview](../../ui/storybook/stories/companies/company-import.stories.tsx) | `companies/portability` | 6 / 5 |
|
||||
| [Getting started and access/Companies and portability/Selection and archived organizations](../../ui/storybook/stories/companies/company-selection.stories.tsx) | `companies/selection`, `companies/archive` | 7 / 2 |
|
||||
| [Tasks and conversations/Documents, attachments, and work products/Document revisions](../../ui/storybook/stories/documents-artifacts/document-revisions.stories.tsx) | `documents-artifacts/documents` | 9 / 4 |
|
||||
| [Projects and execution/Execution environments/Custom images](../../ui/storybook/stories/execution-environments/custom-images.stories.tsx) | `execution-environments/images` | 6 / 3 |
|
||||
| [Projects and execution/Execution environments/Configuration, capabilities, and probes](../../ui/storybook/stories/execution-environments/environment-states.stories.tsx) | `execution-environments/configuration`, `execution-environments/capabilities`, `execution-environments/probe` | 10 / 4 |
|
||||
| [Apps, channels, and extensions/Tool gateways and access profiles/Named gateway tokens](../../ui/storybook/stories/gateways-profiles/gateway-tokens.stories.tsx) | `gateways-profiles/tokens` | 8 / 5 |
|
||||
| [Projects and execution/Goals and work alignment/Aligned work and navigation](../../ui/storybook/stories/goals/goal-alignment.stories.tsx) | `goals/alignment`, `goals/navigation` | 6 / 2 |
|
||||
| [Tasks and conversations/Inbox, decisions, and search/Personal task views](../../ui/storybook/stories/inbox-search/inbox-views.stories.tsx) | `inbox-search/views` | 8 / 0 |
|
||||
| [Tasks and conversations/Inbox, decisions, and search/Personal task notifications](../../ui/storybook/stories/inbox-search/personal-task-toasts.stories.tsx) | `inbox-search/toasts` | 4 / 4 |
|
||||
| [Oversight and operation/Instance operations/Backup retention](../../ui/storybook/stories/instance-operations/backup-retention.stories.tsx) | `instance-operations/backup`, `instance-operations/configuration` | 6 / 6 |
|
||||
| [Oversight and operation/Navigation, profile, and announcements/Sidebar preferences](../../ui/storybook/stories/navigation-preferences/sidebar-preferences.stories.tsx) | `navigation-preferences/preferences` | 5 / 1 |
|
||||
| [Getting started and access/Onboarding and first work/Resume a saved draft](../../ui/storybook/stories/onboarding/resume-draft.stories.tsx) | `onboarding/resume` | 4 / 3 |
|
||||
| [Automation and structured work/Pipelines, review queues, and learnings/Learnings](../../ui/storybook/stories/pipelines/learnings.stories.tsx) | `pipelines/learnings` | 5 / 1 |
|
||||
| [Automation and structured work/Pipelines, review queues, and learnings/Items](../../ui/storybook/stories/pipelines/pipeline-board.stories.tsx) | `pipelines/items` | 5 / 1 |
|
||||
| [Automation and structured work/Pipelines, review queues, and learnings/Review queue](../../ui/storybook/stories/pipelines/review-queue.stories.tsx) | `pipelines/review` | 7 / 3 |
|
||||
| [Automation and structured work/Pipelines, review queues, and learnings/Stage settings](../../ui/storybook/stories/pipelines/stage-settings.stories.tsx) | `pipelines/stages` | 5 / 2 |
|
||||
| [Apps, channels, and extensions/Plugins/Configuration](../../ui/storybook/stories/plugins/plugin-configuration.stories.tsx) | `plugins/configuration` | 6 / 3 |
|
||||
| [Apps, channels, and extensions/Plugins/Contributed routes](../../ui/storybook/stories/plugins/plugin-contributions.stories.tsx) | `plugins/contributions` | 4 / 1 |
|
||||
| [Apps, channels, and extensions/Plugins/Installation and lifecycle](../../ui/storybook/stories/plugins/plugin-management.stories.tsx) | `plugins/installation`, `plugins/lifecycle` | 10 / 5 |
|
||||
| [Projects and execution/Recovery/Exhaustion and user decisions](../../ui/storybook/stories/recovery/recovery-gap-states.stories.tsx) | `recovery/exhaustion`, `recovery/unknown-outcome` | 7 / 7 |
|
||||
| [Automation and structured work/Routines, schedules, and triggers/Run now](../../ui/storybook/stories/routines/run-now.stories.tsx) | `routines/run-now` | 8 / 4 |
|
||||
| [Apps, channels, and extensions/Secrets and proposals/Proposal review](../../ui/storybook/stories/secrets/proposal-review.stories.tsx) | `secrets/proposals` | 7 / 3 |
|
||||
| [Agents and reusable capabilities/Skills and Skill Studio/Test runs](../../ui/storybook/stories/skills/skill-test-runs.stories.tsx) | `skills/testing` | 9 / 1 |
|
||||
| [Automation and structured work/Status cards/Authoring, updates and archive](../../ui/storybook/stories/status-cards/status-card-states.stories.tsx) | `status-cards/authoring`, `status-cards/generation`, `status-cards/inspection`, `status-cards/archive` | 17 / 10 |
|
||||
| [Tasks and conversations/Steering and queued messages/Draft recovery](../../ui/storybook/stories/steering/composer-draft-recovery.stories.tsx) | `steering/drafts` | 6 / 3 |
|
||||
| [Tasks and conversations/Steering and queued messages/Accepted response delivery](../../ui/storybook/stories/steering/durable-response-queue.stories.tsx) | `steering/approval-queue`, `recovery/user-continuation` | 7 / 6 |
|
||||
| [Projects and execution/Workspaces, services, and files/Close readiness](../../ui/storybook/stories/workspaces/workspace-close.stories.tsx) | `workspaces/closure` | 7 / 7 |
|
||||
|
||||
## Production UI limitations exposed
|
||||
|
||||
- Plugin contribution discovery errors remain on “Loading…”. The named DiscoveryFailure story exposes this shipped behavior; it does not claim a useful failure state.
|
||||
- The document section and execution-environment list lack dedicated read-error/loading presentation. Cases and Inbox also fall back to empty views after list errors. Their stories retain the real fallback behavior. Custom-image metadata has its own loading and error states.
|
||||
- GoalDetail displays aligned projects and children. The current UI has no project goal-assignment control. The stories do not invent one.
|
||||
- Accepted queued responses disappear optimistically while delivery is pending; the shipped component has no separate visible progress indicator. The Delivering story asserts this presentation.
|
||||
- Conference Room maps a denied stream to its generic assistant-unavailable message. Real permission enforcement belongs to the separate route verification.
|
||||
|
||||
## UI scenarios and separate production contracts
|
||||
|
||||
These 49 capabilities now have initial shipped-component examples. Keep the requested scenarios below as the target for continued maintenance. Loading, empty, failure, permission and successful states are appropriate only when the production subject supports them. The separate production contracts remain required.
|
||||
|
||||
| Capability | UI scenarios to maintain | Separate production evidence | Source and existing test starting points |
|
||||
| --- | --- | --- | --- |
|
||||
| [`onboarding/resume`](../feature-map/onboarding.md) | Restored incomplete wizard; invalid or unauthorized saved company; temporarily withheld draft; account switch; storage failure. | Reload company-prefixed onboarding without duplicating company; restore only authorized account/company draft and retain input after recoverable loading failure. | Source: [OnboardingWizard.tsx](../../ui/src/components/OnboardingWizard.tsx), [onboarding-state.ts](../../ui/src/lib/onboarding-state.ts). Tests: [OnboardingWizard.test.tsx](../../ui/src/components/OnboardingWizard.test.tsx), [onboarding-state.test.ts](../../ui/src/lib/onboarding-state.test.ts), [onboarding.spec.ts](../../tests/e2e/onboarding.spec.ts) |
|
||||
| [`access/login`](../feature-map/access.md) | Sign-in form, pending and invalid credentials, deployment-mode claim gate, expired claim. | Authenticate and reload company deep link; sign out and confirm session enforcement; reject invalid bootstrap claim. | Source: [Auth.tsx](../../ui/src/pages/Auth.tsx), [BoardClaim.tsx](../../ui/src/pages/BoardClaim.tsx), [board-claim.ts](../../server/src/board-claim.ts). Tests: [Auth.test.tsx](../../ui/src/pages/Auth.test.tsx), [auth-session-route.test.ts](../../server/src/__tests__/auth-session-route.test.ts), [board-claim.test.ts](../../server/src/__tests__/board-claim.test.ts) |
|
||||
|
||||
@@ -8,9 +8,10 @@
|
||||
"maps/feature-map/README.md",
|
||||
"scripts/storybook-feature-index.mjs",
|
||||
"ui/storybook/generated/feature-index.json",
|
||||
"ui/storybook/support/feature-map/FeatureOverview.tsx"
|
||||
"ui/storybook/support/feature-map/FeatureOverview.tsx",
|
||||
"ui/storybook/support/capability-gaps/api.ts"
|
||||
],
|
||||
"fingerprint": "478ef942b11b91bd5258781e30b664f9cff6369e2ae4216d7a61be4b0801ce01"
|
||||
"fingerprint": "1f6d48d7e205c2ff2f7c33aa784a82ca0ef961093bba7de319d50e22dfb4f17a"
|
||||
},
|
||||
"entries": [
|
||||
{
|
||||
@@ -5718,6 +5719,907 @@
|
||||
"fingerprint": "aa76cd28dde8d50abd208b34283249170f3a85435ba82fff169a1c33433dfca1",
|
||||
"stableId": "workspace-finalization-recovery-02-task-journey",
|
||||
"sidebarTitle": "Projects and execution/Recovery/Workspace finalization recovery/02 Task journey"
|
||||
},
|
||||
{
|
||||
"file": "ui/storybook/stories/instance-operations/backup-retention.stories.tsx",
|
||||
"capabilities": [
|
||||
"instance-operations/backup",
|
||||
"instance-operations/configuration"
|
||||
],
|
||||
"purpose": "Oversight and operation/Instance operations/Backup retention",
|
||||
"status": "current",
|
||||
"implementation": "production",
|
||||
"boundary": "fixtures",
|
||||
"notes": "Retention presets, initial read, loading, error, denial and pending/saved selection in InstanceGeneralSettings. Backup creation/restore and real settings authority remain production obligations. The recipe distinguishes process liveness from authenticated database readiness; these examples do not exercise that operator API boundary.",
|
||||
"reviewedAt": "2026-10-13",
|
||||
"sources": [
|
||||
"maps/feature-map/instance-operations.md",
|
||||
"ui/src/pages/InstanceGeneralSettings.tsx",
|
||||
"ui/storybook/.storybook/preview.tsx",
|
||||
"ui/storybook/stories/instance-operations/backup-retention.stories.tsx",
|
||||
"ui/storybook/support/capability-gaps/api.ts"
|
||||
],
|
||||
"stableId": "feature-backup-retention",
|
||||
"sidebarTitle": "Oversight and operation/Instance operations/Backup retention",
|
||||
"fingerprint": "7dff68beb89f54e70e7afeb7abac2970c4e9101fae2320dc403a66ff7ae68f7a"
|
||||
},
|
||||
{
|
||||
"file": "ui/storybook/stories/recovery/recovery-gap-states.stories.tsx",
|
||||
"capabilities": [
|
||||
"recovery/exhaustion",
|
||||
"recovery/unknown-outcome"
|
||||
],
|
||||
"purpose": "Projects and execution/Recovery/Exhaustion and user decisions",
|
||||
"status": "current",
|
||||
"implementation": "production",
|
||||
"boundary": "fixtures",
|
||||
"notes": "Exhaustion notice, blocked authority, retry pending/failure/accepted and inactive notice; unknown-outcome action card is rendered separately. Retry callbacks and disposition context are simulated; no real continuation proof. The expanded native copyback recovery recipe requires harness stop proof; these generic exhaustion/queued-response fixtures do not establish that path.",
|
||||
"reviewedAt": "2026-10-13",
|
||||
"sources": [
|
||||
"maps/feature-map/recovery.md",
|
||||
"ui/src/components/DispositionRecoveryNotice.tsx",
|
||||
"ui/src/components/IssueRecoveryActionCard.tsx",
|
||||
"ui/storybook/.storybook/preview.tsx",
|
||||
"ui/storybook/fixtures/paperclipData.ts",
|
||||
"ui/storybook/stories/recovery/recovery-gap-states.stories.tsx",
|
||||
"ui/storybook/support/capability-gaps/api.ts"
|
||||
],
|
||||
"stableId": "feature-recovery-gap-states",
|
||||
"sidebarTitle": "Projects and execution/Recovery/Exhaustion and user decisions",
|
||||
"fingerprint": "b040d5167216510cd7f4384294fb27eb0a06168436b9cdd0a1ea9ac1b0e997b0"
|
||||
},
|
||||
{
|
||||
"file": "ui/storybook/stories/steering/durable-response-queue.stories.tsx",
|
||||
"capabilities": [
|
||||
"steering/approval-queue",
|
||||
"recovery/user-continuation"
|
||||
],
|
||||
"purpose": "Tasks and conversations/Steering and queued messages/Accepted response delivery",
|
||||
"status": "current",
|
||||
"implementation": "production",
|
||||
"boundary": "fixtures",
|
||||
"notes": "Accepted immutable response, cleanup wait, unavailable admission, empty queue and interrupt delivery states. Local callbacks remove delivered entries; durable queue/coalescing and fresh-session authority need production tests. The expanded native copyback recovery recipe requires harness stop proof; these generic exhaustion/queued-response fixtures do not establish that path. The shipped pending-delivery path removes rows optimistically and shows no separate progress indicator; the Delivering story asserts that actual presentation.",
|
||||
"reviewedAt": "2026-10-13",
|
||||
"sources": [
|
||||
"maps/feature-map/recovery.md",
|
||||
"maps/feature-map/steering.md",
|
||||
"ui/src/components/task-chat/TaskChatQueuedMessages.tsx",
|
||||
"ui/storybook/.storybook/preview.tsx",
|
||||
"ui/storybook/stories/steering/durable-response-queue.stories.tsx",
|
||||
"ui/storybook/support/capability-gaps/api.ts"
|
||||
],
|
||||
"stableId": "feature-durable-response-queue",
|
||||
"sidebarTitle": "Tasks and conversations/Steering and queued messages/Accepted response delivery",
|
||||
"fingerprint": "0071986d1378afd66fcb683d479d9569b05af97a4f98b2bc7ced1f67e8aaf61b"
|
||||
},
|
||||
{
|
||||
"file": "ui/storybook/stories/workspaces/workspace-close.stories.tsx",
|
||||
"capabilities": [
|
||||
"workspaces/closure"
|
||||
],
|
||||
"purpose": "Projects and execution/Workspaces, services, and files/Close readiness",
|
||||
"status": "current",
|
||||
"implementation": "production",
|
||||
"boundary": "fixtures",
|
||||
"notes": "Readiness dialog with loading, inspection failure/403, running-task block and pending/accepted archive response. No real workspace cleanup, Git removal or service shutdown is performed.",
|
||||
"reviewedAt": "2026-10-13",
|
||||
"sources": [
|
||||
"maps/feature-map/workspaces.md",
|
||||
"ui/src/components/ExecutionWorkspaceCloseDialog.tsx",
|
||||
"ui/src/components/ToastViewport.tsx",
|
||||
"ui/storybook/.storybook/preview.tsx",
|
||||
"ui/storybook/stories/workspaces/workspace-close.stories.tsx",
|
||||
"ui/storybook/support/capability-gaps/api.ts"
|
||||
],
|
||||
"stableId": "feature-workspace-close",
|
||||
"sidebarTitle": "Projects and execution/Workspaces, services, and files/Close readiness",
|
||||
"fingerprint": "b3d1d32d7f1f51f837ecd04f64ca1b6b7e8b36c921d54b638898ef06512617cc"
|
||||
},
|
||||
{
|
||||
"file": "ui/storybook/stories/budgets-costs/budget-resolution.stories.tsx",
|
||||
"capabilities": [
|
||||
"budgets-costs/resolution"
|
||||
],
|
||||
"purpose": "Oversight and operation/Costs and budgets/Resolve a budget incident",
|
||||
"status": "current",
|
||||
"implementation": "production",
|
||||
"boundary": "fixtures",
|
||||
"notes": "Shipped Costs budget tab with empty/read failures, invalid amount, raise-and-resume, keep-paused and write failure/pending. Fixture incident transitions only; real overlapping holds and hard stops remain separate. The upstream budget UI distinguishes soft warnings from hard stops; hard incidents retain raise-and-resume and keep-paused controls.",
|
||||
"reviewedAt": "2026-10-13",
|
||||
"sources": [
|
||||
"maps/feature-map/budgets-costs.md",
|
||||
"ui/src/pages/Costs.tsx",
|
||||
"ui/storybook/.storybook/preview.tsx",
|
||||
"ui/storybook/stories/budgets-costs/budget-resolution.stories.tsx",
|
||||
"ui/storybook/support/capability-gaps/api.ts"
|
||||
],
|
||||
"stableId": "feature-budget-resolution",
|
||||
"sidebarTitle": "Oversight and operation/Costs and budgets/Resolve a budget incident",
|
||||
"fingerprint": "8cf347aa01c0b4cb1364735794581b9123a23aba2151278a1a83354d582053ef"
|
||||
},
|
||||
{
|
||||
"file": "ui/storybook/stories/activity/run-audit.stories.tsx",
|
||||
"capabilities": [
|
||||
"activity/runs"
|
||||
],
|
||||
"purpose": "Oversight and operation/Dashboards and audit trails/Execution history",
|
||||
"status": "current",
|
||||
"implementation": "production",
|
||||
"boundary": "fixtures",
|
||||
"notes": "AuditRuns list, completed receipt, empty/loading/failed/denied and no-match filter. Run records are fixture snapshots; no real execution or scoped audit proof.",
|
||||
"reviewedAt": "2026-10-13",
|
||||
"sources": [
|
||||
"maps/feature-map/activity.md",
|
||||
"ui/src/pages/audit/AuditRuns.tsx",
|
||||
"ui/storybook/.storybook/preview.tsx",
|
||||
"ui/storybook/fixtures/paperclipData.ts",
|
||||
"ui/storybook/stories/activity/run-audit.stories.tsx",
|
||||
"ui/storybook/support/capability-gaps/api.ts"
|
||||
],
|
||||
"stableId": "feature-run-audit",
|
||||
"sidebarTitle": "Oversight and operation/Dashboards and audit trails/Execution history",
|
||||
"fingerprint": "0a43211053a4c36b6ae4061a624b7e223660931b565a234a829b38d53eab4861"
|
||||
},
|
||||
{
|
||||
"file": "ui/storybook/stories/secrets/proposal-review.stories.tsx",
|
||||
"capabilities": [
|
||||
"secrets/proposals"
|
||||
],
|
||||
"purpose": "Apps, channels, and extensions/Secrets and proposals/Proposal review",
|
||||
"status": "current",
|
||||
"implementation": "production",
|
||||
"boundary": "fixtures",
|
||||
"notes": "Pending proposal, authority preflight block, list states and rejected proposal/rejection error. ProposalsTab and its dialogs are shipped; secret creation, values and grant authority are not exercised. Agent-owned instance secrets remain in trusted server runtime and are excluded from ordinary agent delivery; these UI examples do not verify that lifecycle contract.",
|
||||
"reviewedAt": "2026-10-13",
|
||||
"sources": [
|
||||
"maps/feature-map/secrets.md",
|
||||
"ui/src/components/ToastViewport.tsx",
|
||||
"ui/src/pages/secrets/ProposalsTab.tsx",
|
||||
"ui/storybook/.storybook/preview.tsx",
|
||||
"ui/storybook/stories/secrets/proposal-review.stories.tsx",
|
||||
"ui/storybook/support/capability-gaps/api.ts"
|
||||
],
|
||||
"stableId": "feature-secret-proposal-review",
|
||||
"sidebarTitle": "Apps, channels, and extensions/Secrets and proposals/Proposal review",
|
||||
"fingerprint": "eb3a67d3543f732a6be88f3a2ee9b070f171ff18a037f1869f64b3edd66dfb14"
|
||||
},
|
||||
{
|
||||
"file": "ui/storybook/stories/gateways-profiles/gateway-tokens.stories.tsx",
|
||||
"capabilities": [
|
||||
"gateways-profiles/tokens"
|
||||
],
|
||||
"purpose": "Apps, channels, and extensions/Tool gateways and access profiles/Named gateway tokens",
|
||||
"status": "current",
|
||||
"implementation": "production",
|
||||
"boundary": "fixtures",
|
||||
"notes": "Named, empty and expired token history; issuance pending/error/403/success and name-confirmed revocation. Tokens are fictional; real bearer expiry, scope and revocation need API verification.",
|
||||
"reviewedAt": "2026-10-13",
|
||||
"sources": [
|
||||
"maps/feature-map/gateways-profiles.md",
|
||||
"ui/src/api/tools.ts",
|
||||
"ui/src/components/ToastViewport.tsx",
|
||||
"ui/src/pages/apps/gateways/NewGatewayDialog.tsx",
|
||||
"ui/src/pages/apps/gateways/panels/TokensPanel.tsx",
|
||||
"ui/storybook/.storybook/preview.tsx",
|
||||
"ui/storybook/stories/gateways-profiles/gateway-tokens.stories.tsx",
|
||||
"ui/storybook/support/capability-gaps/api.ts"
|
||||
],
|
||||
"stableId": "feature-gateway-tokens",
|
||||
"sidebarTitle": "Apps, channels, and extensions/Tool gateways and access profiles/Named gateway tokens",
|
||||
"fingerprint": "0c565737015544b791cf7b4fda2f80fd9456368aeb8f0df0f9a4f60ad221b028"
|
||||
},
|
||||
{
|
||||
"file": "ui/storybook/stories/access/cli-authorization.stories.tsx",
|
||||
"capabilities": [
|
||||
"access/cli-auth"
|
||||
],
|
||||
"purpose": "Getting started and access/Login, invitations, and access/CLI authorization",
|
||||
"status": "current",
|
||||
"implementation": "production",
|
||||
"boundary": "fixtures",
|
||||
"notes": "Real CliAuth route with pending/expired/unavailable/preflight denial, approval/cancel and write pending/error. Fictional challenge; no CLI identity or real token is authorized.",
|
||||
"reviewedAt": "2026-10-13",
|
||||
"sources": [
|
||||
"maps/feature-map/access.md",
|
||||
"ui/src/lib/router.tsx",
|
||||
"ui/src/pages/CliAuth.tsx",
|
||||
"ui/storybook/.storybook/preview.tsx",
|
||||
"ui/storybook/stories/access/cli-authorization.stories.tsx",
|
||||
"ui/storybook/support/capability-gaps/api.ts"
|
||||
],
|
||||
"stableId": "feature-cli-authorization",
|
||||
"sidebarTitle": "Getting started and access/Login, invitations, and access/CLI authorization",
|
||||
"fingerprint": "c87b678d05b7818fd201f97c7e41cd92ce25520123ef4d20b56dd0c9785455ee"
|
||||
},
|
||||
{
|
||||
"file": "ui/storybook/stories/access/sign-in.stories.tsx",
|
||||
"capabilities": [
|
||||
"access/login"
|
||||
],
|
||||
"purpose": "Getting started and access/Login, invitations, and access/Sign in",
|
||||
"status": "current",
|
||||
"implementation": "production",
|
||||
"boundary": "fixtures",
|
||||
"notes": "AuthPage email form, session read loading/error, submission pending/failure and navigation to Companies after a fixture session. Real authentication, bootstrap claim and sign-out remain separate.",
|
||||
"reviewedAt": "2026-10-13",
|
||||
"sources": [
|
||||
"maps/feature-map/access.md",
|
||||
"ui/src/lib/router.tsx",
|
||||
"ui/src/pages/Auth.tsx",
|
||||
"ui/src/pages/Companies.tsx",
|
||||
"ui/storybook/.storybook/preview.tsx",
|
||||
"ui/storybook/fixtures/paperclipData.ts",
|
||||
"ui/storybook/stories/access/sign-in.stories.tsx",
|
||||
"ui/storybook/support/capability-gaps/api.ts"
|
||||
],
|
||||
"stableId": "feature-sign-in",
|
||||
"sidebarTitle": "Getting started and access/Login, invitations, and access/Sign in",
|
||||
"fingerprint": "b9524d5f5a97e14c7e3bc5989b94ebe0fea56ab8767df5c5efb24430b003d491"
|
||||
},
|
||||
{
|
||||
"file": "ui/storybook/stories/access/membership.stories.tsx",
|
||||
"capabilities": [
|
||||
"access/membership"
|
||||
],
|
||||
"purpose": "Getting started and access/Login, invitations, and access/Organization membership",
|
||||
"status": "current",
|
||||
"implementation": "production",
|
||||
"boundary": "fixtures",
|
||||
"notes": "CompanyAccess member list and role change with loading/empty/failure/403 and failed mutation toast. Backend actor authority, invite lifecycle and durable membership are not verified.",
|
||||
"reviewedAt": "2026-10-13",
|
||||
"sources": [
|
||||
"maps/feature-map/access.md",
|
||||
"ui/src/components/ToastViewport.tsx",
|
||||
"ui/src/pages/CompanyAccess.tsx",
|
||||
"ui/storybook/.storybook/preview.tsx",
|
||||
"ui/storybook/stories/access/membership.stories.tsx",
|
||||
"ui/storybook/support/capability-gaps/api.ts"
|
||||
],
|
||||
"stableId": "feature-membership",
|
||||
"sidebarTitle": "Getting started and access/Login, invitations, and access/Organization membership",
|
||||
"fingerprint": "8bd65a1aa65dc4e4767390eefb1b731a410ff852ac6eced05f5e3e5249d1a356"
|
||||
},
|
||||
{
|
||||
"file": "ui/storybook/stories/companies/company-selection.stories.tsx",
|
||||
"capabilities": [
|
||||
"companies/selection",
|
||||
"companies/archive"
|
||||
],
|
||||
"purpose": "Getting started and access/Companies and portability/Selection and archived organizations",
|
||||
"status": "current",
|
||||
"implementation": "production",
|
||||
"boundary": "fixtures",
|
||||
"notes": "Companies list, selection storage and archived-company restoration with loading/empty/error/403. This covers the archive list/restoration side; CompanySettings archive confirmation remains an additional UI scenario.",
|
||||
"reviewedAt": "2026-10-13",
|
||||
"sources": [
|
||||
"maps/feature-map/companies.md",
|
||||
"ui/src/pages/Companies.tsx",
|
||||
"ui/storybook/.storybook/preview.tsx",
|
||||
"ui/storybook/fixtures/paperclipData.ts",
|
||||
"ui/storybook/stories/companies/company-selection.stories.tsx",
|
||||
"ui/storybook/support/capability-gaps/api.ts"
|
||||
],
|
||||
"stableId": "feature-company-selection",
|
||||
"sidebarTitle": "Getting started and access/Companies and portability/Selection and archived organizations",
|
||||
"fingerprint": "0275b0bd6538672ef381ffb6fbdf68b7611e93df97334246cb4b3b1c6856bc17"
|
||||
},
|
||||
{
|
||||
"file": "ui/storybook/stories/plugins/plugin-management.stories.tsx",
|
||||
"capabilities": [
|
||||
"plugins/installation",
|
||||
"plugins/lifecycle"
|
||||
],
|
||||
"purpose": "Apps, channels, and extensions/Plugins/Installation and lifecycle",
|
||||
"status": "current",
|
||||
"implementation": "production",
|
||||
"boundary": "fixtures",
|
||||
"notes": "PluginManager list states, install pending/error/success, disable and uninstall receipts. Local record transitions only; package loading and worker lifecycle require production verification.",
|
||||
"reviewedAt": "2026-10-13",
|
||||
"sources": [
|
||||
"maps/feature-map/plugins.md",
|
||||
"ui/src/components/ToastViewport.tsx",
|
||||
"ui/src/pages/PluginManager.tsx",
|
||||
"ui/src/pages/PluginSettings.tsx",
|
||||
"ui/storybook/.storybook/preview.tsx",
|
||||
"ui/storybook/stories/plugins/plugin-management.stories.tsx",
|
||||
"ui/storybook/support/capability-gaps/api.ts",
|
||||
"ui/storybook/support/capability-gaps/plugins.ts"
|
||||
],
|
||||
"stableId": "feature-plugin-management",
|
||||
"sidebarTitle": "Apps, channels, and extensions/Plugins/Installation and lifecycle",
|
||||
"fingerprint": "fd52b6f6966ae05ad7ffb755eebcfa0aeb6d9cb7c246a9def116de663eb5feeb"
|
||||
},
|
||||
{
|
||||
"file": "ui/storybook/stories/plugins/plugin-configuration.stories.tsx",
|
||||
"capabilities": [
|
||||
"plugins/configuration"
|
||||
],
|
||||
"purpose": "Apps, channels, and extensions/Plugins/Configuration",
|
||||
"status": "current",
|
||||
"implementation": "production",
|
||||
"boundary": "fixtures",
|
||||
"notes": "PluginSettings configuration route with hydrated values, read pending/unavailable and saved/error/403 responses. Real config storage and plugin worker validation are not proved.",
|
||||
"reviewedAt": "2026-10-13",
|
||||
"sources": [
|
||||
"maps/feature-map/plugins.md",
|
||||
"ui/src/lib/router.tsx",
|
||||
"ui/src/pages/PluginManager.tsx",
|
||||
"ui/src/pages/PluginSettings.tsx",
|
||||
"ui/storybook/.storybook/preview.tsx",
|
||||
"ui/storybook/stories/plugins/plugin-configuration.stories.tsx",
|
||||
"ui/storybook/support/capability-gaps/api.ts",
|
||||
"ui/storybook/support/capability-gaps/plugins.ts"
|
||||
],
|
||||
"stableId": "feature-plugin-configuration",
|
||||
"sidebarTitle": "Apps, channels, and extensions/Plugins/Configuration",
|
||||
"fingerprint": "b80dc4cfa9311c9df6fb795a4b481405144342a9003062b2e0d8397d6f8b68e1"
|
||||
},
|
||||
{
|
||||
"file": "ui/storybook/stories/plugins/plugin-contributions.stories.tsx",
|
||||
"capabilities": [
|
||||
"plugins/contributions"
|
||||
],
|
||||
"purpose": "Apps, channels, and extensions/Plugins/Contributed routes",
|
||||
"status": "current",
|
||||
"implementation": "production",
|
||||
"boundary": "fixtures",
|
||||
"notes": "Production PluginPage host with a registered fixture plugin component; pending/missing contribution and discovery failure. Discovery failure currently remains Loading; contribution contents are a fixture, not shipped plugin code.",
|
||||
"reviewedAt": "2026-10-13",
|
||||
"sources": [
|
||||
"maps/feature-map/plugins.md",
|
||||
"ui/src/lib/router.tsx",
|
||||
"ui/src/pages/PluginManager.tsx",
|
||||
"ui/src/pages/PluginPage.tsx",
|
||||
"ui/src/pages/PluginSettings.tsx",
|
||||
"ui/src/plugins/slots.tsx",
|
||||
"ui/storybook/.storybook/preview.tsx",
|
||||
"ui/storybook/stories/plugins/plugin-contributions.stories.tsx",
|
||||
"ui/storybook/support/capability-gaps/api.ts",
|
||||
"ui/storybook/support/capability-gaps/plugins.ts"
|
||||
],
|
||||
"stableId": "feature-plugin-contributions",
|
||||
"sidebarTitle": "Apps, channels, and extensions/Plugins/Contributed routes",
|
||||
"fingerprint": "09b20d50e157c332613c3c03ccded5ae21804011005891cacd4342ce653b8d67"
|
||||
},
|
||||
{
|
||||
"file": "ui/storybook/stories/cases/case-browse.stories.tsx",
|
||||
"capabilities": [
|
||||
"cases/browse"
|
||||
],
|
||||
"purpose": "Automation and structured work/Cases/Browse and hierarchy",
|
||||
"status": "current",
|
||||
"implementation": "production",
|
||||
"boundary": "fixtures",
|
||||
"notes": "Cases page with fixture parent/child records and loading/empty/error/403. Failed list queries currently use the shipped empty-case presentation. Responsive duplicate labels are accounted for; server filters and case mutations remain separate.",
|
||||
"reviewedAt": "2026-10-13",
|
||||
"sources": [
|
||||
"maps/feature-map/cases.md",
|
||||
"ui/src/pages/Cases.tsx",
|
||||
"ui/storybook/.storybook/preview.tsx",
|
||||
"ui/storybook/stories/cases/case-browse.stories.tsx",
|
||||
"ui/storybook/support/capability-gaps/api.ts",
|
||||
"ui/storybook/support/capability-gaps/cases.ts"
|
||||
],
|
||||
"stableId": "feature-case-browse",
|
||||
"sidebarTitle": "Automation and structured work/Cases/Browse and hierarchy",
|
||||
"fingerprint": "41f3255e05cc2ca30fc22ff25748cff9b7017189f6ebb71d6f42827602237691"
|
||||
},
|
||||
{
|
||||
"file": "ui/storybook/stories/cases/case-detail.stories.tsx",
|
||||
"capabilities": [
|
||||
"cases/structure",
|
||||
"cases/history",
|
||||
"cases/task-links"
|
||||
],
|
||||
"purpose": "Automation and structured work/Cases/Structure, history and task links",
|
||||
"status": "current",
|
||||
"implementation": "production",
|
||||
"boundary": "fixtures",
|
||||
"notes": "CaseDetail hierarchy and activity, CaseFieldsPanel arbitrary/empty data and IssueCasesPanel reverse links. Fixture relations/events; document revision history and persisted links remain production obligations.",
|
||||
"reviewedAt": "2026-10-13",
|
||||
"sources": [
|
||||
"maps/feature-map/cases.md",
|
||||
"ui/src/components/CaseFieldsPanel.tsx",
|
||||
"ui/src/components/IssueCasesPanel.tsx",
|
||||
"ui/src/lib/router.tsx",
|
||||
"ui/src/pages/CaseDetail.tsx",
|
||||
"ui/storybook/.storybook/preview.tsx",
|
||||
"ui/storybook/stories/cases/case-detail.stories.tsx",
|
||||
"ui/storybook/support/capability-gaps/api.ts",
|
||||
"ui/storybook/support/capability-gaps/cases.ts"
|
||||
],
|
||||
"stableId": "feature-case-detail",
|
||||
"sidebarTitle": "Automation and structured work/Cases/Structure, history and task links",
|
||||
"fingerprint": "13a24fcf6de97812864194104d14343ec50130ba6aa5405078a1b127778ab0cf"
|
||||
},
|
||||
{
|
||||
"file": "ui/storybook/stories/status-cards/status-card-states.stories.tsx",
|
||||
"capabilities": [
|
||||
"status-cards/authoring",
|
||||
"status-cards/generation",
|
||||
"status-cards/inspection",
|
||||
"status-cards/archive"
|
||||
],
|
||||
"purpose": "Automation and structured work/Status cards/Authoring, updates and archive",
|
||||
"status": "current",
|
||||
"implementation": "production",
|
||||
"boundary": "fixtures",
|
||||
"notes": "StatusCards board/drawer with current/stale/error/live setup, list states, create, refresh, inspection and archive/restoration. Mutable receipts and setup task ID are fixtures; no summarizer execution or revision-history parity is claimed.",
|
||||
"reviewedAt": "2026-10-13",
|
||||
"sources": [
|
||||
"maps/feature-map/status-cards.md",
|
||||
"ui/src/lib/router.tsx",
|
||||
"ui/src/pages/StatusCards/ArchivedStatusCardRow.tsx",
|
||||
"ui/src/pages/StatusCards/CreateStatusCardDialog.tsx",
|
||||
"ui/src/pages/StatusCards/StatusCardDetailDrawer.tsx",
|
||||
"ui/src/pages/StatusCards/StatusCardTile.tsx",
|
||||
"ui/src/pages/StatusCards/index.tsx",
|
||||
"ui/storybook/.storybook/preview.tsx",
|
||||
"ui/storybook/stories/status-cards/status-card-states.stories.tsx",
|
||||
"ui/storybook/support/capability-gaps/api.ts",
|
||||
"ui/storybook/support/capability-gaps/status-cards.ts"
|
||||
],
|
||||
"stableId": "feature-status-card-states",
|
||||
"sidebarTitle": "Automation and structured work/Status cards/Authoring, updates and archive",
|
||||
"fingerprint": "c6f52ca5e82fa4a14bc10b30177a0a9e689cd37d83fc5afbee77370f707bb13f"
|
||||
},
|
||||
{
|
||||
"file": "ui/storybook/stories/goals/goal-alignment.stories.tsx",
|
||||
"capabilities": [
|
||||
"goals/alignment",
|
||||
"goals/navigation"
|
||||
],
|
||||
"purpose": "Projects and execution/Goals and work alignment/Aligned work and navigation",
|
||||
"status": "current",
|
||||
"implementation": "production",
|
||||
"boundary": "fixtures",
|
||||
"notes": "GoalDetail child navigation and aligned-project tab with empty/loading/failure/403. Current UI displays relationships but has no project goal-assignment control; no invented assignment UI.",
|
||||
"reviewedAt": "2026-10-13",
|
||||
"sources": [
|
||||
"maps/feature-map/goals.md",
|
||||
"ui/src/lib/router.tsx",
|
||||
"ui/src/pages/GoalDetail.tsx",
|
||||
"ui/storybook/.storybook/preview.tsx",
|
||||
"ui/storybook/fixtures/paperclipData.ts",
|
||||
"ui/storybook/stories/goals/goal-alignment.stories.tsx",
|
||||
"ui/storybook/support/capability-gaps/api.ts"
|
||||
],
|
||||
"stableId": "feature-goal-alignment",
|
||||
"sidebarTitle": "Projects and execution/Goals and work alignment/Aligned work and navigation",
|
||||
"fingerprint": "a9a4bc0845dbed28f5cc458713f4ceecb3641a9ba1b60fe1867f3b573a471622"
|
||||
},
|
||||
{
|
||||
"file": "ui/storybook/stories/companies/company-import.stories.tsx",
|
||||
"capabilities": [
|
||||
"companies/portability"
|
||||
],
|
||||
"purpose": "Getting started and access/Companies and portability/Import preview",
|
||||
"status": "current",
|
||||
"implementation": "production",
|
||||
"boundary": "fixtures",
|
||||
"notes": "Shipped CompanyImport GitHub-source preview, warnings, pending, error and 403. Plan/package replies are fictional; export, final import and real package fidelity remain separate scenarios/contracts.",
|
||||
"reviewedAt": "2026-10-13",
|
||||
"sources": [
|
||||
"maps/feature-map/companies.md",
|
||||
"ui/src/pages/CompanyImport.tsx",
|
||||
"ui/storybook/.storybook/preview.tsx",
|
||||
"ui/storybook/stories/companies/company-import.stories.tsx",
|
||||
"ui/storybook/support/capability-gaps/api.ts"
|
||||
],
|
||||
"stableId": "feature-company-import",
|
||||
"sidebarTitle": "Getting started and access/Companies and portability/Import preview",
|
||||
"fingerprint": "578c7550b2a601c0c71aa7a847f9c9505a642629a92da73af0ef7e750fb3f370"
|
||||
},
|
||||
{
|
||||
"file": "ui/storybook/stories/inbox-search/inbox-views.stories.tsx",
|
||||
"capabilities": [
|
||||
"inbox-search/views"
|
||||
],
|
||||
"purpose": "Tasks and conversations/Inbox, decisions, and search/Personal task views",
|
||||
"status": "current",
|
||||
"implementation": "production",
|
||||
"boundary": "fixtures",
|
||||
"notes": "Shipped Inbox host with Mine/Recent/Unread/Blocked under combined-inbox flags and list states. Approvals/join requests/run lists are isolated alongside tasks. Failed/denied list queries currently fall back to Inbox zero; personal participation/read metadata and server counts remain production verification. Mine/recent fixture tasks are human-created; the upstream agent-created-task filter changes are separate visibility scenarios.",
|
||||
"reviewedAt": "2026-10-13",
|
||||
"sources": [
|
||||
"maps/feature-map/inbox-search.md",
|
||||
"ui/src/pages/Inbox.tsx",
|
||||
"ui/storybook/.storybook/preview.tsx",
|
||||
"ui/storybook/fixtures/paperclipData.ts",
|
||||
"ui/storybook/stories/inbox-search/inbox-views.stories.tsx",
|
||||
"ui/storybook/support/capability-gaps/api.ts"
|
||||
],
|
||||
"stableId": "feature-inbox-views",
|
||||
"sidebarTitle": "Tasks and conversations/Inbox, decisions, and search/Personal task views",
|
||||
"fingerprint": "6b0a316d05b6e02af3c50075086063ae9c748ea4edc0e67156235bcc1eb8e21b"
|
||||
},
|
||||
{
|
||||
"file": "ui/storybook/stories/skills/skill-test-runs.stories.tsx",
|
||||
"capabilities": [
|
||||
"skills/testing"
|
||||
],
|
||||
"purpose": "Agents and reusable capabilities/Skills and Skill Studio/Test runs",
|
||||
"status": "current",
|
||||
"implementation": "production",
|
||||
"boundary": "fixtures",
|
||||
"notes": "SkillStudio test history statuses and result detail with immutable fixture output/version. No agent/provider runs; authoring, harness execution, persisted costs and snapshots require production tests.",
|
||||
"reviewedAt": "2026-10-13",
|
||||
"sources": [
|
||||
"maps/feature-map/skills.md",
|
||||
"ui/src/lib/router.tsx",
|
||||
"ui/src/pages/SkillStudio.tsx",
|
||||
"ui/storybook/.storybook/preview.tsx",
|
||||
"ui/storybook/stories/skills/skill-test-runs.stories.tsx",
|
||||
"ui/storybook/support/capability-gaps/api.ts",
|
||||
"ui/storybook/support/capability-gaps/skills.ts"
|
||||
],
|
||||
"stableId": "feature-skill-test-runs",
|
||||
"sidebarTitle": "Agents and reusable capabilities/Skills and Skill Studio/Test runs",
|
||||
"fingerprint": "4685add5676a5e6dd96885d326be891b8b48520787177d8540d5f3e2758cb8c5"
|
||||
},
|
||||
{
|
||||
"file": "ui/storybook/stories/onboarding/resume-draft.stories.tsx",
|
||||
"capabilities": [
|
||||
"onboarding/resume"
|
||||
],
|
||||
"purpose": "Getting started and access/Onboarding and first work/Resume a saved draft",
|
||||
"status": "current",
|
||||
"implementation": "production",
|
||||
"boundary": "fixtures",
|
||||
"notes": "OnboardingWizard restores a seeded draft, malformed/unavailable-company handling and draft retention across a fixture remount. The reopen button belongs to the fixture host; real reload, account switch and storage failure remain separate checks.",
|
||||
"reviewedAt": "2026-10-13",
|
||||
"sources": [
|
||||
"maps/feature-map/onboarding.md",
|
||||
"ui/src/api/companies-query.ts",
|
||||
"ui/src/components/OnboardingWizard.tsx",
|
||||
"ui/src/components/ui/button.tsx",
|
||||
"ui/src/context/DialogContext.tsx",
|
||||
"ui/storybook/.storybook/preview.tsx",
|
||||
"ui/storybook/fixtures/onboardingDraft.ts",
|
||||
"ui/storybook/stories/onboarding/resume-draft.stories.tsx",
|
||||
"ui/storybook/support/capability-gaps/api.ts"
|
||||
],
|
||||
"stableId": "feature-onboarding-resume",
|
||||
"sidebarTitle": "Getting started and access/Onboarding and first work/Resume a saved draft",
|
||||
"fingerprint": "90abcea935be1524a081ff34041f608fa2c0dd354dbc3bacbf16679cf580957f"
|
||||
},
|
||||
{
|
||||
"file": "ui/storybook/stories/routines/run-now.stories.tsx",
|
||||
"capabilities": [
|
||||
"routines/run-now"
|
||||
],
|
||||
"purpose": "Automation and structured work/Routines, schedules, and triggers/Run now",
|
||||
"status": "current",
|
||||
"implementation": "production",
|
||||
"boundary": "fixtures",
|
||||
"notes": "RoutineDetail manual-run dialog with required input, captured variables, pending/error/success and read states. Fictional dispatch receipt; real scheduling, coalescing, workspace authority and execution remain separate.",
|
||||
"reviewedAt": "2026-10-13",
|
||||
"sources": [
|
||||
"maps/feature-map/routines.md",
|
||||
"ui/src/components/ToastViewport.tsx",
|
||||
"ui/src/lib/router.tsx",
|
||||
"ui/src/pages/RoutineDetail.tsx",
|
||||
"ui/storybook/.storybook/preview.tsx",
|
||||
"ui/storybook/fixtures/paperclipData.ts",
|
||||
"ui/storybook/fixtures/routineWebhooks.tsx",
|
||||
"ui/storybook/stories/routines/run-now.stories.tsx",
|
||||
"ui/storybook/support/capability-gaps/api.ts"
|
||||
],
|
||||
"stableId": "feature-routine-run-now",
|
||||
"sidebarTitle": "Automation and structured work/Routines, schedules, and triggers/Run now",
|
||||
"fingerprint": "6d6f650f4990ad61045c6e3c47ae446cf5ac7a5240ca123a91c2c3216bf0d3c9"
|
||||
},
|
||||
{
|
||||
"file": "ui/storybook/stories/app-permissions/catalog-review.stories.tsx",
|
||||
"capabilities": [
|
||||
"app-permissions/catalog-change"
|
||||
],
|
||||
"purpose": "Apps, channels, and extensions/App access and action permissions/Review newly discovered actions",
|
||||
"status": "current",
|
||||
"implementation": "production",
|
||||
"boundary": "fixtures",
|
||||
"notes": "Shipped ActionsSection quarantine reviewer with allowed/blocked decisions, empty/refreshing/saving/read-only props. Callbacks simulate catalog persistence; discovery failures belong to AppDetail and backend authority remains separate.",
|
||||
"reviewedAt": "2026-10-13",
|
||||
"sources": [
|
||||
"maps/feature-map/app-permissions.md",
|
||||
"ui/src/pages/apps/app-detail/PermissionsPanel.tsx",
|
||||
"ui/storybook/.storybook/preview.tsx",
|
||||
"ui/storybook/stories/app-permissions/catalog-review.stories.tsx",
|
||||
"ui/storybook/support/capability-gaps/api.ts"
|
||||
],
|
||||
"stableId": "feature-catalog-review",
|
||||
"sidebarTitle": "Apps, channels, and extensions/App access and action permissions/Review newly discovered actions",
|
||||
"fingerprint": "0b4c214f3c5e138fa57da3ed59a64c368d8ac7615476164743b810c117e7cab6"
|
||||
},
|
||||
{
|
||||
"file": "ui/storybook/stories/chat-channels/channel-attachments.stories.tsx",
|
||||
"capabilities": [
|
||||
"chat-channels/attachments"
|
||||
],
|
||||
"purpose": "Apps, channels, and extensions/External chat and email/Task-linked files",
|
||||
"status": "current",
|
||||
"implementation": "production",
|
||||
"boundary": "fixtures",
|
||||
"notes": "TaskChatBubble with received/outbound saved attachment receipts, no/multiple files and missing filename. File links are fictional; no download, provider transfer or authorization is proved.",
|
||||
"reviewedAt": "2026-10-13",
|
||||
"sources": [
|
||||
"maps/feature-map/chat-channels.md",
|
||||
"ui/src/components/task-chat/TaskChatBubble.tsx",
|
||||
"ui/storybook/.storybook/preview.tsx",
|
||||
"ui/storybook/stories/chat-channels/channel-attachments.stories.tsx",
|
||||
"ui/storybook/support/capability-gaps/api.ts"
|
||||
],
|
||||
"stableId": "feature-channel-attachments",
|
||||
"sidebarTitle": "Apps, channels, and extensions/External chat and email/Task-linked files",
|
||||
"fingerprint": "aa6718bf5754d2f5603682ed76d5075e277ce19f35b38356f92f8e3f14bc4f43"
|
||||
},
|
||||
{
|
||||
"file": "ui/storybook/stories/steering/composer-draft-recovery.stories.tsx",
|
||||
"capabilities": [
|
||||
"steering/drafts"
|
||||
],
|
||||
"purpose": "Tasks and conversations/Steering and queued messages/Draft recovery",
|
||||
"status": "current",
|
||||
"implementation": "production",
|
||||
"boundary": "fixtures",
|
||||
"notes": "TaskChatComposer uses owned task-keyed browser drafts, uncertain submission fence, switch/restore and failed/accepted send callbacks. API receipt authority and real submission durability remain separate. Storybook-owned draft keys are reset using the matching retained submission ID on setup and cleanup; same-browser uncertain-to-empty/send switching is covered separately.",
|
||||
"reviewedAt": "2026-10-13",
|
||||
"sources": [
|
||||
"maps/feature-map/steering.md",
|
||||
"ui/src/components/task-chat/TaskChatComposer.tsx",
|
||||
"ui/src/components/ui/button.tsx",
|
||||
"ui/src/lib/composer-draft.ts",
|
||||
"ui/storybook/.storybook/preview.tsx",
|
||||
"ui/storybook/stories/steering/composer-draft-recovery.stories.tsx",
|
||||
"ui/storybook/support/capability-gaps/api.ts"
|
||||
],
|
||||
"stableId": "feature-composer-draft-recovery",
|
||||
"sidebarTitle": "Tasks and conversations/Steering and queued messages/Draft recovery",
|
||||
"fingerprint": "1c242e44746a80add5d9d54ea46611fe58ec43aac42e9d8c61027495c7fa4279"
|
||||
},
|
||||
{
|
||||
"file": "ui/storybook/stories/inbox-search/personal-task-toasts.stories.tsx",
|
||||
"capabilities": [
|
||||
"inbox-search/toasts"
|
||||
],
|
||||
"purpose": "Tasks and conversations/Inbox, decisions, and search/Personal task notifications",
|
||||
"status": "current",
|
||||
"implementation": "production",
|
||||
"boundary": "fixtures",
|
||||
"notes": "LiveUpdatesProvider and ToastViewport consume fixture socket eligibility, suppress unrelated/visible-task events and deduplicate replay. Server eligibility metadata is simulated; no persisted multiplayer participation proof. The upstream Inbox recipe adds agent-created-task discovery checks; this LiveUpdatesProvider suite still tests toast eligibility only.",
|
||||
"reviewedAt": "2026-10-13",
|
||||
"sources": [
|
||||
"maps/feature-map/inbox-search.md",
|
||||
"ui/src/components/ToastViewport.tsx",
|
||||
"ui/src/components/ui/button.tsx",
|
||||
"ui/src/context/LiveUpdatesProvider.tsx",
|
||||
"ui/storybook/.storybook/preview.tsx",
|
||||
"ui/storybook/stories/inbox-search/personal-task-toasts.stories.tsx",
|
||||
"ui/storybook/support/capability-gaps/api.ts",
|
||||
"ui/storybook/support/capability-gaps/live-events.ts"
|
||||
],
|
||||
"stableId": "feature-personal-task-toasts",
|
||||
"sidebarTitle": "Tasks and conversations/Inbox, decisions, and search/Personal task notifications",
|
||||
"fingerprint": "956b02e1631234b0eaba5622e416edec931a8151a2f6c4f069cdefee3c51a428"
|
||||
},
|
||||
{
|
||||
"file": "ui/storybook/stories/agent-chat/conference-room.stories.tsx",
|
||||
"capabilities": [
|
||||
"agent-chat/conference-room"
|
||||
],
|
||||
"purpose": "Tasks and conversations/Agent conversations and project handoff/Conference Room",
|
||||
"status": "current",
|
||||
"implementation": "production",
|
||||
"boundary": "fixtures",
|
||||
"notes": "BoardChat empty, reply, send pending/error/403 through fixture SSE and persisted comment reads. 403 uses the shipped generic unavailable message; route gates and real Claude execution remain separate.",
|
||||
"reviewedAt": "2026-10-13",
|
||||
"sources": [
|
||||
"maps/feature-map/agent-chat.md",
|
||||
"ui/src/pages/BoardChat.tsx",
|
||||
"ui/storybook/.storybook/preview.tsx",
|
||||
"ui/storybook/fixtures/paperclipData.ts",
|
||||
"ui/storybook/stories/agent-chat/conference-room.stories.tsx",
|
||||
"ui/storybook/support/capability-gaps/api.ts"
|
||||
],
|
||||
"stableId": "feature-conference-room",
|
||||
"sidebarTitle": "Tasks and conversations/Agent conversations and project handoff/Conference Room",
|
||||
"fingerprint": "2c2431d14a8e6106a6ede10021ea387b7b5e8a9770710f423cbe95ba316dc4da"
|
||||
},
|
||||
{
|
||||
"file": "ui/storybook/stories/documents-artifacts/document-revisions.stories.tsx",
|
||||
"capabilities": [
|
||||
"documents-artifacts/documents"
|
||||
],
|
||||
"purpose": "Tasks and conversations/Documents, attachments, and work products/Document revisions",
|
||||
"status": "current",
|
||||
"implementation": "production",
|
||||
"boundary": "fixtures",
|
||||
"notes": "IssueDocumentsSection renders current/edit/historical preview and append-only restore with mutation error. Read/loading failures retain shipped fallback rendering; no persisted concurrency or authorization proof.",
|
||||
"reviewedAt": "2026-10-13",
|
||||
"sources": [
|
||||
"maps/feature-map/documents-artifacts.md",
|
||||
"ui/src/components/DocumentFrameHeader.tsx",
|
||||
"ui/src/components/IssueDocumentsSection.tsx",
|
||||
"ui/storybook/.storybook/preview.tsx",
|
||||
"ui/storybook/fixtures/paperclipData.ts",
|
||||
"ui/storybook/stories/documents-artifacts/document-revisions.stories.tsx",
|
||||
"ui/storybook/support/capability-gaps/api.ts"
|
||||
],
|
||||
"stableId": "feature-document-revisions",
|
||||
"sidebarTitle": "Tasks and conversations/Documents, attachments, and work products/Document revisions",
|
||||
"fingerprint": "a1d9e6b7f17a5d75ac2ff91a0ad96b9de9dadab4b2e0340ac7ae94d32809409b"
|
||||
},
|
||||
{
|
||||
"file": "ui/storybook/stories/navigation-preferences/sidebar-preferences.stories.tsx",
|
||||
"capabilities": [
|
||||
"navigation-preferences/preferences"
|
||||
],
|
||||
"purpose": "Oversight and operation/Navigation, profile, and announcements/Sidebar preferences",
|
||||
"status": "current",
|
||||
"implementation": "production",
|
||||
"boundary": "fixtures",
|
||||
"notes": "Production Sidebar inside PluginLauncherProvider with saved-order reads, pending/error/403 fallback and session-only section collapse. Favorites, recents and actual order persistence still need the recipe checks.",
|
||||
"reviewedAt": "2026-10-13",
|
||||
"sources": [
|
||||
"maps/feature-map/navigation-preferences.md",
|
||||
"ui/src/components/Sidebar.tsx",
|
||||
"ui/src/components/SidebarSection.tsx",
|
||||
"ui/src/plugins/launchers.tsx",
|
||||
"ui/storybook/.storybook/preview.tsx",
|
||||
"ui/storybook/stories/navigation-preferences/sidebar-preferences.stories.tsx",
|
||||
"ui/storybook/support/capability-gaps/api.ts"
|
||||
],
|
||||
"stableId": "feature-sidebar-preferences",
|
||||
"sidebarTitle": "Oversight and operation/Navigation, profile, and announcements/Sidebar preferences",
|
||||
"fingerprint": "5426596737a1f27105954d0e7fde6729f0b3a2e83ba7dec9e288286a359ab216"
|
||||
},
|
||||
{
|
||||
"file": "ui/storybook/stories/pipelines/pipeline-board.stories.tsx",
|
||||
"capabilities": [
|
||||
"pipelines/items"
|
||||
],
|
||||
"purpose": "Automation and structured work/Pipelines, review queues, and learnings/Items",
|
||||
"status": "current",
|
||||
"implementation": "production",
|
||||
"boundary": "fixtures",
|
||||
"notes": "Production Pipelines board with stages/items and loading/empty/error/403. Snapshot rows only; transitions, liveness, guards and automation execution remain separate.",
|
||||
"reviewedAt": "2026-10-13",
|
||||
"sources": [
|
||||
"maps/feature-map/pipelines.md",
|
||||
"ui/src/lib/router.tsx",
|
||||
"ui/src/pages/Pipelines.tsx",
|
||||
"ui/storybook/.storybook/preview.tsx",
|
||||
"ui/storybook/stories/pipelines/pipeline-board.stories.tsx",
|
||||
"ui/storybook/support/capability-gaps/api.ts",
|
||||
"ui/storybook/support/capability-gaps/pipelines.ts"
|
||||
],
|
||||
"stableId": "feature-pipeline-board",
|
||||
"sidebarTitle": "Automation and structured work/Pipelines, review queues, and learnings/Items",
|
||||
"fingerprint": "6259bfc636e56d936fa77164bd5acbc5967066721a37f75bc803f5a4db6b3be3"
|
||||
},
|
||||
{
|
||||
"file": "ui/storybook/stories/pipelines/stage-settings.stories.tsx",
|
||||
"capabilities": [
|
||||
"pipelines/stages"
|
||||
],
|
||||
"purpose": "Automation and structured work/Pipelines, review queues, and learnings/Stage settings",
|
||||
"status": "current",
|
||||
"implementation": "production",
|
||||
"boundary": "fixtures",
|
||||
"notes": "Production PipelineSettings stage editor with filled configuration, no stages, pending/error/403. This pass renders the shipped controls; saved stage/automation changes remain production obligations.",
|
||||
"reviewedAt": "2026-10-13",
|
||||
"sources": [
|
||||
"maps/feature-map/pipelines.md",
|
||||
"ui/src/lib/router.tsx",
|
||||
"ui/src/pages/PipelineSettings.tsx",
|
||||
"ui/storybook/.storybook/preview.tsx",
|
||||
"ui/storybook/stories/pipelines/stage-settings.stories.tsx",
|
||||
"ui/storybook/support/capability-gaps/api.ts",
|
||||
"ui/storybook/support/capability-gaps/pipelines.ts"
|
||||
],
|
||||
"stableId": "feature-pipeline-stages",
|
||||
"sidebarTitle": "Automation and structured work/Pipelines, review queues, and learnings/Stage settings",
|
||||
"fingerprint": "747e8cf58dd88118466de6b4ba8967f2f76ed31f7a8ee300f05265630367f0aa"
|
||||
},
|
||||
{
|
||||
"file": "ui/storybook/stories/pipelines/review-queue.stories.tsx",
|
||||
"capabilities": [
|
||||
"pipelines/review"
|
||||
],
|
||||
"purpose": "Automation and structured work/Pipelines, review queues, and learnings/Review queue",
|
||||
"status": "current",
|
||||
"implementation": "production",
|
||||
"boundary": "fixtures",
|
||||
"notes": "Production ReviewQueue with empty/loading/error/403, approval removal and failure recovery marked Needs attention. Fixture decisions do not prove real review leases, version checks or transitions.",
|
||||
"reviewedAt": "2026-10-13",
|
||||
"sources": [
|
||||
"maps/feature-map/pipelines.md",
|
||||
"ui/src/lib/router.tsx",
|
||||
"ui/src/pages/Pipelines.tsx",
|
||||
"ui/storybook/.storybook/preview.tsx",
|
||||
"ui/storybook/stories/pipelines/review-queue.stories.tsx",
|
||||
"ui/storybook/support/capability-gaps/api.ts",
|
||||
"ui/storybook/support/capability-gaps/pipelines.ts"
|
||||
],
|
||||
"stableId": "feature-pipeline-review",
|
||||
"sidebarTitle": "Automation and structured work/Pipelines, review queues, and learnings/Review queue",
|
||||
"fingerprint": "360dedf71d3540f1b67880ba49687a3b6a8962a11fdc8c3a2acd375c695a883c"
|
||||
},
|
||||
{
|
||||
"file": "ui/storybook/stories/pipelines/learnings.stories.tsx",
|
||||
"capabilities": [
|
||||
"pipelines/learnings"
|
||||
],
|
||||
"purpose": "Automation and structured work/Pipelines, review queues, and learnings/Learnings",
|
||||
"status": "current",
|
||||
"implementation": "production",
|
||||
"boundary": "fixtures",
|
||||
"notes": "Production Learnings feed renders a review_decided event plus loading/empty/error/403. Event provenance and durable audit records remain separate; this is not a new learning-record subsystem.",
|
||||
"reviewedAt": "2026-10-13",
|
||||
"sources": [
|
||||
"maps/feature-map/pipelines.md",
|
||||
"ui/src/lib/router.tsx",
|
||||
"ui/src/pages/Pipelines.tsx",
|
||||
"ui/storybook/.storybook/preview.tsx",
|
||||
"ui/storybook/stories/pipelines/learnings.stories.tsx",
|
||||
"ui/storybook/support/capability-gaps/api.ts",
|
||||
"ui/storybook/support/capability-gaps/pipelines.ts"
|
||||
],
|
||||
"stableId": "feature-pipeline-learnings",
|
||||
"sidebarTitle": "Automation and structured work/Pipelines, review queues, and learnings/Learnings",
|
||||
"fingerprint": "acc796cc3ca32601e40809ffb0b5e1406c1360785c988d74baca3172cad71b49"
|
||||
},
|
||||
{
|
||||
"file": "ui/storybook/stories/execution-environments/environment-states.stories.tsx",
|
||||
"capabilities": [
|
||||
"execution-environments/configuration",
|
||||
"execution-environments/capabilities",
|
||||
"execution-environments/probe"
|
||||
],
|
||||
"purpose": "Projects and execution/Execution environments/Configuration, capabilities, and probes",
|
||||
"status": "current",
|
||||
"implementation": "production",
|
||||
"boundary": "fixtures",
|
||||
"notes": "CompanyEnvironments configuration/edit, unsupported capabilities and probe pending/failure/success. No provider contacted. List read/loading failures expose shipped fallback behavior, not dedicated error UI.",
|
||||
"reviewedAt": "2026-10-13",
|
||||
"sources": [
|
||||
"maps/feature-map/execution-environments.md",
|
||||
"ui/src/components/ToastViewport.tsx",
|
||||
"ui/src/lib/router.tsx",
|
||||
"ui/src/pages/CompanyEnvironments.tsx",
|
||||
"ui/storybook/.storybook/preview.tsx",
|
||||
"ui/storybook/stories/execution-environments/environment-states.stories.tsx",
|
||||
"ui/storybook/support/capability-gaps/api.ts",
|
||||
"ui/storybook/support/capability-gaps/environments.ts"
|
||||
],
|
||||
"stableId": "feature-execution-environments",
|
||||
"sidebarTitle": "Projects and execution/Execution environments/Configuration, capabilities, and probes",
|
||||
"fingerprint": "9a14e48be15b72210745d53541505a92e331437b67369d42d6364e78938b5120"
|
||||
},
|
||||
{
|
||||
"file": "ui/storybook/stories/execution-environments/custom-images.stories.tsx",
|
||||
"capabilities": [
|
||||
"execution-environments/images"
|
||||
],
|
||||
"purpose": "Projects and execution/Execution environments/Custom images",
|
||||
"status": "current",
|
||||
"implementation": "production",
|
||||
"boundary": "fixtures",
|
||||
"notes": "CompanyEnvironments image metadata: unconfigured, captured, unsupported, failed, loading and 403. No live setup terminal, provider capture, rollback or relink is executed.",
|
||||
"reviewedAt": "2026-10-13",
|
||||
"sources": [
|
||||
"maps/feature-map/execution-environments.md",
|
||||
"ui/src/components/ToastViewport.tsx",
|
||||
"ui/src/lib/router.tsx",
|
||||
"ui/src/pages/CompanyEnvironments.tsx",
|
||||
"ui/storybook/.storybook/preview.tsx",
|
||||
"ui/storybook/stories/execution-environments/custom-images.stories.tsx",
|
||||
"ui/storybook/support/capability-gaps/api.ts",
|
||||
"ui/storybook/support/capability-gaps/environments.ts"
|
||||
],
|
||||
"stableId": "feature-environment-images",
|
||||
"sidebarTitle": "Projects and execution/Execution environments/Custom images",
|
||||
"fingerprint": "0877c994c37d7272b9a1330897cf56d366162dc17e7503c753415dd1077c9446"
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in new issue
Block a user