mirror of
https://github.com/paperclipai/paperclip.git
synced 2026-11-06 05:56:19 +01:00
Reconcile Claude platform packages with merged Codex defaults
Co-Authored-By: Paperclip <noreply@paperclip.ing> * codex/claude-runner-default: (85 commits) feat: default new Codex agents to Paperclip Runner on Linux and macOS (#15683) docs(skills): add slow-query diagnosis and fix skill (#16303) feat(sentry): add opt-in run failure reporting with saved run references (#16300) refactor(server): isolate provider message admission and runtime policies (#16289) refactor(server): isolate provider webhook lifecycle decisions (#16283) fix(workspaces): keep cleanup Git scans fresh and dedupe page reads (#16302) fix(sentry): keep provider-rejected Grok wakes out of run failure reports (#16297) fix(runner): report Runner disconnect age when a Dot bridge exits (#16296) refactor(server): isolate chat conversation and control policies (#16276) perf(recovery): use indexed execution identity lookups (#16291) perf(runs): bound history and reduce repeated context reads (#16286) fix(native-runtime): report which close barrier failed (#16298) feat(skills): select and validate tracked GitHub branches (#16288) fix(observability): sample native runs independently of triggers (#16285) fix(github): retry and recover review publication (#16284) perf(workspaces): wake terminal cleanup from committed changes (#16282) fix(mcp): deduplicate discovered tool descriptors (#16281) perf: remove history scans from task and chat queries (#16278) docs(skills): add maintenance bot setup workflow (#16279) fix(observability): time execution configuration steps (#16236) ... # Conflicts: # scripts/verify-grok-npm-install.mjs
This commit is contained in:
commit
b030683ca2
1176 files changed
+129461
-261897
No files matched your search
+25
-7
@@ -62,7 +62,7 @@ the agent path, even when a legacy agent can call the REST endpoint directly.
|
||||
## Companion file format
|
||||
|
||||
Each `agent-access-map/<area>.md` has an H1, a relative link to its product file,
|
||||
review date and source commit, followed by one H2 backticked ID per product
|
||||
followed by one H2 backticked ID per product
|
||||
sub-feature. Each capability contains these fields:
|
||||
|
||||
- **Review:** `baseline` or `operation-reviewed`.
|
||||
@@ -90,14 +90,15 @@ Review: `operation-reviewed`.
|
||||
### `create`
|
||||
|
||||
API: `present` — POST /api/companies/{companyId}/routines.
|
||||
Agent access: `partial` — agent REST and CLI routine create; default native
|
||||
mutation binding missing, and call_api blocks routine mutations.
|
||||
Agent access: `available` — agent REST, CLI routine create and native call_api
|
||||
under the enabled rollout and active-run/mode gates.
|
||||
Policy: same company; assigneeAgentId must be the calling agent; cite the
|
||||
routine authorization and native API policy sources.
|
||||
Evidence: `source-only` — reviewed commit and source links; no live proof.
|
||||
Verification: `not-run` — create an owned routine; reject assignment to another
|
||||
agent; inspect saved configuration, attribution and retry behavior.
|
||||
Gaps: default native create path; verify using the real permitted agent context.
|
||||
Gaps: verify ownership and responsible-user resolution with a permitted agent
|
||||
context; source presence alone does not qualify this operation.
|
||||
```
|
||||
|
||||
## Keeping the maps synchronized
|
||||
@@ -105,7 +106,7 @@ Gaps: default native create path; verify using the real permitted agent context.
|
||||
When a change adds/removes a capability or changes its behavior, API, permission,
|
||||
tool binding, CLI support, or work mode, update the affected companion and product
|
||||
recipe as appropriate in the same change. Preserve IDs across renames where the
|
||||
capability is unchanged; update both indexes and cross-links together. An API-only
|
||||
capability is unchanged; update the affected cross-links together. Indexes discover recipes automatically. An API-only
|
||||
change may update the companion without rewriting unchanged user instructions.
|
||||
|
||||
[maintain-verification-skill](../.agents/skills/maintain-verification-skill/SKILL.md)
|
||||
@@ -121,7 +122,7 @@ Run the structural check after map changes:
|
||||
node scripts/check-maps.mjs
|
||||
```
|
||||
|
||||
It checks paired areas/IDs, indexes, required fields, and local references. It
|
||||
It checks paired areas/IDs, navigation metadata, required fields, and local references. It
|
||||
does not certify endpoint authorization, production bindings, operation
|
||||
completeness, or live behavior. Source audits must check those against the
|
||||
existing API and tool contracts; avoid a second schema catalog or runtime.
|
||||
@@ -132,4 +133,21 @@ allowed result and relevant denial (another company/private resource, wrong
|
||||
owner, missing grant, invalid run, restricted mode or resolver). Mutations also
|
||||
need persisted state/attribution and retry behavior. Capture evidence using the
|
||||
[existing artifact workflow](../doc/AGENT-ARTIFACTS.md); keep executed run results
|
||||
separate from product-map `coverage.json`, which records documentation scope.
|
||||
separate from generated `maps/generated/coverage.json`, which lists page references.
|
||||
|
||||
## Local authorship and generated indexes
|
||||
|
||||
Change only the recipes, access contracts and stories whose behavior or intent
|
||||
changed. Feature recipes own navigation metadata; stories own small
|
||||
`parameters.paperclip` annotations. Do not register entries or refresh counts in
|
||||
shared READMEs, inventories, fingerprints or review journals.
|
||||
|
||||
`node scripts/storybook-catalog.mjs` validates and generates aggregate navigation,
|
||||
Storybook data, verification routes and the page inventory. All outputs live in
|
||||
ignored `maps/generated/`, `ui/storybook/generated/`, and the ignored Storybook
|
||||
`preview.tsx` wrapper. Start/build and UI typechecking generate their own inputs.
|
||||
A clean merged checkout therefore assembles both branches' changes automatically.
|
||||
|
||||
Git provides history and diffs. PRs, issues and CI artifacts retain review/run
|
||||
evidence for the named revision. Capability associations do not create whole-file
|
||||
review dependencies. Keep durable scenario limits in the affected recipe or story.
|
||||
@@ -4,51 +4,17 @@ This map accompanies the [feature map](../feature-map/README.md). It records API
|
||||
agent entry points, permission boundaries and verification for the same capability IDs.
|
||||
The [shared contract](../README.md) defines the format and maintenance rules.
|
||||
|
||||
Initial inventory: **35 areas and 171 sub-features**, source-reviewed on 2026-10-12
|
||||
at `f981fa3cc10cb8663a87dec60345fbff46d54d0a`. All entries are `baseline` and `source-only`; none
|
||||
claims complete operation enumeration or freshly verified agent access. Existing
|
||||
API paths, native gaps, actor restrictions and local/operator exceptions are
|
||||
recorded separately. These statuses do not represent a live pass rate.
|
||||
## Browse access contracts
|
||||
|
||||
## Areas
|
||||
The same-named feature recipes define navigation and capability IDs. Run
|
||||
`node scripts/storybook-catalog.mjs` for the generated
|
||||
`maps/generated/agent-access-map.md` index, or browse the
|
||||
[published feature guide](https://d1p6rlowie26tp.cloudfront.net/storybook/branches/master/?path=/story/overview-storybook-guide--coverage-guide).
|
||||
Add or update the affected companion; there is no central registration or count.
|
||||
|
||||
| Area | Product map | Capabilities |
|
||||
| --- | --- | --- |
|
||||
| [Login, invitations, and access](access.md) | [access](../feature-map/access.md) | 5 |
|
||||
| [Dashboards, activity, and audit trails](activity.md) | [activity](../feature-map/activity.md) | 5 |
|
||||
| [Agent conversations and project handoff](agent-chat.md) | [agent-chat](../feature-map/agent-chat.md) | 4 |
|
||||
| [Hiring, agent configuration, and organization](agents.md) | [agents](../feature-map/agents.md) | 5 |
|
||||
| [App access, action permissions, and testing](app-permissions.md) | [app-permissions](../feature-map/app-permissions.md) | 5 |
|
||||
| [Costs, budgets, and spending controls](budgets-costs.md) | [budgets-costs](../feature-map/budgets-costs.md) | 4 |
|
||||
| [Cases and structured work records](cases.md) | [cases](../feature-map/cases.md) | 4 |
|
||||
| [External chat and email conversations](chat-channels.md) | [chat-channels](../feature-map/chat-channels.md) | 5 |
|
||||
| [CLI, API clients, and local worktrees](cli-operations.md) | [cli-operations](../feature-map/cli-operations.md) | 5 |
|
||||
| [Companies and portability](companies.md) | [companies](../feature-map/companies.md) | 4 |
|
||||
| [Connection setup](connection-setup.md) | [connection-setup](../feature-map/connection-setup.md) | 8 |
|
||||
| [Developer previews and diagnostic labs](developer-labs.md) | [developer-labs](../feature-map/developer-labs.md) | 4 |
|
||||
| [Documents, attachments, and work products](documents-artifacts.md) | [documents-artifacts](../feature-map/documents-artifacts.md) | 5 |
|
||||
| [Local, SSH, and sandbox environments](execution-environments.md) | [execution-environments](../feature-map/execution-environments.md) | 5 |
|
||||
| [Tool gateways and access profiles](gateways-profiles.md) | [gateways-profiles](../feature-map/gateways-profiles.md) | 5 |
|
||||
| [Goals and work alignment](goals.md) | [goals](../feature-map/goals.md) | 3 |
|
||||
| [Inbox, decisions, and search](inbox-search.md) | [inbox-search](../feature-map/inbox-search.md) | 4 |
|
||||
| [Installation, configuration, updates, and backups](instance-operations.md) | [instance-operations](../feature-map/instance-operations.md) | 5 |
|
||||
| [Navigation, profile, and announcements](navigation-preferences.md) | [navigation-preferences](../feature-map/navigation-preferences.md) | 5 |
|
||||
| [Onboarding and first work](onboarding.md) | [onboarding](../feature-map/onboarding.md) | 5 |
|
||||
| [Pipelines, review queues, and learnings](pipelines.md) | [pipelines](../feature-map/pipelines.md) | 4 |
|
||||
| [Plugins and contributed product surfaces](plugins.md) | [plugins](../feature-map/plugins.md) | 4 |
|
||||
| [Projects and repositories](projects.md) | [projects](../feature-map/projects.md) | 4 |
|
||||
| [Questions and approvals](questions-and-approvals.md) | [questions-and-approvals](../feature-map/questions-and-approvals.md) | 8 |
|
||||
| [Recovery](recovery.md) | [recovery](../feature-map/recovery.md) | 8 |
|
||||
| [Routines, schedules, and triggers](routines.md) | [routines](../feature-map/routines.md) | 5 |
|
||||
| [Runs, harnesses, and model accounts](runs-adapters.md) | [runs-adapters](../feature-map/runs-adapters.md) | 4 |
|
||||
| [Secrets, personal credentials, and proposals](secrets.md) | [secrets](../feature-map/secrets.md) | 5 |
|
||||
| [Skill discovery, authoring, and policy](skills.md) | [skills](../feature-map/skills.md) | 5 |
|
||||
| [Status cards and refreshed summaries](status-cards.md) | [status-cards](../feature-map/status-cards.md) | 4 |
|
||||
| [Steering and queued messages](steering.md) | [steering](../feature-map/steering.md) | 7 |
|
||||
| [Delegation, dependencies, and signoff](task-coordination.md) | [task-coordination](../feature-map/task-coordination.md) | 4 |
|
||||
| [Task creation and lifecycle](tasks.md) | [tasks](../feature-map/tasks.md) | 5 |
|
||||
| [Team packages and catalog installation](teams.md) | [teams](../feature-map/teams.md) | 4 |
|
||||
| [Execution workspaces, services, and files](workspaces.md) | [workspaces](../feature-map/workspaces.md) | 5 |
|
||||
Existing baseline source references describe the original inspection, not current
|
||||
verification. Record new executed evidence in the PR, issue, or CI artifact with
|
||||
its revision and scope. Do not refresh unrelated headers as bookkeeping.
|
||||
|
||||
## Using an entry
|
||||
|
||||
@@ -67,3 +33,43 @@ Use `verify-paperclip` and existing API/runner/MCP fixtures to collect the
|
||||
permitted-agent and denial evidence; report blocked/not-run coverage honestly.
|
||||
Run `node scripts/check-maps.mjs` after editing. The structural check does not
|
||||
certify permissions, API catalog coverage, tool admission or live behavior.
|
||||
|
||||
## Native REST transport
|
||||
|
||||
The `call_api` parity change reconciles affected baselines against
|
||||
`58e16dbddfc9c8d0cf60867f9d9847f0feda055b` and the changes in this PR. Ordinary
|
||||
REST operations use the same route authorization as legacy agent REST. Dedicated
|
||||
tools remain optional for those operations; protocol endpoints still need their
|
||||
existing clients. Board-only routes remain restricted for agent identity.
|
||||
|
||||
Native `search_api` / `call_api` requires operator rollout admission, a running
|
||||
authorized native run, current task assignment and execution-run binding, company
|
||||
and budget authority, task privacy, and a permitted work mode. Ask and Plan retain
|
||||
mutation restrictions, and runs retain their admitted JWT scope during restart
|
||||
recovery even when task mode changes. A waiting
|
||||
agent does not gain independent native control just because a REST route exists.
|
||||
|
||||
Credential-bearing replies, including company exports and their legacy alias,
|
||||
stay inline under a 10 MiB limit and use encrypted mutation receipts. Other saved
|
||||
API snapshots are limited to the issuing actor and responsible user, plus authorized
|
||||
administrators. Artifact uploads enforce the same access checks as downloads;
|
||||
private snapshots are excluded from company exports and public company logos.
|
||||
Explicit deliverables use the existing sharing path. Native event history,
|
||||
checkpoints and completion records omit API bodies while preserving receipt
|
||||
metadata and replay digests. Restored webhook secrets use the same encrypted
|
||||
receipt and inline response policy as newly created webhook secrets.
|
||||
Task image access requires the company boundary and the task permission;
|
||||
skill-test and low-trust agents do not need company-wide browsing authority.
|
||||
Completion replay applies the same idempotent projection to stored and expected
|
||||
payloads; [the run-log guide](../../doc/run-log-events.md) describes its fields.
|
||||
|
||||
Sources: [API client](../../server/src/services/native-runtime/runner-api-client.ts),
|
||||
[catalog](../../server/src/services/native-runtime/runner-api-catalog.ts),
|
||||
[native authority](../../server/src/services/native-runtime/paperclip-runner-tool-authority.ts),
|
||||
[credential storage classification](../../server/src/services/native-runtime/runner-api-sensitive-response.ts),
|
||||
[snapshot access](../../server/src/services/asset-content-access.ts),
|
||||
and [history redaction](../../server/src/services/native-runtime/runner-api-log-redaction.ts). The affected entries remain
|
||||
`baseline` and `source-only`; this reconciliation does not certify every operation.
|
||||
Targeted real-route proof lives in the
|
||||
[API integration suite](../../server/src/services/native-runtime/runner-api.integration.test.ts),
|
||||
including owned routines, skill tests, scoped secrets, proposals and private export replay.
|
||||
@@ -2,7 +2,9 @@
|
||||
|
||||
Product map: [Login, invitations, and access](../feature-map/access.md).
|
||||
|
||||
Review date: 2026-10-12. Source commit: `f981fa3cc10cb8663a87dec60345fbff46d54d0a`.
|
||||
Review date: 2026-10-12. Source commit: `58e16dbddfc9c8d0cf60867f9d9847f0feda055b`.
|
||||
Native REST transport reconciled in this change; see the
|
||||
[shared transport contract](README.md#native-rest-transport).
|
||||
|
||||
This is a source-reviewed baseline of representative operations and known gaps.
|
||||
Each capability needs operation-level review before its entire scope can be
|
||||
@@ -43,8 +45,8 @@ API: `present` — representative operation IDs:
|
||||
- `POST /api/companies/{companyId}/invites`.
|
||||
- `POST /api/invites/{token}/accept`.
|
||||
|
||||
Agent access: `partial` — REST with invite permission; CLI access; native call_api
|
||||
blocks invite credentials.
|
||||
Agent access: `partial` — REST / native `call_api` invite creation with the invite
|
||||
permission; CLI access. Human acceptance and agent onboarding have distinct policies.
|
||||
|
||||
Policy: Company access plus action-specific grants; instance administration requires a
|
||||
board administrator.
|
||||
|
||||
@@ -90,6 +90,9 @@ Assert the relevant denied actor, owner, company or mode from Policy. Review the
|
||||
remaining operations before qualifying the whole capability.
|
||||
|
||||
Gaps: Telemetry/run visibility is checked independently from seeing the source task.
|
||||
Company heartbeat history defaults to 200 rows and caps explicit limits at 1,000
|
||||
in both the route and service. The response remains an array. Scope, visibility,
|
||||
and secret redaction checks apply to the bounded result set.
|
||||
|
||||
## `routine-audit`
|
||||
|
||||
|
||||
@@ -2,7 +2,9 @@
|
||||
|
||||
Product map: [Hiring, agent configuration, and organization](../feature-map/agents.md).
|
||||
|
||||
Review date: 2026-10-12. Source commit: `f981fa3cc10cb8663a87dec60345fbff46d54d0a`.
|
||||
Review date: 2026-10-12. Source commit: `58e16dbddfc9c8d0cf60867f9d9847f0feda055b`.
|
||||
Native REST transport reconciled in this change; see the
|
||||
[shared transport contract](README.md#native-rest-transport).
|
||||
|
||||
This is a source-reviewed baseline of representative operations and known gaps.
|
||||
Each capability needs operation-level review before its entire scope can be
|
||||
@@ -139,8 +141,8 @@ API: `present` — representative operation IDs:
|
||||
- `POST /api/agents/{id}/resume`.
|
||||
- `POST /api/agents/{id}/terminate`.
|
||||
|
||||
Agent access: `partial` — REST resume under change grant; pause/terminate require board;
|
||||
native call_api blocks all three.
|
||||
Agent access: `partial` — REST / native `call_api` resume under agent_config:update
|
||||
change-grant authorization; pause and termination remain board-only.
|
||||
|
||||
Policy: Agent creation/configuration uses action grants, resource policies and change
|
||||
consent; some controls require a board actor.
|
||||
@@ -153,8 +155,8 @@ credentials/run context; inspect its result and applicable persistence/attributi
|
||||
Assert the relevant denied actor, owner, company or mode from Policy. Review the
|
||||
remaining operations before qualifying the whole capability.
|
||||
|
||||
Gaps: Resume is agent-eligible but lacks a default native binding. Pause and termination
|
||||
are actor-boundary decisions.
|
||||
Gaps: Resume has a generic native REST path. Pause and termination remain
|
||||
enforced actor restrictions.
|
||||
|
||||
## `built-in`
|
||||
|
||||
@@ -187,3 +189,52 @@ provisioning resolves the runner, while unrelated reconciliation and same-harnes
|
||||
edits retain existing execution. Verify explicit runner changes preserve compatible
|
||||
saved settings; the general creation/access policy above still applies. This is
|
||||
source-only evidence at the scoped commit, not a live provisioning result.
|
||||
|
||||
## `primary-agent`
|
||||
|
||||
Review: `baseline`.
|
||||
|
||||
API: `present` — GET and PUT /api/companies/{companyId}/primary-agent/me.
|
||||
|
||||
Agent access: `restricted` — this is the authenticated human's personal
|
||||
preference. Agent keys and native call_api use agent identity and are denied by
|
||||
the board gate; no dedicated agent selection tool is present.
|
||||
|
||||
Policy: Requires board user identity, company access and active membership,
|
||||
except implicit-local board or instance administrator. Viewers may choose their
|
||||
own primary. Selection requires a same-company readable, available agent and
|
||||
is scoped to actor user ID; the request cannot select another user's preference.
|
||||
Explicit null selection is rejected; leave/termination can clear an unavailable
|
||||
choice. Initialization stays recorded so clearing does not silently replace it.
|
||||
|
||||
Evidence: `source-only` — reviewed on 2026-10-13 at
|
||||
`60bc0d5fee9a6e48db08fc016521fee3d9f57d67`:
|
||||
[routes](../../server/src/routes/primary-agent.ts),
|
||||
[service](../../server/src/services/primary-agent.ts),
|
||||
[provider](../../ui/src/context/PrimaryAgentProvider.tsx), and
|
||||
[route tests](../../server/src/__tests__/primary-agent.test.ts).
|
||||
|
||||
Verification: `not-run` — select and read the preference as two company users;
|
||||
assert isolation, wrong-company/unreadable targets, pending/terminated agent
|
||||
rejection and agent-key denial. Verify replacement confirmation and fallback
|
||||
precedence in the UI; inspect the cleared state after permitted leave/termination.
|
||||
|
||||
Gaps: No agent mutation path for another person's preference. Live human/agent
|
||||
access is unverified; UI fixture callbacks do not establish persistence or task
|
||||
and Chat default resolution.
|
||||
|
||||
## `grok-bot`
|
||||
|
||||
Review: `baseline`.
|
||||
|
||||
API: `present` — `POST /api/companies/{companyId}/grok-invitations`, operator-owned Grok invitations and agent-scoped `/grok-binding` setup, routine, verify, stop, recover and disconnect endpoints. Direct HTTPS `/mcp/runner` uses fixed named-agent OAuth. Grok tools expose durable assignment operations and task-bound upload/download grants.
|
||||
|
||||
Agent access: `available` — `paperclip_grok_*` through the dedicated agent grant. First-party Paperclip operations execute through the shared Rust Runner. The Bot retains its own apps; Paperclip workspace and third-party app tools are unavailable.
|
||||
|
||||
Policy: company/agent/client/resource/authorizer binding; current manage-agent permission for consent and subsequent calls; normal task ownership, controller lease, governance, pause, revocation and recorded budget checks. Execution and file transfers require current task-bound sessions. Secret credentials remain in encrypted secret storage and are redacted from HTTP logs.
|
||||
|
||||
Evidence: `source-only` — [routes](../../server/src/routes/grok-bot.ts), [shared authority](../../server/src/services/external-bot-authority.ts), [routine receipts](../../server/src/services/grok-bot/routine.ts) and [Runner broker](../../server/src/services/dot-runner-broker.ts). Temporary actual-client OAuth and an outbound routine wake are qualified separately; they do not prove this candidate’s acceptance.
|
||||
|
||||
Verification: `not-run` — deployed acceptance pending; focused protocol/authorization and actual Rust backend tests; run fresh/saved setup, assigned and proactive tasks, duplicate calls, stale sessions, restart, ambiguous delivery, stop and recovery through the real client on the serving managed candidate.
|
||||
|
||||
Gaps: deployed two-way work and unattended first-time onboarding remain unqualified; remote termination, provider transcript streaming and usage accounting are unavailable.
|
||||
@@ -2,7 +2,9 @@
|
||||
|
||||
Product map: [External chat and email conversations](../feature-map/chat-channels.md).
|
||||
|
||||
Review date: 2026-10-12. Source commit: `f981fa3cc10cb8663a87dec60345fbff46d54d0a`.
|
||||
Review date: 2026-10-12. Source commit: `58e16dbddfc9c8d0cf60867f9d9847f0feda055b`.
|
||||
Native REST transport reconciled in this change; see the
|
||||
[shared transport contract](README.md#native-rest-transport).
|
||||
|
||||
This is a source-reviewed baseline of representative operations and known gaps.
|
||||
Each capability needs operation-level review before its entire scope can be
|
||||
@@ -33,6 +35,10 @@ own policy and access review.
|
||||
Gaps: Provider installation and account enrollment are not available to an ordinary
|
||||
agent actor.
|
||||
|
||||
Speko UI reconciliation (2026-10-13): experimental voice setup uses the same
|
||||
board-managed endpoint boundary. Source review follows the merged voice runtime
|
||||
and the UI integration; live provider qualification is still separate.
|
||||
|
||||
## `identity`
|
||||
|
||||
Review: `baseline`.
|
||||
@@ -53,8 +59,8 @@ Verification: `not-run` — assert the documented agent denial with an owned tes
|
||||
verify any listed agent request/result path separately. A delegated operation needs its
|
||||
own policy and access review.
|
||||
|
||||
Gaps: No impersonation path; native call_api additionally blocks identity-link
|
||||
operations.
|
||||
Gaps: Identity linking requires a signed-in board user, rollout admission and
|
||||
provider checks at the HTTP route. Native `call_api` preserves these permissions.
|
||||
|
||||
## `conversation`
|
||||
|
||||
@@ -81,6 +87,34 @@ remaining operations before qualifying the whole capability.
|
||||
Gaps: Normal agent replies work through server delivery. Explicit endpoint publication
|
||||
APIs are board management paths.
|
||||
|
||||
GitHub publication recovery (2026-10-14): assigned-agent `submit_review`, `comment`,
|
||||
and `update_comment` calls reuse their run-, task-, endpoint-, and argument-bound
|
||||
publication on an exact retry. Fresh gateway policy and provider authority remain
|
||||
required. The durable worker resumes transient failures after restart and stops
|
||||
at its retry cap, revoked authority, or a superseded head. A pending receipt is
|
||||
not task completion. Source:
|
||||
[publication service](../../server/src/services/chat-github-reviews.ts) and
|
||||
[gateway](../../server/src/services/tool-gateway.ts). Verification uses
|
||||
PostgreSQL-backed provider fixtures; this entry does not claim live provider
|
||||
qualification for the new retry path.
|
||||
|
||||
Speko browser sessions use `POST /api/companies/{companyId}/voice-sessions`,
|
||||
with GET inspection/notification and POST `/{sessionId}/end` operations below
|
||||
that collection. These routes require board identity; ordinary agent credentials
|
||||
cannot start a private voice session. Start and notification also require the
|
||||
experimental chat-connectors gate. Signed provider callbacks use the separate
|
||||
voice-webhook routes and their session capability. Evidence: `source-only` —
|
||||
[voice routes](../../server/src/routes/voice-sessions.ts). No live browser answer
|
||||
retrieval or telephone playback is established by the UI fixtures.
|
||||
|
||||
Slack's **Require at-mention** policy applies to channel messages and channel
|
||||
thread replies, including queued work. DMs are exempt from mention checks;
|
||||
endpoint availability, **Allow direct messages**, and sender authorization still
|
||||
apply. Top-level DM replies retain their linear conversation destination. Source:
|
||||
[admission](../../server/src/services/chat-channels.ts) and
|
||||
[queued run policy](../../server/src/services/durable-chat-wakeup.ts). Live Slack
|
||||
verification of this exemption remains separate from provider-fixture coverage.
|
||||
|
||||
New conversations resolve typed project/workspace defaults from their endpoint
|
||||
and destination under the task-creation transaction. Defaults do not authorize
|
||||
private sources: admission checks the linked user's authority and assigned agent.
|
||||
@@ -142,3 +176,12 @@ to reply.
|
||||
Endpoint/destination execution defaults use the same board-only management
|
||||
boundary. Agents select an authorized workspace for their current task through
|
||||
the [workspace APIs](workspaces.md), rather than editing channel configuration.
|
||||
|
||||
Speko callback preferences, incoming phone configuration/approval, and call
|
||||
history use the company-scoped `voice-callbacks`, `voice-phone`, and
|
||||
`voice-history` routes. Their UI controls do not grant agents board authority.
|
||||
See [voice routes](../../server/src/routes/voice-sessions.ts); service-level
|
||||
caller/session permissions and real provider delivery need separate verification.
|
||||
|
||||
GitHub review summary headings use the bot display name. Checks remain
|
||||
independently scoped by GitHub App and endpoint/PR/commit identity.
|
||||
@@ -2,7 +2,9 @@
|
||||
|
||||
Product map: [Companies and portability](../feature-map/companies.md).
|
||||
|
||||
Review date: 2026-10-12. Source commit: `f981fa3cc10cb8663a87dec60345fbff46d54d0a`.
|
||||
Review date: 2026-10-12. Source commit: `58e16dbddfc9c8d0cf60867f9d9847f0feda055b`.
|
||||
Native REST transport reconciled in this change; see the
|
||||
[shared transport contract](README.md#native-rest-transport).
|
||||
|
||||
This is a source-reviewed baseline of representative operations and known gaps.
|
||||
Each capability needs operation-level review before its entire scope can be
|
||||
@@ -97,8 +99,8 @@ API: `present` — representative operation IDs:
|
||||
- `POST /api/companies/{companyId}/imports/preview`.
|
||||
- `POST /api/companies/{companyId}/imports/apply`.
|
||||
|
||||
Agent access: `partial` — CEO REST / CLI company; native export restricted, eligible
|
||||
same-company import uses fallback.
|
||||
Agent access: `partial` — Same-company CEO REST / native `call_api` / CLI exports
|
||||
and eligible same-company imports.
|
||||
|
||||
Policy: Same-company CEO or board for identity/import operations; list/create/archive
|
||||
convenience endpoint is board-gated.
|
||||
@@ -111,5 +113,73 @@ credentials/run context; inspect its result and applicable persistence/attributi
|
||||
Assert the relevant denied actor, owner, company or mode from Policy. Review the
|
||||
remaining operations before qualifying the whole capability.
|
||||
|
||||
Gaps: Secure exports lack a default native binding; new-company/ZIP import flows have
|
||||
different board and transport constraints.
|
||||
Gaps: Exports use inline credential delivery and encrypted mutation receipts.
|
||||
New-company/ZIP import flows retain their board and transport constraints.
|
||||
|
||||
## `decision-models`
|
||||
|
||||
Review: `baseline`.
|
||||
|
||||
API: `present` — GET and PUT /api/companies/{companyId}/decision-model;
|
||||
POST /api/companies/{companyId}/decision-model/test;
|
||||
GET /api/companies/{companyId}/decision-model/availability;
|
||||
GET /api/companies/{companyId}/decision-model/history.
|
||||
|
||||
Agent access: `partial` — same-company REST and admitted native call_api
|
||||
availability/history reads where policy allows. Settings and the fixed Test
|
||||
action require board identity. Native rollout/run gates follow the shared
|
||||
[transport contract](README.md#native-rest-transport).
|
||||
|
||||
Policy: Settings access requires board and company access; non-managers receive
|
||||
no settings or choices. Configuration and tests additionally require connection
|
||||
management authority (owner/admin, instance admin, or tools:manage_connections).
|
||||
History requires company_scope:read and redacts task/run links without issue:read.
|
||||
Background sponsorship and budget admission remain separate service checks.
|
||||
|
||||
Evidence: `source-only` — reviewed on 2026-10-13 at
|
||||
`60bc0d5fee9a6e48db08fc016521fee3d9f57d67`:
|
||||
[routes](../../server/src/routes/decision-models.ts),
|
||||
[service](../../server/src/services/decision-models.ts), and
|
||||
[connection authority](../../server/src/routes/ai-connections.ts).
|
||||
|
||||
Verification: `not-run` — read history with an allowed company actor and an actor
|
||||
without task access; check link redaction. Reject agent configuration/tests and
|
||||
board mutations without connection-management permission. Verify settings and
|
||||
bounded test receipts with an owned simulated provider.
|
||||
|
||||
Gaps: No agent settings/test path; permitted history does not delegate management.
|
||||
Live native and agent-credential reads remain unverified.
|
||||
|
||||
## `fast-responses`
|
||||
|
||||
Review: `baseline`.
|
||||
|
||||
API: `present` — GET and PUT /api/companies/{companyId}/fast-response;
|
||||
GET /api/companies/{companyId}/fast-response/models;
|
||||
GET /api/companies/{companyId}/fast-response/availability;
|
||||
POST /api/companies/{companyId}/fast-response/test;
|
||||
GET /api/companies/{companyId}/fast-response/history.
|
||||
|
||||
Agent access: `partial` — same-company REST and admitted native call_api history
|
||||
reads where policy allows, subject to the shared
|
||||
[transport contract](README.md#native-rest-transport).
|
||||
Settings, model selection, availability and test controls require board identity.
|
||||
|
||||
Policy: Board and company access gate configuration surfaces. Updates, models
|
||||
and tests additionally require connection-management authority. History requires
|
||||
company_scope:read; task/run links require issue:read. The experiment, provider
|
||||
account, sponsorship and budget controls still gate actual acknowledgements.
|
||||
|
||||
Evidence: `source-only` — reviewed on 2026-10-13 at
|
||||
`60bc0d5fee9a6e48db08fc016521fee3d9f57d67`:
|
||||
[routes](../../server/src/routes/fast-responses.ts),
|
||||
[service](../../server/src/services/fast-responses.ts), and
|
||||
[connection authority](../../server/src/routes/ai-connections.ts).
|
||||
|
||||
Verification: `not-run` — inspect history and redacted task links as an allowed
|
||||
company actor. Reject agent settings/models/availability/tests and unauthorized
|
||||
board mutations. Use a simulated provider to inspect a saved configuration,
|
||||
success receipt, timeout and recorded usage.
|
||||
|
||||
Gaps: No agent configuration/test path. An acknowledgement is not completed task
|
||||
work. Live native, provider and agent access remain unverified.
|
||||
@@ -181,6 +181,14 @@ own policy and access review.
|
||||
|
||||
Gaps: Provider endpoint, represented agent and linked sender are operator choices today.
|
||||
|
||||
Internal recovery: Telegram discovery walks bounded pages at startup. Configuration
|
||||
commits only queue the changed connection; durable maintenance rows supply retry deadlines. Inactive subscription
|
||||
repair is parked until an endpoint or connection change. This creates no agent
|
||||
management permission or new API. Local database-backed provider-fixture tests in
|
||||
[channel integration](../../server/src/__tests__/chat-channels.integration.test.ts)
|
||||
cover recovery, rollback, retries and idle query silence; they do not establish
|
||||
live provider or agent access.
|
||||
|
||||
## `failure`
|
||||
|
||||
Review: `baseline`.
|
||||
|
||||
@@ -2,7 +2,9 @@
|
||||
|
||||
Product map: [Tool gateways and access profiles](../feature-map/gateways-profiles.md).
|
||||
|
||||
Review date: 2026-10-12. Source commit: `f981fa3cc10cb8663a87dec60345fbff46d54d0a`.
|
||||
Review date: 2026-10-12. Source commit: `58e16dbddfc9c8d0cf60867f9d9847f0feda055b`.
|
||||
Native REST transport reconciled in this change; see the
|
||||
[shared transport contract](README.md#native-rest-transport).
|
||||
|
||||
This is a source-reviewed baseline of representative operations and known gaps.
|
||||
Each capability needs operation-level review before its entire scope can be
|
||||
@@ -65,8 +67,8 @@ API: `present` — representative operation IDs:
|
||||
- `GET /api/tool-gateway/gateways/{gatewayId}/mcp`.
|
||||
- `POST /api/tool-gateway/sessions`.
|
||||
|
||||
Agent access: `partial` — Existing scoped MCP client/session flow; assigned native app
|
||||
tools.
|
||||
Agent access: `partial` — Agent REST / native `call_api` for scoped session creation
|
||||
and revocation; existing MCP client protocol and assigned native app tools.
|
||||
|
||||
Policy: Named gateway/profile administration and credentials are board tools:admin;
|
||||
agent sessions/tool use use separate scoped authority.
|
||||
@@ -79,8 +81,16 @@ credentials/run context; inspect its result and applicable persistence/attributi
|
||||
Assert the relevant denied actor, owner, company or mode from Policy. Review the
|
||||
remaining operations before qualifying the whole capability.
|
||||
|
||||
Gaps: Agent tool consumption exists. Copying/managing the endpoint and its client
|
||||
credentials remain management operations.
|
||||
Gaps: Scoped sessions remain agent/run-bound. MCP requires its existing protocol
|
||||
client; named gateways and gateway-token management retain board permissions.
|
||||
|
||||
Discovery collapses identical descriptors with the same gateway name across
|
||||
providers, including native assigned-tool startup and fresh searches. Conflicting
|
||||
definitions remain an error. Distinct names and the normal invocation grants,
|
||||
approvals and revocation checks remain independent. Regression coverage lives in
|
||||
[gateway tests](../../server/src/__tests__/tool-gateway.test.ts) and
|
||||
[assigned-tool tests](../../server/src/services/native-runtime/assigned-mcp-tools.test.ts);
|
||||
these fixtures do not certify a live external-client journey.
|
||||
|
||||
## `tokens`
|
||||
|
||||
@@ -103,8 +113,9 @@ Verification: `not-run` — assert the documented agent denial with an owned tes
|
||||
verify any listed agent request/result path separately. A delegated operation needs its
|
||||
own policy and access review.
|
||||
|
||||
Gaps: Native call_api blocks credential management; a grant to use an app does not
|
||||
create gateway-token authority.
|
||||
Gaps: Gateway-token management requires board tools:admin at the HTTP route.
|
||||
A grant to use an app does not create this authority; native `call_api` preserves
|
||||
the denial.
|
||||
|
||||
## `activity`
|
||||
|
||||
|
||||
@@ -11,6 +11,14 @@ for format, permission checks, evidence and maintenance.
|
||||
|
||||
## `views`
|
||||
|
||||
The issue-list API accepts optional `includeAgentCreatedTasks`; false restricts
|
||||
independent results to human creation before search/pagination. Omission retains
|
||||
existing agent/API behavior. `includeParticipatedTasks=true` requires a board user
|
||||
and retains only that authenticated user's existing participation as a creation
|
||||
visibility exception. Company/private-task access checks still apply. Collection
|
||||
preferences and hierarchy presentation are browser state, not additional authority.
|
||||
Source-reviewed behavior; live agent access verification remains separate.
|
||||
|
||||
Review: `baseline`.
|
||||
|
||||
API: `present` — representative operation IDs:
|
||||
@@ -119,3 +127,29 @@ remaining operations before qualifying the whole capability.
|
||||
|
||||
Gaps: General company search and dedicated task search are different result sets; use
|
||||
the appropriate one.
|
||||
|
||||
|
||||
## `toasts`
|
||||
|
||||
Review: `baseline`.
|
||||
|
||||
API: `present` — GET /api/companies/{companyId}/events/ws (WebSocket upgrade); viewer-specific
|
||||
`toastEligible` metadata on authorized events. No notification mutation endpoint.
|
||||
|
||||
Agent access: `not-applicable` — toast presentation is a human browser concern.
|
||||
Agent-authenticated event subscriptions retain authorization but do not qualify
|
||||
for human toasts. Agent task mutations may notify participating humans.
|
||||
|
||||
Policy: Company membership and task/run read checks precede human participation
|
||||
checks. Creator, current human assignee, commenter, deliberate actor, or explicit
|
||||
user mention qualifies; agent ownership and responsible-user attribution alone do
|
||||
not. See [toast semantics](../../doc/TOASTS.md).
|
||||
|
||||
Evidence: `source-only` — [socket projection](../../server/src/realtime/live-events-ws.ts)
|
||||
and [eligibility](../../server/src/realtime/task-toast-eligibility.ts).
|
||||
|
||||
Verification: `not-run` — Connect two users and an agent; assert per-user eligibility without
|
||||
losing authorized cache updates. Deny revoked membership and private task access.
|
||||
Confirm relevance lookup failure yields a quiet authorized event.
|
||||
|
||||
Gaps: Browser recipes and regression sources are not deployment acceptance proof.
|
||||
@@ -88,6 +88,14 @@ Review: `baseline`.
|
||||
API: `present` — representative operation IDs:
|
||||
|
||||
- `GET /api/health`.
|
||||
- `GET /api/liveness` and `HEAD /api/liveness` — public process startup status
|
||||
and build commit only; no database readiness or workspace identity.
|
||||
|
||||
Liveness is anonymous and runs before actor/session resolution. Hostname and
|
||||
signed-bootstrap endpoint validation still apply. It grants no instance control
|
||||
authority. [Liveness tests](../../server/src/__tests__/liveness.test.ts) cover idle
|
||||
drain, invalid ambient credentials, unavailable SQL, and startup recovery with
|
||||
local Express fixtures; no live provider or agent access is claimed.
|
||||
|
||||
Agent access: `partial` — REST health plus local CLI doctor.
|
||||
|
||||
|
||||
@@ -88,6 +88,39 @@ testing an existing agent; interactive account login additionally requires a
|
||||
board user and owner-bound session. An agent's right to hire is not login or
|
||||
instance-environment administration authority.
|
||||
|
||||
For fresh managed Codex Auto setup, the wizard's explicit Connect path can call
|
||||
`POST /api/environments/{environmentId}/probe?companyId={companyId}` before
|
||||
selected-runtime testing, then refresh scoped adapter discovery. This reuses the
|
||||
existing board instance-admin/local-implicit probe gate; `agents:create` alone
|
||||
is insufficient. A 403, absent proof, changed configuration, missing response
|
||||
identity or unconfirmed cleanup remains visible. No probe is added to creation
|
||||
or discovery, no agent/company grant is broadened, and provider authentication
|
||||
errors never cause an automatic runner switch.
|
||||
|
||||
Native setup derives outer sandbox isolation from the server-resolved execution
|
||||
target, as task execution does. This is an internal transport choice, not a
|
||||
request/configuration permission. Local and SSH setup keep Codex isolation;
|
||||
caller-supplied environment flags do not authorize an external sandbox. Existing
|
||||
company, account, probe and registration-cleanup gates still apply.
|
||||
The bounded hello probe retains read-only permissions and no dynamic tools. Its
|
||||
trusted launch skips project-instruction discovery in the new, empty setup
|
||||
workspace. This grants no filesystem or networking permission and does not
|
||||
change instruction discovery for ordinary task execution.
|
||||
|
||||
Scoped source review: 2026-10-13, exact baseline
|
||||
`1a0ca66242121e39d88455aa2b52a07acc4a07d9` plus the privately composed onboarding
|
||||
correction. [Wizard controls](../../ui/src/components/OnboardingWizard.test.tsx)
|
||||
and [existing Product E2E observer controls](../../tests/runner-e2e/first-task.test.ts)
|
||||
exercise mocked allowed/denied setup and sticky unknown cost coverage. They do
|
||||
not prove live actor authorization or provider execution. The explicit manual
|
||||
`confirmation-replies.runner-codex.daytona.task-card-accept` case requires an
|
||||
eligible immutable OCI target and the existing probe authority, two identified
|
||||
setup leases and separately authorized paid/cleanup reservations. Its fixture
|
||||
neither prequalifies the environment nor creates the agent. Actual Cloud named
|
||||
snapshot binding, warm/cold signup and live allowed/denied agent checks remain
|
||||
`not-run`.
|
||||
|
||||
|
||||
Evidence: `source-only` —
|
||||
[implementation](../../ui/src/components/OnboardingWizard.tsx#L279) at the reviewed
|
||||
commit above.
|
||||
@@ -135,6 +168,20 @@ remaining operations before qualifying the whole capability.
|
||||
|
||||
Gaps: Task creation is agent-accessible where permitted; scheduling/readiness does not
|
||||
follow from successful creation.
|
||||
The Codex first-task fixture's operator cost guard uses the existing board
|
||||
agent-configuration PATCH before admitting work. This is not evidence of agent
|
||||
permission to update its runtime; the listed agent-context checks remain not-run.
|
||||
|
||||
Scoped source review: 2026-10-13, the first-task asset correction against
|
||||
`ea6c8eb5e16d61111968f633a66748b397b64a3e`. The existing
|
||||
[first-task instructions](../../server/src/onboarding-assets/first-task/skills/first-task/SKILL.md)
|
||||
send file-producing work through the child's own execution and existing
|
||||
dependency/block controls. Native `register_deliverable` retains its current-task
|
||||
binding; this adds no cross-task file-registration authority or permission.
|
||||
Document-only work may use the existing child-document API inline, and plan-only
|
||||
approval does not authorize implementation. The existing asset tests check
|
||||
wording only. The literal baseline live attempt failed child-file delivery and
|
||||
completion reporting; revised live authorization and execution remain `not-run`.
|
||||
|
||||
## `resume`
|
||||
|
||||
@@ -164,3 +211,15 @@ Scoped source review of [draft restoration](../../ui/src/components/OnboardingWi
|
||||
preserves harness/runner intent and invalidates obsolete setup-test results after
|
||||
a selection change. Browser draft continuity is not API or live-agent evidence,
|
||||
and opening a saved Legacy agent does not apply new-agent defaults.
|
||||
|
||||
The initial matching route opening preserves the authorized saved wizard step
|
||||
on bare and company-prefixed reloads. Explicit new-company or changed-company
|
||||
openings retain their navigation override and clear foreign company resource
|
||||
IDs. [Existing component controls](../../ui/src/components/OnboardingWizard.test.tsx)
|
||||
exercise these presentation and account boundaries. This scoped correction adds
|
||||
no server draft API, agent grant or proof of live actor authorization. The
|
||||
managed first-task eval still reloads before Get started and remains a separate
|
||||
live acceptance gate. The existing mocked-login browser case also checks the
|
||||
same company-scoped active session and saved selection through route reopening
|
||||
and a real reload, with one login start and no pending-login hire. These fixture
|
||||
assertions do not prove server authorization or live credential use.
|
||||
@@ -2,7 +2,9 @@
|
||||
|
||||
Product map: [Pipelines, review queues, and learnings](../feature-map/pipelines.md).
|
||||
|
||||
Review date: 2026-10-12. Source commit: `f981fa3cc10cb8663a87dec60345fbff46d54d0a`.
|
||||
Review date: 2026-10-12. Source commit: `58e16dbddfc9c8d0cf60867f9d9847f0feda055b`.
|
||||
Native REST transport reconciled in this change; see the
|
||||
[shared transport contract](README.md#native-rest-transport).
|
||||
|
||||
This is a source-reviewed baseline of representative operations and known gaps.
|
||||
Each capability needs operation-level review before its entire scope can be
|
||||
@@ -31,8 +33,9 @@ credentials/run context; inspect its result and applicable persistence/attributi
|
||||
Assert the relevant denied actor, owner, company or mode from Policy. Review the
|
||||
remaining operations before qualifying the whole capability.
|
||||
|
||||
Gaps: Configuration paths exist. Generic fallback blocks case automation execution
|
||||
paths; do not conflate configuration and dispatch.
|
||||
Gaps: Configuration and case-automation retry/rerun have native `call_api` REST
|
||||
paths under company, active-agent-run, case and target-pipeline write checks. The
|
||||
route and service retain retry/rerun eligibility and dispatch policy.
|
||||
|
||||
## `items`
|
||||
|
||||
|
||||
@@ -111,3 +111,12 @@ remaining operations before qualifying the whole capability.
|
||||
|
||||
Gaps: Description/goal/target selection exist; host workspace command mutation is denied
|
||||
to agents and budget policy is board-managed.
|
||||
|
||||
Repository attachment also writes a durable skill import binding in its transaction.
|
||||
Agent-created bindings derive their refresh person from authenticated responsible-user
|
||||
context. Project selection does not grant runtime credentials or override private
|
||||
project skill access. Verify automatic import and denial with the actual agent identity.
|
||||
|
||||
Workspace creation, update and deletion require project:write_workspace through
|
||||
the shared authorization evaluator in addition to project read access. Repository
|
||||
attachment does not bypass skill-import policy for its background discovery.
|
||||
@@ -2,7 +2,9 @@
|
||||
|
||||
Product map: [Recovery](../feature-map/recovery.md).
|
||||
|
||||
Review date: 2026-10-12. Source commit: `f981fa3cc10cb8663a87dec60345fbff46d54d0a`.
|
||||
Review date: 2026-10-12. Source commit: `58e16dbddfc9c8d0cf60867f9d9847f0feda055b`.
|
||||
Native REST transport reconciled in this change; see the
|
||||
[shared transport contract](README.md#native-rest-transport).
|
||||
|
||||
This is a source-reviewed baseline of representative operations and known gaps.
|
||||
Each capability needs operation-level review before its entire scope can be
|
||||
@@ -42,7 +44,8 @@ API: `present` — representative operation IDs:
|
||||
|
||||
- `POST /api/issues/{id}/recovery-actions/resolve`.
|
||||
|
||||
Agent access: `partial` — Eligible agent REST / CLI; native generic mutation restricted.
|
||||
Agent access: `partial` — Eligible agent REST / native `call_api` / CLI under
|
||||
source-bound recovery authority.
|
||||
|
||||
Policy: Task/run visibility, run ownership and source/action policy; workspace export
|
||||
retry and some operator controls require board.
|
||||
@@ -55,8 +58,20 @@ credentials/run context; inspect its result and applicable persistence/attributi
|
||||
Assert the relevant denied actor, owner, company or mode from Policy. Review the
|
||||
remaining operations before qualifying the whole capability.
|
||||
|
||||
Gaps: Underlying route has agent checks; no corresponding default native recovery
|
||||
mutation tool is advertised.
|
||||
Gaps: Eligible resolutions use native `call_api`. The route retains owner and
|
||||
management authority, active-run/source-trust checks, board-only outcomes and
|
||||
reconciliation controls.
|
||||
|
||||
Scoped source review: 2026-10-13, recovery correction against
|
||||
`ea6c8eb5e16d61111968f633a66748b397b64a3e`. The
|
||||
[recovery service](../../server/src/services/recovery/service.ts) reuses the
|
||||
existing completed-onboarding handoff validator. It checks the source company,
|
||||
onboarding origin, Done parent, assignee and Done child, with no unfinished
|
||||
siblings, before exempting the report from the issue-terminal backstop. Other
|
||||
terminal work and process-death/controller ownership checks remain enforced.
|
||||
This internal wake handling adds no recovery-resolution or cross-company agent
|
||||
authority. Real PostgreSQL regressions cover allowed and rejected bindings;
|
||||
revised live agent authorization and callback delivery remain `not-run`.
|
||||
|
||||
## `source-action`
|
||||
|
||||
@@ -67,13 +82,25 @@ API: `present` — representative operation IDs:
|
||||
- `GET /api/issues/{id}/recovery-actions`.
|
||||
- `POST /api/issues/{id}/recovery-actions/resolve`.
|
||||
|
||||
Agent access: `partial` — Eligible agent REST / CLI; source-bound recovery state.
|
||||
Agent access: `partial` — Eligible agent REST / native `call_api` / CLI; source-bound
|
||||
recovery state.
|
||||
|
||||
Policy: Task/run visibility, run ownership and source/action policy; workspace export
|
||||
retry and some operator controls require board. Completion or cancellation of a
|
||||
task does not clear its exact unresolved native workspace owner hold. Physical
|
||||
owner release still requires the [operator stop-verification procedure](../../doc/native-workspace-finalization-recovery.md).
|
||||
|
||||
For a resolved legacy action that retains a file hold, the same resolution API
|
||||
supports source-only file repair. Board runtime management and recovery-resolution
|
||||
authority are required. The request identifies the exact source action/run and
|
||||
records recovered-file evidence; the server verifies the original stop receipt.
|
||||
It preserves the current task status and does not wake or replay the agent. The
|
||||
task form fails closed without permission or source bindings. Agent Chat retains
|
||||
the file diagnosis while this hold exists. The
|
||||
[repair route regressions](../../server/src/__tests__/workspace-restore-repair-route.test.ts)
|
||||
and [file form](../../ui/src/components/WorkspaceFileRecovery.test.tsx) cover the
|
||||
local contract; they do not independently recover files or qualify a live provider.
|
||||
|
||||
Evidence: `source-only` — [implementation](../../server/src/routes/issues.ts#L9478) at
|
||||
the reviewed commit above. Exact owner hold retention in the
|
||||
[recovery state helper](../../server/src/services/native-runtime/native-workspace-finalization-recovery-state.ts)
|
||||
@@ -89,8 +116,8 @@ physical copyback, and cleanup after the receipt is cleared. Exercise this
|
||||
sequence in a disposable instance; automatic cleanup must use the system actor
|
||||
and must not create reader participation. No live recovery proof is claimed.
|
||||
|
||||
Gaps: Need operation-level eligibility and a real native binding for permitted recovery
|
||||
actions; do not route around lifecycle authority.
|
||||
Gaps: Permitted resolutions use native `call_api` under existing eligibility
|
||||
and ownership checks. Source/action policy determines whether continuation is allowed.
|
||||
|
||||
## `exhaustion`
|
||||
|
||||
@@ -124,23 +151,45 @@ Review: `baseline`.
|
||||
API: `present` — representative operation IDs:
|
||||
|
||||
- `POST /api/issues/{id}/recovery-actions/retry-workspace-export`.
|
||||
- `POST /api/issues/{id}/recovery-actions/resume-workspace-finalization`.
|
||||
- `POST /api/issues/{id}/recovery-actions/resolve` for retained-source file repair.
|
||||
- `POST /api/execution-workspaces/{id}/reconcile-branch`.
|
||||
|
||||
Agent access: `restricted` — Board/runtime management APIs; agent reads diagnosis and
|
||||
performs permitted workspace work.
|
||||
|
||||
Policy: Task/run visibility, run ownership and source/action policy; workspace export
|
||||
retry and some operator controls require board.
|
||||
Policy: Export retry and branch reconciliation require board runtime management.
|
||||
Retained legacy file-only repair requires the board, exact stopped-source receipts,
|
||||
and recovered-file evidence. It can record repair for a successful legacy turn
|
||||
without changing its result or authorizing replay. Queued and running sources
|
||||
remain denied. Source-only reconciliation regressions cover this boundary.
|
||||
Physical-owner stop confirmation uses the separate `runtime:confirm_owner_stop`
|
||||
action. It requires active company owner/admin membership, trusted local board
|
||||
access, or instance administration. Agents and ordinary runtime managers are denied.
|
||||
The exact source task, running native run, accepted result and owner receipt must
|
||||
match; active copyback locks, live local writers, and newer runs prevent admission.
|
||||
An authorized administrator must first verify through the deployment platform that
|
||||
the exact controller and all copyback children stopped, then attest that evidence.
|
||||
Elapsed time, an expired coordinator lease or a lost advisory connection is not proof.
|
||||
Only the exact owner receipt is released; normal reconciliation performs export and
|
||||
commitment without another provider turn or bypassing existing task waits.
|
||||
|
||||
Evidence: `source-only` — [implementation](../../server/src/routes/issues.ts#L9478) at
|
||||
the reviewed commit above.
|
||||
Evidence: `source-only` — [route](../../server/src/routes/issues.ts),
|
||||
[administrator authorization](../../server/src/services/authorization.ts), and
|
||||
[owner admission](../../server/src/services/native-runtime/native-workspace-owner-recovery.ts)
|
||||
reviewed for this change. Local authorization, route, UI and finalization regressions
|
||||
cover member/agent denial, exact-owner admission and the real reconciler preserving
|
||||
monitor and approval waits. This is not live provider-stop proof.
|
||||
|
||||
Verification: `not-run` — assert the documented agent denial with an owned test fixture;
|
||||
Verification: `not-run` for live agent/deployment execution — assert the documented agent denial with an owned test fixture;
|
||||
verify any listed agent request/result path separately. A delegated operation needs its
|
||||
own policy and access review.
|
||||
|
||||
Gaps: Export retry/reconciliation APIs exist but require board. Native generic
|
||||
execution-control mutations are also blocked.
|
||||
Gaps: Export retry and branch reconciliation require board runtime:manage at
|
||||
their HTTP routes. The exact-owner operator fallback additionally requires
|
||||
runtime:confirm_owner_stop. Native call_api preserves these agent denials.
|
||||
Automatic managed-cloud recovery uses independently verified, signed platform
|
||||
proof through the finalization reconciler; agents cannot attest owner shutdown.
|
||||
|
||||
## `unknown-outcome`
|
||||
|
||||
|
||||
@@ -2,7 +2,9 @@
|
||||
|
||||
Product map: [Routines, schedules, and triggers](../feature-map/routines.md).
|
||||
|
||||
Review date: 2026-10-12. Source commit: `f981fa3cc10cb8663a87dec60345fbff46d54d0a`.
|
||||
Review date: 2026-10-12. Source commit: `58e16dbddfc9c8d0cf60867f9d9847f0feda055b`.
|
||||
Native REST transport reconciled in this change; see the
|
||||
[shared transport contract](README.md#native-rest-transport).
|
||||
|
||||
This is a source-reviewed baseline of representative operations and known gaps.
|
||||
Each capability needs operation-level review before its entire scope can be
|
||||
@@ -18,8 +20,8 @@ API: `present` — representative operation IDs:
|
||||
- `POST /api/companies/{companyId}/routines`.
|
||||
- `PATCH /api/routines/{id}`.
|
||||
|
||||
Agent access: `partial` — Agent REST / CLI routine create/update; optional installed MCP
|
||||
generic request.
|
||||
Agent access: `available` — Agent REST / native `call_api` / CLI routine create/update;
|
||||
optional installed MCP generic request.
|
||||
|
||||
Policy: Agents may read company routines but only create/manage routines assigned to
|
||||
themselves; trigger secrets need secure handling.
|
||||
@@ -32,8 +34,9 @@ credentials/run context; inspect its result and applicable persistence/attributi
|
||||
Assert the relevant denied actor, owner, company or mode from Policy. Review the
|
||||
remaining operations before qualifying the whole capability.
|
||||
|
||||
Gaps: Native call_api rejects routine mutation; manage_routine is scenario-only/unbound.
|
||||
Agent REST is implemented.
|
||||
Gaps: No dedicated production manage_routine binding; generic `call_api` provides
|
||||
the permitted REST path. Creation needs a responsible user resolved from the parent
|
||||
issue or company default.
|
||||
|
||||
## `triggers`
|
||||
|
||||
@@ -44,7 +47,8 @@ API: `present` — representative operation IDs:
|
||||
- `POST /api/routines/{id}/triggers`.
|
||||
- `PATCH /api/routine-triggers/{id}`.
|
||||
|
||||
Agent access: `partial` — Owned-routine agent REST / CLI routine trigger commands.
|
||||
Agent access: `available` — Owned-routine agent REST / native `call_api` / CLI trigger
|
||||
commands.
|
||||
|
||||
Policy: Agents may read company routines but only create/manage routines assigned to
|
||||
themselves; trigger secrets need secure handling.
|
||||
@@ -57,8 +61,17 @@ credentials/run context; inspect its result and applicable persistence/attributi
|
||||
Assert the relevant denied actor, owner, company or mode from Policy. Review the
|
||||
remaining operations before qualifying the whole capability.
|
||||
|
||||
Gaps: No production default native trigger-management binding. Webhook creation/rotation
|
||||
also returns credential material.
|
||||
Gaps: No dedicated production trigger-management binding; generic `call_api`
|
||||
provides the permitted REST path. Credential replies use inline delivery and encrypted
|
||||
mutation receipts rather than shared response assets.
|
||||
|
||||
The host-only `GET /api/instance/task-drain?idleSleepSafety=1&scheduledWake=1`
|
||||
extension reports the earliest supported future routine deadline under an owned
|
||||
idle hold. It requires signed Cloud control authority; company agents and tenant
|
||||
admin tokens cannot use it. It does not grant routine management or execution
|
||||
authority. See the [hosting protocol](../../doc/idle-sleep-safety.md#scheduled-routine-wake-protocol)
|
||||
and [route authorization tests](../../server/src/__tests__/instance-settings-routes.test.ts).
|
||||
These are local contract checks, not a live provider sleep/wake qualification.
|
||||
|
||||
## `run-now`
|
||||
|
||||
@@ -68,7 +81,8 @@ API: `present` — representative operation IDs:
|
||||
|
||||
- `POST /api/routines/{id}/run`.
|
||||
|
||||
Agent access: `partial` — Owned-routine agent REST / CLI routine run.
|
||||
Agent access: `partial` — Owned-routine agent REST / CLI run; native `call_api` from
|
||||
an authorized active run.
|
||||
|
||||
Policy: Agents may read company routines but only create/manage routines assigned to
|
||||
themselves; trigger secrets need secure handling.
|
||||
@@ -81,8 +95,8 @@ credentials/run context; inspect its result and applicable persistence/attributi
|
||||
Assert the relevant denied actor, owner, company or mode from Policy. Review the
|
||||
remaining operations before qualifying the whole capability.
|
||||
|
||||
Gaps: A scheduled/waiting native agent cannot use call_api for this eligible operation;
|
||||
a real control binding is missing.
|
||||
Gaps: Scheduled/waiting native agents cannot independently call this operation:
|
||||
native authority requires a running bound run. A separate control binding remains absent.
|
||||
|
||||
## `history`
|
||||
|
||||
@@ -117,8 +131,7 @@ API: `present` — representative operation IDs:
|
||||
|
||||
- `PATCH /api/routines/{id}`.
|
||||
|
||||
Agent access: `partial` — Owned-routine agent REST / CLI; normal native fallback can
|
||||
manage separate folder metadata where permitted.
|
||||
Agent access: `available` — Owned-routine agent REST / native `call_api` / CLI.
|
||||
|
||||
Policy: Agents may read company routines but only create/manage routines assigned to
|
||||
themselves; trigger secrets need secure handling.
|
||||
@@ -131,5 +144,11 @@ credentials/run context; inspect its result and applicable persistence/attributi
|
||||
Assert the relevant denied actor, owner, company or mode from Policy. Review the
|
||||
remaining operations before qualifying the whole capability.
|
||||
|
||||
Gaps: Pause/archive routine mutation lacks a production native binding. Plugin-managed
|
||||
routine rules remain separate.
|
||||
Gaps: Pause/archive mutations have a generic native REST path under routine
|
||||
ownership rules. Plugin-managed routine rules remain separate.
|
||||
|
||||
Execution resolves referenced project skills against agent/responsible-user access,
|
||||
then saves immutable version selections in the heartbeat execution context. New runs
|
||||
resolve latest installed content; resumed runs retain selections and recheck access.
|
||||
An unavailable explicit reference produces an actionable configuration error.
|
||||
Live agent execution across an upstream update remains required acceptance evidence.
|
||||
@@ -2,7 +2,9 @@
|
||||
|
||||
Product map: [Runs, harnesses, and model accounts](../feature-map/runs-adapters.md).
|
||||
|
||||
Review date: 2026-10-12. Source commit: `f981fa3cc10cb8663a87dec60345fbff46d54d0a`.
|
||||
Review date: 2026-10-12. Source commit: `58e16dbddfc9c8d0cf60867f9d9847f0feda055b`.
|
||||
Native REST transport reconciled in this change; see the
|
||||
[shared transport contract](README.md#native-rest-transport).
|
||||
|
||||
This is a source-reviewed baseline of representative operations and known gaps.
|
||||
Each capability needs operation-level review before its entire scope can be
|
||||
@@ -28,8 +30,8 @@ API: `present` — representative operation IDs:
|
||||
- `GET /api/adapters`.
|
||||
- `GET /api/companies/{companyId}/adapters/{type}/models`.
|
||||
|
||||
Agent access: `partial` — Agent company-model API and bound runtime context; board
|
||||
adapter/account inventories.
|
||||
Agent access: `partial` — Agent company-model REST / native `call_api` discovery and
|
||||
bound runtime context; adapter/account inventories remain board-only.
|
||||
|
||||
Policy: Run/cost visibility and agent configuration policy; adapter installation/account
|
||||
login/session control require board/admin.
|
||||
@@ -58,6 +60,11 @@ and explicit overrides follow the [shared runner contract](../../packages/shared
|
||||
Claude follows its qualified rollout described above. The board inventory does not grant a
|
||||
native agent an equivalent discovery binding. See
|
||||
[probe restrictions](./execution-environments.md#probe) for acquiring qualification.
|
||||
An absent forced-Kubernetes environment is an unqualified sandbox target, never
|
||||
a local target. Discovery and automatic creation keep the Legacy path without
|
||||
provisioning it; explicit Paperclip selection returns qualification guidance.
|
||||
The existing execution path owns lazy environment creation. Saved runners remain
|
||||
unchanged. This is source/control evidence, not live Kubernetes qualification.
|
||||
|
||||
## `validation`
|
||||
|
||||
@@ -67,8 +74,8 @@ API: `present` — representative operation IDs:
|
||||
|
||||
- `POST /api/companies/{companyId}/adapters/{type}/test-environment`.
|
||||
|
||||
Agent access: `partial` — Permitted agent-creation validation path / REST / CLI;
|
||||
operator account login.
|
||||
Agent access: `partial` — Permitted agent-creation validation through REST / native
|
||||
`call_api` / CLI; account login requires its operator.
|
||||
|
||||
Policy: Run/cost visibility and agent configuration policy; adapter installation/account
|
||||
login/session control require board/admin.
|
||||
@@ -94,6 +101,26 @@ or Legacy CLI check cannot replace that runtime evidence. Missing dependencies,
|
||||
credentials, invalid models and incompatible settings fail without silently
|
||||
changing runners. Account login remains board/owner-bound.
|
||||
|
||||
For a linked Codex subscription with server-resolved managed credential provenance,
|
||||
setup checks the resolved owner and stages a private probe copy before local or
|
||||
remote isolation. Without a selected API key, an unbound linked `CODEX_HOME` is
|
||||
rejected with explicit Legacy
|
||||
or managed-account guidance. Caller configuration cannot supply that provenance. Selected `CODEX_API_KEY` and
|
||||
`OPENAI_API_KEY` authentication skips unrelated subscription reads and refresh
|
||||
bindings, matching task materialization. The fake-credential controls verify key
|
||||
precedence without changing the account source or exposing either credential.
|
||||
The general native
|
||||
home materializer retains its no-follow symlink guard. Refresh still targets the
|
||||
checked account source, and confirmed bounded retirement removes its private
|
||||
copy. Unconfirmed retirement retains the existing cleanup block and owned state.
|
||||
Failures before probe handoff remove only the owned temporary preparation root;
|
||||
local daemon resolution occurs before credential staging. Once a probe is handed
|
||||
off, unconfirmed retirement still retains its recovery state.
|
||||
[Existing fake-credential setup controls](../../server/src/services/native-runtime/setup-readiness.test.ts)
|
||||
exercise linked/regular sources and failure cleanup. This adds no credential-read
|
||||
API, agent login authority or cross-company account access. Its source-only
|
||||
evidence does not qualify a live permitted/denied agent operation.
|
||||
|
||||
Verification for this scope remains `not-run`: use an admitted agent REST/CLI
|
||||
validation path, assert missing grants and cross-company targets/accounts are
|
||||
denied, then prove the useful task/follow-up separately. `hire_agent` inherits its
|
||||
@@ -147,8 +174,26 @@ Verification: `not-run` — assert the documented agent denial with an owned tes
|
||||
verify any listed agent request/result path separately. A delegated operation needs its
|
||||
own policy and access review.
|
||||
|
||||
Gaps: Execution context reset is not a permitted generic native API mutation or an
|
||||
ordinary agent management path.
|
||||
Gaps: Task-session listing and execution-context reset require board agent
|
||||
management at their HTTP routes. Native `call_api` preserves these denials; native
|
||||
continuation remains server-owned.
|
||||
|
||||
Scoped source-only evidence: [configuration changes](../../server/src/services/agent-configuration.ts)
|
||||
and [native execution/recovery](../../server/src/services/native-runtime/native-session-executor.ts)
|
||||
retain existing execution on unrelated edits and use recorded run configuration
|
||||
for active/recovered runs. Explicit runner changes use revisions and session
|
||||
invalidation. Verify saved configuration, current versus historical run identity,
|
||||
restart and follow-up without granting session-reset authority to an agent.
|
||||
|
||||
Scoped source review: 2026-10-13, the recovery correction against
|
||||
`ea6c8eb5e16d61111968f633a66748b397b64a3e` reuses
|
||||
[completed onboarding handoff validation](../../server/src/services/chat-completion-delivery.ts)
|
||||
before applying the issue-terminal backstop. The company, parent origin/status,
|
||||
assignee, completed child and remaining children must match. Only that backstop
|
||||
is suppressed for the validated report; process-death and controller/native
|
||||
ownership checks still apply. No agent gains session or recovery control.
|
||||
PostgreSQL regressions cover valid native/Legacy callbacks and rejected bindings;
|
||||
revised live execution and actor authorization remain `not-run`.
|
||||
|
||||
Scoped source-only evidence: [configuration changes](../../server/src/services/agent-configuration.ts)
|
||||
and [native execution/recovery](../../server/src/services/native-runtime/native-session-executor.ts)
|
||||
@@ -169,3 +214,13 @@ Scoped Verification: `not-run` — verify allowed/denied access using the actual
|
||||
actor independently from the credential-free ownership controls. This correction
|
||||
adds no account-setup, cleanup-override or session-reset authority. The real native
|
||||
readiness/recovery fixtures and installed provider acceptance remain separate gates.
|
||||
|
||||
Scoped shutdown source review: 2026-10-14, against literal
|
||||
`651a3de64fc943216cc414b64b1443809f9499da`. The suspension barrier bounds remote
|
||||
state reads by its remaining deadline and rejects late proof. Intentional
|
||||
[provider ingress shutdown](../../server/src/realtime/runner-prp-outbound.ts)
|
||||
joins physical socket closure and retires the connection owner before endpoint
|
||||
release. Unconfirmed termination stays blocked. Existing fake-peer and delayed
|
||||
read controls are source evidence; this changes no actor, company, account or
|
||||
session-reset permission. Operation-level verification remains `not-run` and
|
||||
the failed Test setup does not qualify successful live cleanup.
|
||||
@@ -2,7 +2,9 @@
|
||||
|
||||
Product map: [Secrets, personal credentials, and proposals](../feature-map/secrets.md).
|
||||
|
||||
Review date: 2026-10-12. Source commit: `f981fa3cc10cb8663a87dec60345fbff46d54d0a`.
|
||||
Review date: 2026-10-12. Source commit: `58e16dbddfc9c8d0cf60867f9d9847f0feda055b`.
|
||||
Native REST transport reconciled in this change; see the
|
||||
[shared transport contract](README.md#native-rest-transport).
|
||||
|
||||
This is a source-reviewed baseline of representative operations and known gaps.
|
||||
Each capability needs operation-level review before its entire scope can be
|
||||
@@ -18,8 +20,8 @@ API: `present` — representative operation IDs:
|
||||
- `GET /api/companies/{companyId}/secrets/catalog`.
|
||||
- `POST /api/companies/{companyId}/secrets`.
|
||||
|
||||
Agent access: `partial` — Agent metadata catalog; board secret administration; agent
|
||||
secret proposal API.
|
||||
Agent access: `partial` — Agent REST / native `call_api` metadata catalog and secret
|
||||
proposals; company secret administration remains board-only.
|
||||
|
||||
Policy: Board secret administration, active-run/self/report proposal policy, and scoped
|
||||
secret broker bindings; personal secret values belong to their user.
|
||||
@@ -32,8 +34,8 @@ credentials/run context; inspect its result and applicable persistence/attributi
|
||||
Assert the relevant denied actor, owner, company or mode from Policy. Review the
|
||||
remaining operations before qualifying the whole capability.
|
||||
|
||||
Gaps: Metadata and requesting a change exist; generic native API blocks secret
|
||||
management/value transport.
|
||||
Gaps: Native transport preserves board-only administration. Bound value retrieval
|
||||
is a separate scoped operation described under runtime-delivery.
|
||||
|
||||
## `user-secrets`
|
||||
|
||||
@@ -69,8 +71,8 @@ API: `present` — representative operation IDs:
|
||||
- `POST /api/agents/me/secret-proposals`.
|
||||
- `GET /api/agents/me/secret-proposals`.
|
||||
|
||||
Agent access: `partial` — Active-run agent REST with redaction; board
|
||||
approval/rejection.
|
||||
Agent access: `partial` — Active-run agent REST / native `call_api` with redaction;
|
||||
approval/rejection remains board-only.
|
||||
|
||||
Policy: Board secret administration, active-run/self/report proposal policy, and scoped
|
||||
secret broker bindings; personal secret values belong to their user.
|
||||
@@ -83,8 +85,8 @@ credentials/run context; inspect its result and applicable persistence/attributi
|
||||
Assert the relevant denied actor, owner, company or mode from Policy. Review the
|
||||
remaining operations before qualifying the whole capability.
|
||||
|
||||
Gaps: Native call_api blocks secret-proposals and no dedicated production proposal tool
|
||||
is in its default authority set.
|
||||
Gaps: No dedicated production proposal tool is required for the REST path.
|
||||
Native calls retain active-run, scope and skill-test JWT restrictions.
|
||||
|
||||
## `vault-import`
|
||||
|
||||
@@ -120,8 +122,8 @@ API: `present` — representative operation IDs:
|
||||
- `GET /api/agents/me/secrets`.
|
||||
- `POST /api/agents/me/secrets/{key}/value`.
|
||||
|
||||
Agent access: `partial` — Authorized environment/broker delivery; eligible legacy agent
|
||||
REST access.
|
||||
Agent access: `available` — Authorized environment/broker delivery and scoped agent
|
||||
REST / native `call_api` value retrieval.
|
||||
|
||||
Policy: Board secret administration, active-run/self/report proposal policy, and scoped
|
||||
secret broker bindings; personal secret values belong to their user.
|
||||
@@ -134,5 +136,13 @@ credentials/run context; inspect its result and applicable persistence/attributi
|
||||
Assert the relevant denied actor, owner, company or mode from Policy. Review the
|
||||
remaining operations before qualifying the whole capability.
|
||||
|
||||
Gaps: Native metadata reads exist; value call is blocked and scenario read_secret_value
|
||||
is unbound. Do not add raw secret-returning fallback tools.
|
||||
Server-only instance secrets are excluded from this path. They belong to the
|
||||
company, owning agent, and installed lifecycle plugin. The existing local lifecycle
|
||||
callback can save them through the native secret service; there is no agent API
|
||||
for their values. Source: [native secret coordinator](../../server/src/services/agent-instance-secrets.ts)
|
||||
and [scope/denial tests](../../server/src/__tests__/agent-instance-secrets.test.ts).
|
||||
No live agent execution is claimed for this exclusion.
|
||||
|
||||
Gaps: Values remain restricted to the bound agent and active run. Credential
|
||||
responses stay inline and use encrypted mutation receipts; they are not saved as
|
||||
plaintext response assets. Dedicated scenario read_secret_value remains unbound.
|
||||
@@ -2,7 +2,9 @@
|
||||
|
||||
Product map: [Skill discovery, authoring, and policy](../feature-map/skills.md).
|
||||
|
||||
Review date: 2026-10-12. Source commit: `f981fa3cc10cb8663a87dec60345fbff46d54d0a`.
|
||||
Review date: 2026-10-12. Source commit: `58e16dbddfc9c8d0cf60867f9d9847f0feda055b`.
|
||||
Native REST transport reconciled in this change; see the
|
||||
[shared transport contract](README.md#native-rest-transport).
|
||||
|
||||
This is a source-reviewed baseline of representative operations and known gaps.
|
||||
Each capability needs operation-level review before its entire scope can be
|
||||
@@ -122,8 +124,8 @@ API: `present` — representative operation IDs:
|
||||
|
||||
- `POST /api/companies/{companyId}/skills/{skillId}/test-runs`.
|
||||
|
||||
Agent access: `partial` — Permitted agent REST; native read fallback for history; no
|
||||
dedicated CLI test command found.
|
||||
Agent access: `available` — Permitted agent REST / native `call_api` creation, control
|
||||
and history; no dedicated CLI test command found.
|
||||
|
||||
Policy: Company skill policy by action/resource plus platform invariants; test execution
|
||||
additionally requires task-assignment authority.
|
||||
@@ -137,5 +139,47 @@ credentials/run context; inspect its result and applicable persistence/attributi
|
||||
Assert the relevant denied actor, owner, company or mode from Policy. Review the
|
||||
remaining operations before qualifying the whole capability.
|
||||
|
||||
Gaps: Native call_api rejects test-run creation/control while the route can authorize
|
||||
agents. No default native orchestration binding.
|
||||
Gaps: No dedicated native orchestration binding; generic REST calls retain
|
||||
skills.test policy, task-assignment authorization, responsible-user intersection and
|
||||
admitted skill-test JWT scope.
|
||||
|
||||
Project-source API additions: GET `/api/companies/{companyId}/skill-sources/project-repositories`,
|
||||
POST `/api/companies/{companyId}/skill-sources/adopt-project` with `workspaceId`, and
|
||||
PATCH `/api/companies/{companyId}/skill-sources/{sourceId}/settings` with expected revision
|
||||
and update/connection preferences. `trackingRef` accepts a branch or explicit ref;
|
||||
`"HEAD"` keeps default-branch tracking. GET `/api/companies/{companyId}/skill-sources/{sourceId}/branches`
|
||||
returns a bounded branch list and the default branch, with optional `connectionId` for
|
||||
connection repair. It requires source access and `skills.edit`, and reads only through
|
||||
the caller's authorized GitHub grant. Saving validates the requested ref before changing
|
||||
an independent source; active project bindings must be edited through their
|
||||
project configuration. Responses identify branch, connection, or retry repair and distinguish
|
||||
queued imports from imports under an active worker lease. Native API discovery uses the OpenAPI registration.
|
||||
|
||||
Project-derived read/use permission follows current project authorization, with access
|
||||
through either originating project. File/version reads, source metadata, mutations,
|
||||
editable copies, tests and runtime delivery retain that boundary. Unattended refresh
|
||||
uses the revalidated setup identity and connection, not the requesting agent's token.
|
||||
These additions need actual permitted/denied agent-run acceptance; service tests alone
|
||||
are not live credential proof.
|
||||
|
||||
Direct GitHub source imports share the project setup-identity boundary. API-key
|
||||
agents may import permitted public content, but their responsible-user field
|
||||
does not authorize unattended credential use. They need human connection repair
|
||||
for automatic refresh. Authenticated agent runs derive the setup person from
|
||||
the persisted active run. Legacy agent activity without a matching run cannot
|
||||
recover a refresh person. Route and database tests cover these distinctions;
|
||||
this addition makes no new live-provider acceptance claim.
|
||||
|
||||
Initial project imports check skills.import before provider reads; denied jobs
|
||||
do not retry automatically. Deferred jobs remain durable behind per-project and
|
||||
company admission limits. Scheduled refresh compares immutable tree identity and
|
||||
uses a persistent work allowance; manual refresh still requires its existing
|
||||
policy/access checks. These limits grant no content or execution access.
|
||||
|
||||
Agent repository setup preserves the active run's selected GitHub connection/grant
|
||||
IDs. Missing selections require human repair; the worker never searches the
|
||||
responsible person's other grants for an agent-created source.
|
||||
|
||||
Initial automatic imports reserve company work credits before provider reads.
|
||||
Failures retain the reservation; completed jobs cannot replenish the queue's
|
||||
work allowance. Jobs remain durable and resume as company credits refill.
|
||||
@@ -2,7 +2,9 @@
|
||||
|
||||
Product map: [Steering and queued messages](../feature-map/steering.md).
|
||||
|
||||
Review date: 2026-10-12. Source commit: `f981fa3cc10cb8663a87dec60345fbff46d54d0a`.
|
||||
Review date: 2026-10-12. Source commit: `58e16dbddfc9c8d0cf60867f9d9847f0feda055b`.
|
||||
Native REST transport reconciled in this change; see the
|
||||
[shared transport contract](README.md#native-rest-transport).
|
||||
|
||||
This is a source-reviewed baseline of representative operations and known gaps.
|
||||
Each capability needs operation-level review before its entire scope can be
|
||||
@@ -80,8 +82,8 @@ Verification: `not-run` — assert the documented agent denial with an owned tes
|
||||
verify any listed agent request/result path separately. A delegated operation needs its
|
||||
own policy and access review.
|
||||
|
||||
Gaps: Generic native API blocks this execution control; no authority to impersonate the
|
||||
steering user.
|
||||
Gaps: Steering requires a board user at the HTTP route. Native `call_api`
|
||||
preserves this denial and cannot impersonate the steering user.
|
||||
|
||||
## `interrupt`
|
||||
|
||||
|
||||
@@ -3,7 +3,9 @@
|
||||
Product map: [Delegation, dependencies, and
|
||||
signoff](../feature-map/task-coordination.md).
|
||||
|
||||
Review date: 2026-10-12. Source commit: `f981fa3cc10cb8663a87dec60345fbff46d54d0a`.
|
||||
Review date: 2026-10-12. Source commit: `58e16dbddfc9c8d0cf60867f9d9847f0feda055b`.
|
||||
Native REST transport reconciled in this change; see the
|
||||
[shared transport contract](README.md#native-rest-transport).
|
||||
|
||||
This is a source-reviewed baseline of representative operations and known gaps.
|
||||
Each capability needs operation-level review before its entire scope can be
|
||||
@@ -43,8 +45,8 @@ API: `present` — representative operation IDs:
|
||||
|
||||
- `PATCH /api/issues/{id}`.
|
||||
|
||||
Agent access: `available` — Native set_dependencies for current task; agent REST under
|
||||
mutation/checkout policy.
|
||||
Agent access: `available` — Native set_dependencies for the current task; agent REST
|
||||
/ native `call_api` under mutation and checkout policy.
|
||||
|
||||
Policy: Task visibility/mutation, task-assignment and ownership policy; review audience
|
||||
independent; tree controls board-only.
|
||||
@@ -58,7 +60,8 @@ credentials/run context; inspect its result and applicable persistence/attributi
|
||||
Assert the relevant denied actor, owner, company or mode from Policy. Review the
|
||||
remaining operations before qualifying the whole capability.
|
||||
|
||||
Gaps: Generic native PATCH rejects blockedByIssueIds so use its real dedicated tool.
|
||||
Gaps: Dedicated set_dependencies is current-task scoped. Generic `call_api`
|
||||
forwards blockedByIssueIds to the REST route and retains its ownership checks.
|
||||
|
||||
## `signoff`
|
||||
|
||||
|
||||
@@ -2,7 +2,9 @@
|
||||
|
||||
Product map: [Task creation and lifecycle](../feature-map/tasks.md).
|
||||
|
||||
Review date: 2026-10-12. Source commit: `f981fa3cc10cb8663a87dec60345fbff46d54d0a`.
|
||||
Review date: 2026-10-12. Source commit: `58e16dbddfc9c8d0cf60867f9d9847f0feda055b`.
|
||||
Native REST transport reconciled in this change; see the
|
||||
[shared transport contract](README.md#native-rest-transport).
|
||||
|
||||
This is a source-reviewed baseline of representative operations and known gaps.
|
||||
Each capability needs operation-level review before its entire scope can be
|
||||
@@ -35,6 +37,17 @@ narrower/different APIs.
|
||||
|
||||
## `organize`
|
||||
|
||||
The issue-list API accepts optional `includeAgentCreatedTasks`; false restricts
|
||||
independent results to human creation before search/pagination. Omission retains
|
||||
existing agent/API behavior. `includeParticipatedTasks=true` requires a board user
|
||||
and retains only that authenticated user's existing participation as a creation
|
||||
visibility exception. Company/private-task access checks still apply. Collection
|
||||
preferences and hierarchy presentation are browser state, not additional authority.
|
||||
Source-reviewed behavior; live agent access verification remains separate.
|
||||
|
||||
All `chat_channel` origins count as bot-created for creation visibility, including
|
||||
human-initiated conversations. Existing inbox participation remains independent.
|
||||
|
||||
Review: `baseline`.
|
||||
|
||||
API: `present` — representative operation IDs:
|
||||
@@ -67,8 +80,8 @@ API: `present` — representative operation IDs:
|
||||
- `PATCH /api/issues/{id}`.
|
||||
- `PUT /api/issues/{id}/title`.
|
||||
|
||||
Agent access: `partial` — Native set_task_title/reassign_task/set_dependencies; fallback
|
||||
for permitted non-lifecycle fields; REST.
|
||||
Agent access: `available` — Native set_task_title/reassign_task/set_dependencies and
|
||||
`call_api` for REST-authorized fields; agent REST.
|
||||
|
||||
Policy: Company/task visibility, assignment/change policy, active-run checkout ownership
|
||||
and lifecycle rules. A legacy run can assign its own task to a human without
|
||||
@@ -89,8 +102,8 @@ regressions in [ownership tests](../../server/src/__tests__/issue-agent-mutation
|
||||
cover a human handoff and stop enforcement for other actors, runtimes and targets;
|
||||
they use mocked services and do not claim live execution proof.
|
||||
|
||||
Gaps: Native fallback blocks status/assignment/dependency policy fields. Dedicated tools
|
||||
differ in scope and supported fields.
|
||||
Gaps: Dedicated tools differ in scope and fields. Generic `call_api` forwards
|
||||
status, assignment and dependency fields to existing route authorization.
|
||||
|
||||
## `discussion`
|
||||
|
||||
@@ -115,8 +128,9 @@ credentials/run context; inspect its result and applicable persistence/attributi
|
||||
Assert the relevant denied actor, owner, company or mode from Policy. Review the
|
||||
remaining operations before qualifying the whole capability.
|
||||
|
||||
Gaps: Other-task comments and active-task progress have separate scopes; explicit
|
||||
reopen/interrupt is not a generic comment capability.
|
||||
Gaps: Other-task comments and active-task progress have separate scopes. Generic
|
||||
`call_api` forwards explicit reopen/resume/interrupt fields to the existing route
|
||||
checks; it cannot impersonate a user.
|
||||
|
||||
## `completion`
|
||||
|
||||
@@ -127,7 +141,7 @@ API: `present` — representative operation IDs:
|
||||
- `PATCH /api/issues/{id}`.
|
||||
|
||||
Agent access: `available` — Native paperclip_finish/paperclip_block through runner
|
||||
protocol; legacy agent REST disposition.
|
||||
protocol; agent REST / native `call_api` disposition under route permissions.
|
||||
|
||||
Policy: Company/task visibility, assignment/change policy, active-run checkout ownership
|
||||
and lifecycle rules.
|
||||
@@ -140,5 +154,5 @@ credentials/run context; inspect its result and applicable persistence/attributi
|
||||
Assert the relevant denied actor, owner, company or mode from Policy. Review the
|
||||
remaining operations before qualifying the whole capability.
|
||||
|
||||
Gaps: Server governs whether a reported result becomes done/review/blocked. A generic
|
||||
lifecycle PATCH is intentionally rejected for native runs.
|
||||
Gaps: The server governs whether a reported result becomes done/review/blocked.
|
||||
Generic lifecycle PATCH uses existing REST authorization, checkout and approval rules.
|
||||
@@ -2,7 +2,9 @@
|
||||
|
||||
Product map: [Execution workspaces, services, and files](../feature-map/workspaces.md).
|
||||
|
||||
Review date: 2026-10-12. Source commit: `f981fa3cc10cb8663a87dec60345fbff46d54d0a`.
|
||||
Review date: 2026-10-12. Source commit: `58e16dbddfc9c8d0cf60867f9d9847f0feda055b`.
|
||||
Native REST transport reconciled in this change; see the
|
||||
[shared transport contract](README.md#native-rest-transport).
|
||||
|
||||
This is a source-reviewed baseline of representative operations and known gaps.
|
||||
Each capability needs operation-level review before its entire scope can be
|
||||
@@ -37,6 +39,24 @@ workspace write authority. Accepting a new pending choice advances its binding
|
||||
revision; superseded retries fail while current-choice retries remain idempotent.
|
||||
Binding revisions and request keys fence retries;
|
||||
selection applies at the next normal admission without interrupting a live run.
|
||||
|
||||
Fresh standard-trust tasks with an implicit repository default can use an owned
|
||||
remote clone when the shared default source fails the restricted-task workspace
|
||||
guard. This does not grant access to the private local checkout or its Git metadata.
|
||||
The normal admitted Git identity must already authorize the configured remote.
|
||||
Creation of a fallback source is unavailable for explicit, parent/channel, reused
|
||||
or low-trust selections, or branch templates without a task-derived placeholder;
|
||||
an existing verified owned source remains reusable. Literal branch selections
|
||||
retain the original denial without cloning or replacing their unpublished commits.
|
||||
New implicit Git defaults record project-source provenance. Untyped explicit,
|
||||
inherited and older ambiguous checkout bindings retain the denial; admission reads
|
||||
the current company-scoped binding before considering the fallback.
|
||||
Local paths, unsupported transports and credential-bearing URLs are not fallback
|
||||
sources. Company/task/remote bindings, real paths, Git storage and the exact origin
|
||||
are revalidated for reuse, cleanup and reopening. A failed save removes only the
|
||||
owned task worktree. The [isolated-source service](../../server/src/services/isolated-remote-workspace-source.ts)
|
||||
and its local regression tests establish source and lifecycle boundaries; live
|
||||
agent/provider qualification remains separate.
|
||||
Writable aliases must also be compatible with current and retained physical
|
||||
source projects' trust boundaries. Incompatible choices are rejected before
|
||||
dispatch; a projectless alias cannot bypass required sandbox containment.
|
||||
@@ -119,8 +139,8 @@ API: `present` — representative operation IDs:
|
||||
|
||||
- `POST /api/execution-workspaces/{id}/runtime-services/{action}`.
|
||||
|
||||
Agent access: `partial` — Authorized agent REST / CLI workspace runtime-service /
|
||||
existing stdio MCP controls.
|
||||
Agent access: `available` — Authorized agent REST / native `call_api` / CLI runtime
|
||||
service controls and existing stdio MCP controls.
|
||||
|
||||
Policy: Company/project/workspace visibility and runtime authority; active run, trust
|
||||
preset and task ownership where required.
|
||||
@@ -134,8 +154,9 @@ credentials/run context; inspect its result and applicable persistence/attributi
|
||||
Assert the relevant denied actor, owner, company or mode from Policy. Review the
|
||||
remaining operations before qualifying the whole capability.
|
||||
|
||||
Gaps: Native call_api blocks runtime-service mutation; control_workspace_service is not
|
||||
in the production authority set. Optional MCP availability must be recorded.
|
||||
Gaps: No dedicated production control_workspace_service binding. Generic native
|
||||
calls retain runtime trust and workspace/task scope checks. Optional MCP availability
|
||||
must be recorded.
|
||||
|
||||
## `files-git`
|
||||
|
||||
|
||||
+36
-106
@@ -9,92 +9,16 @@ The sibling [agent access map](../agent-access-map/README.md) records APIs,
|
||||
agent entry points and permission boundaries for the same capability IDs.
|
||||
Follow the [shared map contract](../README.md) when maintaining either map.
|
||||
|
||||
## Features
|
||||
## Browse features
|
||||
|
||||
The map is organized by user capability, not by source file. It covers **35 feature
|
||||
families** across the product, CLI, and operator workflows, checked against source
|
||||
on 2026-10-12. Experimental and developer-only surfaces are labeled explicitly.
|
||||
Each recipe includes sub-features, current entry points, automated evidence,
|
||||
manual verification steps, and gotchas.
|
||||
Open the [published Storybook guide](https://d1p6rlowie26tp.cloudfront.net/storybook/branches/master/?path=/story/overview-storybook-guide--coverage-guide)
|
||||
for the assembled feature and capability index. The Markdown recipes in this
|
||||
directory are the authored source. Each has a same-named agent-access companion.
|
||||
|
||||
### Getting started and access
|
||||
|
||||
| Feature | What it covers |
|
||||
| --- | --- |
|
||||
| [Onboarding and first work](./onboarding.md) | Instance setup, company wizard, first agent and task. |
|
||||
| [Login, invitations, and access](./access.md) | Sessions, bootstrap, membership, roles, and CLI authorization. |
|
||||
| [Companies and portability](./companies.md) | Company switching/settings, archival, package import/export. |
|
||||
|
||||
### Tasks and conversations
|
||||
|
||||
| Feature | What it covers |
|
||||
| --- | --- |
|
||||
| [Task creation and lifecycle](./tasks.md) | Creation, assignment, lists, properties, comments, and completion. |
|
||||
| [Delegation, dependencies, and signoff](./task-coordination.md) | Child work, prerequisites, reviewers, and task-tree controls. |
|
||||
| [Inbox, decisions, and search](./inbox-search.md) | Personal triage, decision queues, unread/blocked views, and search. |
|
||||
| [Agent conversations and project handoff](./agent-chat.md) | Persistent conversations, discovery, handoff, and gated board chat. |
|
||||
| [Questions and approvals](./questions-and-approvals.md) | Question/plan responses, formal approvals, and app-tool review. |
|
||||
| [Steering and queued messages](./steering.md) | Follow-ups, queue edits, interruption, and pause/resume. |
|
||||
| [Documents, attachments, and work products](./documents-artifacts.md) | Versioned documents, annotations, files, outputs, and artifact library. |
|
||||
|
||||
### Agents and reusable capabilities
|
||||
|
||||
| Feature | What it covers |
|
||||
| --- | --- |
|
||||
| [Hiring, configuration, and organization](./agents.md) | Agent identity, instructions, reporting lines, lifecycle, and built-ins. |
|
||||
| [Runs, harnesses, and model accounts](./runs-adapters.md) | Adapter/model setup, account validation, transcripts, and run history. |
|
||||
| [Skills and Skill Studio](./skills.md) | Discovery, sources, authoring, revisions, tests, and agent policies. |
|
||||
| [Team packages and installation](./teams.md) | Catalog preview/install via CLI/API; catalog UI availability called out. |
|
||||
|
||||
### Projects and execution
|
||||
|
||||
| Feature | What it covers |
|
||||
| --- | --- |
|
||||
| [Projects and repositories](./projects.md) | Project lifecycle, task context, repository configuration, and defaults. |
|
||||
| [Goals and work alignment](./goals.md) | Goal hierarchy, ownership, status, and project/task context. |
|
||||
| [Workspaces, services, and files](./workspaces.md) | Provisioning, task bindings, services/logs, Git/files, and closure. |
|
||||
| [Execution environments](./execution-environments.md) | Local, SSH, sandbox providers, target probes, and custom images. |
|
||||
| [Recovery](./recovery.md) | Stopped work, workspace repair, bounded continuation, and reconnect. |
|
||||
|
||||
### Apps, channels, and extensions
|
||||
|
||||
| Feature | What it covers |
|
||||
| --- | --- |
|
||||
| [Connection setup](./connection-setup.md) | Catalog, MCP links, task requests, authentication, and setup resumption. |
|
||||
| [App access and action permissions](./app-permissions.md) | Agent grants, off/ask/allowed actions, discovery, tests, and revocation. |
|
||||
| [External chat and email](./chat-channels.md) | Provider-specific identity, threads, files, delivery, and endpoint upkeep. |
|
||||
| [Tool gateways and access profiles](./gateways-profiles.md) | Tool exposure, client configuration, tokens, profiles, and activity. |
|
||||
| [Secrets and proposals](./secrets.md) | Company/user credentials, grants, proposals, and vault import. |
|
||||
| [Plugins](./plugins.md) | Installation/configuration, contributed pages/tools, and lifecycle. |
|
||||
|
||||
### Automation and structured work
|
||||
|
||||
| Feature | What it covers |
|
||||
| --- | --- |
|
||||
| [Routines, schedules, and triggers](./routines.md) | Definitions, variables, scheduled/webhook/manual runs, and history. |
|
||||
| [Pipelines, review queues, and learnings](./pipelines.md) | Experimental stages, automation, items, review, and learning records. |
|
||||
| [Cases](./cases.md) | Experimental structured fields, relationships, revisions, and task links. |
|
||||
| [Status cards](./status-cards.md) | Experimental summaries, watched work, refresh history, and settings. |
|
||||
|
||||
### Oversight and operation
|
||||
|
||||
| Feature | What it covers |
|
||||
| --- | --- |
|
||||
| [Costs and budgets](./budgets-costs.md) | Spend reports, scoped limits, incidents, hard stops, and resumption. |
|
||||
| [Dashboards and audit trails](./activity.md) | Company health, live work, activity, runs, routines, and timeline. |
|
||||
| [Navigation, profile, and announcements](./navigation-preferences.md) | Sidebar state, favorites/recents, personal identity, and dismissals. |
|
||||
| [Instance operations](./instance-operations.md) | Installation, updates, service health, configuration, and backups. |
|
||||
| [CLI/API and local worktrees](./cli-operations.md) | Explicit context, resource commands, outputs, runs, and isolated instances. |
|
||||
|
||||
### Contributor surfaces
|
||||
|
||||
| Feature | What it covers |
|
||||
| --- | --- |
|
||||
| [Developer previews and diagnostic labs](./developer-labs.md) | Design examples, interaction fixtures, performance checks; not production acceptance. |
|
||||
|
||||
These are verification instructions, not a claim that every journey passed a live
|
||||
test. A component test proves its component; a scripted provider proves that
|
||||
fixture integration. Record executed results separately from the map.
|
||||
Run `node scripts/storybook-catalog.mjs` to generate local navigation in
|
||||
`maps/generated/feature-map.md`, `maps/generated/agent-access-map.md`, and the
|
||||
Storybook guide. A new recipe is discovered automatically; do not register it in
|
||||
this README or maintain counts here.
|
||||
|
||||
## Before driving a journey
|
||||
|
||||
@@ -142,40 +66,46 @@ For Paperclip-assigned work, attach evidence through the
|
||||
|
||||
## Inventory and remaining depth
|
||||
|
||||
[The UI coverage inventory](./coverage.json) accounts for every non-test TSX
|
||||
module under `ui/src/pages`, including supporting panels, legacy variants, and
|
||||
labs. Every product area now links to concrete recipes. **Partial** means the
|
||||
area still has the named variant or workflow gaps; **unmapped** is reserved for
|
||||
an area with no recipe. These statuses describe documentation, not runtime health.
|
||||
|
||||
The page inventory is a source snapshot dated 2026-10-05. The map also
|
||||
includes entry points hosted inside other modules (pipeline Review Queue and
|
||||
Learnings, task documents, onboarding), CLI-only operations, and operator work.
|
||||
The team recipe explicitly distinguishes the current CLI/API path from catalog
|
||||
UI components without a current top-level route. Refer to [route registration](../../ui/src/App.tsx)
|
||||
and the [CLI registry](../../cli/src/index.ts) when changing reachability.
|
||||
|
||||
Remaining depth includes complete provider/auth/attachment matrices, every
|
||||
harness/model/environment capability combination, third-party plugin features,
|
||||
and every role/error/mobile/legacy-shell permutation. The recipes name relevant
|
||||
gaps instead of equating source presence with a working user journey. The index
|
||||
can include capabilities that do not add a page file.
|
||||
The generated `maps/generated/coverage.json` lists the current non-test TSX page
|
||||
modules and the recipes that directly reference each one. An unreferenced module
|
||||
is a documentation candidate, not proof that its feature is absent or untested.
|
||||
Remaining workflow limits live in each recipe. Inventory and example associations
|
||||
describe documentation scope, not runtime health.
|
||||
|
||||
## Maintaining the reference
|
||||
|
||||
The map documents user journeys. It does not execute them automatically;
|
||||
`coverage.json` records documentation scope rather than live test health.
|
||||
generated inventories record documentation scope rather than live test health.
|
||||
|
||||
When maintaining a recipe, compare its entry points and expected results with
|
||||
the current source. Check that linked tests still exercise the stated behavior
|
||||
and that local references still exist. Refresh the inventory snapshot when it
|
||||
helps explain the current product. Keep the same-named agent access companion
|
||||
and that local references still exist. Keep the same-named agent access companion
|
||||
and stable sub-feature IDs aligned when behavior or access changes. Source-only
|
||||
access inventory remains distinct from live verification. Run
|
||||
`node scripts/check-maps.mjs` after map edits for structural/reference checks;
|
||||
follow the shared contract for the source and behavioral checks it cannot perform.
|
||||
|
||||
Each recipe starts with an H1 and a user-visible description, then exactly:
|
||||
Each recipe starts with a small frontmatter navigation record, then an H1:
|
||||
|
||||
```markdown
|
||||
---
|
||||
navigation: {"section":"Tasks and conversations","sectionOrder":20,"order":10}
|
||||
---
|
||||
```
|
||||
|
||||
The H1 supplies the feature title, and the first paragraph supplies its summary.
|
||||
Orders are local to the section; leave gaps for additions. Equal orders use the
|
||||
stable filename as a tie-breaker. Keep a section's name/order consistent across
|
||||
its recipes. A new feature or capability needs only its recipe and companion.
|
||||
|
||||
Optional `### Storybook verification` guidance lives inside the recipe's Gotchas
|
||||
section. Each level-four heading contains a backtick-quoted capability key and
|
||||
has `Scope` (`ui`, `cli`, or `browser`),
|
||||
`Storybook`, `Production`, and `Sources` fields. These are verification instructions
|
||||
and intentional scope limits, not run results or a required story for every API.
|
||||
The generated gap report combines this guidance with current story associations.
|
||||
|
||||
After frontmatter, each recipe starts with an H1 and a user-visible description, then exactly:
|
||||
|
||||
1. **Sub-features** — stable backticked IDs and observable behavior/states.
|
||||
2. **How to get to it (user POV)** — one H3 backticked entry-point ID per surface.
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
---
|
||||
navigation: {"section":"Getting started and access","sectionOrder":10,"order":20}
|
||||
---
|
||||
|
||||
# Login, invitations, and access
|
||||
|
||||
People and agents enter the correct instance and company with the permissions granted to their identity. Login, membership, resource access, and CLI authorization have separate controls.
|
||||
@@ -62,3 +66,26 @@ logout alone does not establish that server revocation succeeded.
|
||||
- Settings visibility is not authorization; direct requests still need permission checks.
|
||||
- An agent bearer key must not gain another company’s access.
|
||||
- Never put invite tokens, session cookies, or API keys in verification evidence.
|
||||
|
||||
### Storybook verification
|
||||
|
||||
#### `login`
|
||||
|
||||
Scope: ui
|
||||
Storybook: Sign-in form, pending and invalid credentials, deployment-mode claim gate, expired claim.
|
||||
Production: Authenticate and reload company deep link; sign out and confirm session enforcement; reject invalid bootstrap claim.
|
||||
Sources: 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)
|
||||
|
||||
#### `membership`
|
||||
|
||||
Scope: ui
|
||||
Storybook: Member and join-request lists; editable versus read-only roles; pending change, rejected request, revoked invite.
|
||||
Production: Persist role/membership changes; enforce actual actor authority, invite replay/expiry and cross-company denial.
|
||||
Sources: Source: [CompanyAccess.tsx](../../ui/src/pages/CompanyAccess.tsx), [authz.ts](../../server/src/routes/authz.ts). Tests: [CompanyAccess.test.tsx](../../ui/src/pages/CompanyAccess.test.tsx), [invite-accept-replay.test.ts](../../server/src/__tests__/invite-accept-replay.test.ts), [multi-user-authenticated.spec.ts](../../tests/e2e/multi-user-authenticated.spec.ts)
|
||||
|
||||
#### `cli-auth`
|
||||
|
||||
Scope: ui
|
||||
Storybook: CLI authorization approval, pending, expired/denied and already-authorized states.
|
||||
Production: Authorize intended CLI identity/context, make scoped request, revoke current server token and retry same bearer; logout alone is insufficient.
|
||||
Sources: Source: [CliAuth.tsx](../../ui/src/pages/CliAuth.tsx). Tests: [cli-auth-routes.test.ts](../../server/src/__tests__/cli-auth-routes.test.ts), [board-auth.test.ts](../../cli/src/__tests__/board-auth.test.ts), [token.test.ts](../../cli/src/__tests__/token.test.ts)
|
||||
@@ -1,4 +1,8 @@
|
||||
# Dashboards, activity, and audit trails
|
||||
---
|
||||
navigation: {"section":"Oversight and operation","sectionOrder":70,"order":20}
|
||||
---
|
||||
|
||||
# Dashboards and audit trails
|
||||
|
||||
People inspect company health, recent activity, run history, and routine activity, then follow evidence back to the task or agent responsible.
|
||||
|
||||
@@ -56,3 +60,16 @@ the routine rather than treating that component test as a reachable journey.
|
||||
- Audit/activity events, run-log rows, first-party Telemetry, and operator OpenTelemetry traces are separate data paths.
|
||||
- A healthy stream or dashboard counter alone does not prove task success.
|
||||
- Cost and budget reports have their own [recipe](./budgets-costs.md).
|
||||
|
||||
### Storybook verification
|
||||
|
||||
#### `runs`
|
||||
|
||||
Scope: ui
|
||||
Storybook: Mount AuditRuns selected status/agent/routine, linked task/agent, empty/loading/error/retry and 200-entry limit. Do not invent pagination.
|
||||
Production: GET /companies/{id}/heartbeat-runs and /routines/{id}/runs require company/read/privacy checks; real browser follows context links and confirms the referenced execution.
|
||||
Company run history defaults to 200 rows and caps explicit limits at 1,000.
|
||||
Summary contexts omit stored prompts and expand JSON once per returned row.
|
||||
The array response and run visibility/redaction checks remain in place.
|
||||
Agent detail links resolve older runs by ID outside the recent history page.
|
||||
Sources: Source: [AuditRuns.tsx](../../ui/src/pages/audit/AuditRuns.tsx), [heartbeats.ts](../../ui/src/api/heartbeats.ts), [routines.ts](../../ui/src/api/routines.ts). Tests: [AuditRuns.test.tsx](../../ui/src/pages/audit/AuditRuns.test.tsx), [heartbeat-run-privacy-routes.test.ts](../../server/src/__tests__/heartbeat-run-privacy-routes.test.ts), [routines-service.test.ts](../../server/src/__tests__/routines-service.test.ts)
|
||||
@@ -1,3 +1,7 @@
|
||||
---
|
||||
navigation: {"section":"Tasks and conversations","sectionOrder":20,"order":40}
|
||||
---
|
||||
|
||||
# Agent conversations and project handoff
|
||||
|
||||
A person can hold a persistent conversation with an agent, return to its history, and hand useful work into a project or task. The gated conference-room chat is a separate conversation surface.
|
||||
@@ -61,3 +65,12 @@ Manual: Check disabled access first, enable in the disposable instance, then sen
|
||||
- Idle chat is not failed execution.
|
||||
- See [steering](./steering.md) for in-flight messages and [questions](./questions-and-approvals.md) for interactions.
|
||||
- An API tool test does not prove that every harness will choose the same handoff tool.
|
||||
|
||||
### Storybook verification
|
||||
|
||||
#### `conference-room`
|
||||
|
||||
Scope: ui
|
||||
Storybook: Conference-room flag disabled, empty/history/reply, busy and explicit failure states.
|
||||
Production: Exercise separate BoardChat route gate, local-trusted deployment and authenticated Claude CLI; send/reload real conversation with responding agent attribution.
|
||||
Sources: Source: [BoardChat.tsx](../../ui/src/pages/BoardChat.tsx), [board-chat.ts](../../server/src/routes/board-chat.ts). Tests: [BoardChat.test.tsx](../../ui/src/pages/BoardChat.test.tsx), [board-chat-route-feature-flag.test.ts](../../server/src/__tests__/board-chat-route-feature-flag.test.ts)
|
||||
@@ -1,4 +1,8 @@
|
||||
# Hiring, agent configuration, and organization
|
||||
---
|
||||
navigation: {"section":"Agents and reusable capabilities","sectionOrder":30,"order":10}
|
||||
---
|
||||
|
||||
# Hiring, configuration, and organization
|
||||
|
||||
Operators hire agents, configure their identity and instructions, assign reporting relationships, and manage their lifecycle. Built-in agents have their own setup and lifecycle constraints.
|
||||
|
||||
@@ -10,8 +14,10 @@ Agent access: [companion](../agent-access-map/agents.md).
|
||||
|
||||
- `hire`: choose identity, harness, model, and required account settings; edit
|
||||
reporting relationships through the agent configuration afterward.
|
||||
- `grok-bot`: experimental existing-Bot agent setup through remote OAuth, routine credentials, and an authenticated two-way challenge; current contact, stop and explicit recovery.
|
||||
- `instructions`: edit agent configuration and instruction files with durable revisions.
|
||||
- `organization`: inspect and change reporting relationships through supported controls.
|
||||
- `primary-agent`: choose a personal primary agent for the company, confirm replacement, and inspect its roster/sidebar and task/chat defaults.
|
||||
- `lifecycle`: pause/resume or retire an agent while preserving history.
|
||||
- `built-in`: configure required agents without treating them as ordinary removable hires.
|
||||
|
||||
@@ -29,6 +35,11 @@ Open `/agents/:agentId` and the configuration/instruction surfaces it exposes.
|
||||
|
||||
Use the roster’s organization view; `/org` redirects to the roster in the streamlined shell.
|
||||
|
||||
### `personal-primary-agent`
|
||||
|
||||
Open an agent profile and choose **Set as my primary**. Inspect its crown on the
|
||||
profile/roster and its position in the Agents sidebar, then open a new task or Chat.
|
||||
|
||||
## Driving it with Playwright and the Paperclip CLI
|
||||
|
||||
Preconditions: follow the [baseline](./README.md#before-driving-a-journey). Use a disposable company and supported adapter; hiring may require a formal approval.
|
||||
@@ -92,8 +103,34 @@ Automated: [org chart](../../ui/src/pages/OrgChart.test.tsx) is component eviden
|
||||
|
||||
Manual: Inspect a manager and report, change the relationship through the offered controls, and reload both views. Exercise a rejected invalid relationship. Configure a built-in agent and verify it retains its required identity and restrictions.
|
||||
|
||||
### `personal-primary-agent`
|
||||
|
||||
Automated: [primary-agent context](../../ui/src/context/PrimaryAgentProvider.test.tsx)
|
||||
and [primary-agent routes](../../server/src/__tests__/primary-agent.test.ts)
|
||||
cover selection, company/user scope, and request contracts.
|
||||
|
||||
Manual: Select an available agent, reload, and inspect the retained personal choice.
|
||||
Replace it and verify confirmation is required. Leave or terminate the selected
|
||||
agent through permitted controls and inspect the unavailable/cleared state.
|
||||
Switch company/user to check isolation. Open a task and Chat with a
|
||||
valid draft or recent selection; verify those explicit choices take precedence
|
||||
over the primary fallback. Opening Chat must not start execution.
|
||||
|
||||
## Gotchas
|
||||
|
||||
- A roster entry is not proof of an authenticated or invokable adapter.
|
||||
- Pending hires may live in approval/task surfaces rather than the active roster.
|
||||
- Skill and tool grants are separate: see [skills](./skills.md) and [app permissions](./app-permissions.md).
|
||||
- A personal primary agent is a per-user/company preference. It does not change
|
||||
reporting lines, stars, permissions, or another person's primary agent.
|
||||
|
||||
### `connect-grok-bot`
|
||||
|
||||
Choose **Invite an external agent → Grok Bot**, identify the Bot by its desktop name, connect its remote MCP plugin, configure a webhook-only routine, and verify delivery plus authenticated reply. Save & exit resumes the same agent. Keep pairing codes in browser authorization and routine credentials in Paperclip’s fields. A working Bot web URL is not required.
|
||||
|
||||
Prerequisites: authenticated public HTTPS, Assistant connections (MCP), Paperclip Runner and Grok Bot experimental settings. Cloud uses its normal managed Runner environment. Provider usage is unknown. Routine uncertainty blocks new assignments until explicit inspection and recovery; stopping work revokes Paperclip authority without confirming remote termination.
|
||||
|
||||
Evidence: source implementation and focused protocol tests; real provider assigned/proactive workflows and deployed managed acceptance remain release gates.
|
||||
### Documentation scope: Agents, organization, and runtime setup
|
||||
|
||||
Per-harness/model/account capabilities, every instruction-file error, and complete built-in-agent lifecycle variants remain separate qualification matrices.
|
||||
@@ -1,4 +1,8 @@
|
||||
# App access, action permissions, and testing
|
||||
---
|
||||
navigation: {"section":"Apps, channels, and extensions","sectionOrder":50,"order":20}
|
||||
---
|
||||
|
||||
# App access and action permissions
|
||||
|
||||
After connecting an app, an operator decides which agents may use it and whether each action is off, requires approval, or is allowed. Activity and action tests help verify the resulting access.
|
||||
|
||||
@@ -45,3 +49,12 @@ Manual: Run a read-only action with explicit inputs and inspect returned data an
|
||||
- Connected does not imply an agent has access or an action is allowed.
|
||||
- Credential-only connections may replace tool-action controls with account-specific controls.
|
||||
- See [connection setup](./connection-setup.md) for auth and [questions and approvals](./questions-and-approvals.md) for pending action review.
|
||||
|
||||
### Storybook verification
|
||||
|
||||
#### `catalog-change`
|
||||
|
||||
Scope: ui
|
||||
Storybook: Mount PermissionsPanel/AppDetail with quarantined actions, selection/review, refresh pending, empty and failed discovery states. Existing auto-allowed NewToolsAllowed examples are not quarantine review.
|
||||
Production: Exercise catalog refresh and new-tool review with permitted/denied actors; unreviewed actions stay quarantined, prior Off/Ask choices survive refresh, and approved review persists.
|
||||
Sources: Source: [PermissionsPanel.tsx](../../ui/src/pages/apps/app-detail/PermissionsPanel.tsx), [AppDetail.tsx](../../ui/src/pages/apps/AppDetail.tsx), [tool-access.ts](../../server/src/routes/tool-access.ts). Tests: [AppDetail.test.tsx](../../ui/src/pages/apps/AppDetail.test.tsx), [tool-access-service.test.ts](../../server/src/__tests__/tool-access-service.test.ts), [tool-access-policy-service.test.ts](../../server/src/__tests__/tool-access-policy-service.test.ts)
|
||||
@@ -1,4 +1,8 @@
|
||||
# Costs, budgets, and spending controls
|
||||
---
|
||||
navigation: {"section":"Oversight and operation","sectionOrder":70,"order":10}
|
||||
---
|
||||
|
||||
# Costs and budgets
|
||||
|
||||
Operators inspect recorded spend and configure budget controls for the company, projects, and agents. Hard stops pause or prevent eligible work until the governing incident is resolved.
|
||||
|
||||
@@ -47,3 +51,12 @@ Manual: Create a small fixture budget, cross its threshold with synthetic record
|
||||
- Paperclip cost accounting is not a provider invoice or a promise about externally billed spend.
|
||||
- Company, project, and agent gates can overlap; fixing one may leave another active.
|
||||
- A successful retry must not bypass an unresolved budget hold.
|
||||
|
||||
### Storybook verification
|
||||
|
||||
#### `resolution`
|
||||
|
||||
Scope: ui
|
||||
Storybook: Mount BudgetIncidentCard with entered raised limit, invalid limit, keep-paused, applying, authorized/blocked and error states wired through actual host. Existing matrix handlers are no-ops.
|
||||
Production: POST /companies/{id}/budget-incidents/{id}/resolve must authorize scope-specific raise, persist resolution and resume eligible work while retaining overlapping budget/manual holds.
|
||||
Sources: Source: [BudgetIncidentCard.tsx](../../ui/src/components/BudgetIncidentCard.tsx), [Costs.tsx](../../ui/src/pages/Costs.tsx), [budgets.ts](../../ui/src/api/budgets.ts), [costs.ts](../../server/src/routes/costs.ts), [budgets.ts](../../server/src/services/budgets.ts). Tests: [budgets-service.test.ts](../../server/src/__tests__/budgets-service.test.ts), [Costs.test.tsx](../../ui/src/pages/Costs.test.tsx)
|
||||
@@ -1,4 +1,8 @@
|
||||
# Cases and structured work records
|
||||
---
|
||||
navigation: {"section":"Automation and structured work","sectionOrder":60,"order":30}
|
||||
---
|
||||
|
||||
# Cases
|
||||
|
||||
The cases experiment exposes structured records with types, fields, parent/child relationships, activity, revisions, and related task work.
|
||||
|
||||
@@ -49,3 +53,33 @@ pipeline-owned item from a stand-alone case.
|
||||
- Feature gating and offered controls determine available actions. The API
|
||||
accepts a string case type and arbitrary JSON fields; do not infer typed
|
||||
case-field validation or a field-editing UI from those values.
|
||||
|
||||
### Storybook verification
|
||||
|
||||
#### `browse`
|
||||
|
||||
Scope: ui
|
||||
Storybook: Mount Cases search/filter/sort/group/tree, matched-child parent context, persisted view choices, keyboard navigation and empty/loading/error.
|
||||
Production: GET /companies/{id}/cases scope/filter behavior is production evidence; rendered fixtures establish presentation only. Mutation/permission scenarios need real API checks separately.
|
||||
Sources: Source: [Cases.tsx](../../ui/src/pages/Cases.tsx), [cases.ts](../../server/src/routes/cases.ts). Tests: [Cases.test.tsx](../../ui/src/pages/Cases.test.tsx), [cases-routes.test.ts](../../server/src/__tests__/cases-routes.test.ts)
|
||||
|
||||
#### `structure`
|
||||
|
||||
Scope: ui
|
||||
Storybook: Mount CaseDetail and CaseFieldsPanel with arbitrary JSON fields and parent/children, matching descendants and unavailable child. Do not invent a general field editor or typed field validation.
|
||||
Production: GET /cases/{id} and /cases/{id}/children/tree must return permitted company records and correct relationships; changes/persistence require route tests separately.
|
||||
Sources: Source: [CaseDetail.tsx](../../ui/src/pages/CaseDetail.tsx), [CaseFieldsPanel.tsx](../../ui/src/components/CaseFieldsPanel.tsx), [Cases.tsx](../../ui/src/pages/Cases.tsx), [cases.ts](../../server/src/routes/cases.ts), [pipelines.ts](../../server/src/routes/pipelines.ts). Tests: [CaseFieldsPanel.test.tsx](../../ui/src/components/CaseFieldsPanel.test.tsx), [Cases.test.tsx](../../ui/src/pages/Cases.test.tsx), [CaseDetail.test.tsx](../../ui/src/pages/CaseDetail.test.tsx), [cases-routes.test.ts](../../server/src/__tests__/cases-routes.test.ts)
|
||||
|
||||
#### `history`
|
||||
|
||||
Scope: ui
|
||||
Storybook: Mount CaseDetail activity and document revisions as distinct views, empty/loading/errors, attribution and source links.
|
||||
Production: GET /cases/{id}/events and /cases/{id}/documents/{key}/revisions require company/access filtering; a fixture list does not establish durable revision creation or restoration.
|
||||
Sources: Source: [CaseDetail.tsx](../../ui/src/pages/CaseDetail.tsx), [cases.ts](../../server/src/routes/cases.ts). Tests: [CaseDetail.test.tsx](../../ui/src/pages/CaseDetail.test.tsx), [cases-routes.test.ts](../../server/src/__tests__/cases-routes.test.ts)
|
||||
|
||||
#### `task-links`
|
||||
|
||||
Scope: ui
|
||||
Storybook: Mount CaseDetail and IssueCasesPanel related-task/case links in both directions, missing links and unavailable targets.
|
||||
Production: GET /issues/{id}/cases and /cases/{id}/issue-links must enforce permitted task/case relationships; production browser cold links verify destination and company context.
|
||||
Sources: Source: [CaseDetail.tsx](../../ui/src/pages/CaseDetail.tsx), [IssueCasesPanel.tsx](../../ui/src/components/IssueCasesPanel.tsx), [cases.ts](../../server/src/routes/cases.ts), [pipelines.ts](../../server/src/routes/pipelines.ts). Tests: [IssueCasesPanel.test.tsx](../../ui/src/components/IssueCasesPanel.test.tsx), [CaseDetail.test.tsx](../../ui/src/pages/CaseDetail.test.tsx), [cases-routes.test.ts](../../server/src/__tests__/cases-routes.test.ts)
|
||||
@@ -1,4 +1,8 @@
|
||||
# External chat and email conversations
|
||||
---
|
||||
navigation: {"section":"Apps, channels, and extensions","sectionOrder":50,"order":30}
|
||||
---
|
||||
|
||||
# External chat and email
|
||||
|
||||
People can talk to an assigned agent through configured external channels, bind their identity, exchange files, and inspect delivery state. Each provider has a different identity, threading, and attachment contract.
|
||||
|
||||
@@ -8,7 +12,7 @@ Agent access: [companion](../agent-access-map/chat-channels.md).
|
||||
|
||||
## Sub-features
|
||||
|
||||
- `providers`: configure the available Slack, Discord, Microsoft Teams, Telegram, GitHub, AgentMail, and experimental iMessage Photon paths; availability still depends on gates and provider support.
|
||||
- `providers`: configure the available Slack, Discord, Microsoft Teams, Telegram, GitHub, AgentMail, and experimental iMessage Photon and Speko paths; availability still depends on gates and provider support.
|
||||
- `identity`: link the external sender to the intended authorized Paperclip identity.
|
||||
- `conversation`: route inbound messages to the selected agent and send replies to the correct thread.
|
||||
- `attachments`: transfer supported files with inspectable delivery and failure states.
|
||||
@@ -38,17 +42,44 @@ Automated: [channel integration](../../server/src/__tests__/chat-channels.integr
|
||||
|
||||
Manual: For each supported provider being changed, send a unique message, verify the intended agent/company receives it, and inspect the actual external reply in the original thread. Repeat with an unlinked/unauthorized sender, duplicate inbound delivery, and one supported attachment. Record provider-specific results separately.
|
||||
|
||||
For Slack, enable **Require at-mention** and **Allow direct messages**. Send a
|
||||
plain DM and follow up without a mention: both should reach the agent, with
|
||||
top-level replies to top-level DMs. Channel messages and thread replies still
|
||||
require a mention when that setting is enabled. Disable direct messages and
|
||||
confirm a plain DM is rejected. Use a private channel for threaded conversations.
|
||||
|
||||
### `endpoint-management`
|
||||
|
||||
Automated: [channel integration](../../server/src/__tests__/chat-channels.integration.test.ts) covers shared endpoint/delivery behavior; live credential repair and provider ownership remain manual checks.
|
||||
|
||||
Manual: Inspect the bound agent and identity, recent activity, and delivery failure details. Repair a disposable credential, retry a safe message when offered, and verify exactly one external reply. Disable the endpoint and confirm new traffic is not silently processed.
|
||||
|
||||
For GitHub, submit a disposable PR and verify the summary heading uses the bot's
|
||||
display name and the check remains **Paperclip Review**. For two separate bots on one PR, verify
|
||||
their App-scoped checks and comments remain independent.
|
||||
|
||||
For GitHub publication recovery, interrupt a response after GitHub accepts a
|
||||
write and verify one summary, finding, and App-scoped check. Retry the same tool
|
||||
call and verify it returns the saved receipt. Leave a transient failure queued,
|
||||
restart the instance, and verify publication resumes at its saved deadline
|
||||
without another inbound message. Revoked access and permanent rejections must
|
||||
stop retries. These recipes are separate from live provider proof.
|
||||
|
||||
Configure optional project and workspace defaults at the connection and destination
|
||||
levels. Start a new conversation and inspect its task workspace. Verify that
|
||||
inheritance, an explicit selection, and clearing a default remain distinct.
|
||||
Changing defaults must not move an existing conversation or interrupt its run.
|
||||
|
||||
For experimental Speko, enable chat connectors, choose an agent during setup,
|
||||
and verify the provider credentials. On an assigned task, use **Talk to agent**
|
||||
to open browser voice controls. Check microphone denial, mute, end/restart,
|
||||
navigation during a call, and access revocation. Inspect transcripts and the
|
||||
connection's call history. Callback preferences, incoming phone configuration,
|
||||
and incoming-call approval are separate settings and authorization journeys.
|
||||
The [voice components](../../ui/src/components/voice/TaskVoiceLauncher.tsx)
|
||||
and fixture tests cover presentation; they do not establish live answer retrieval
|
||||
or telephone playback. Those provider outcomes remain explicit release gates.
|
||||
|
||||
## Gotchas
|
||||
|
||||
- Visibility flags do not pause existing delivery. Disable the disposable
|
||||
@@ -57,3 +88,16 @@ Changing defaults must not move an existing conversation or interrupt its run.
|
||||
- One provider’s passing fixture does not qualify another provider or live delivery.
|
||||
- An accepted send request does not prove the recipient received the message or file.
|
||||
- Use [steering](./steering.md) and [questions](./questions-and-approvals.md) for their channel-specific interaction checks.
|
||||
|
||||
### Storybook verification
|
||||
|
||||
#### `attachments`
|
||||
|
||||
Scope: ui
|
||||
Storybook: Mount TaskChatBubble attachments and ChatEndpointDetail provider-specific consent/upload/delivery failure and unknown-outcome states. Local email attachment dialog remains a prototype.
|
||||
Production: Transfer a disposable supported file through each affected provider; verify recipient delivery, read scope, duplicate/replay handling and failure/unknown state without treating notification as file-upload proof.
|
||||
Sources: Source: [TaskChatBubble.tsx](../../ui/src/components/task-chat/TaskChatBubble.tsx), [ChatEndpointDetail.tsx](../../ui/src/pages/apps/chat/ChatEndpointDetail.tsx), [chatEndpoints.ts](../../ui/src/api/chatEndpoints.ts), [chat-channels.ts](../../server/src/routes/chat-channels.ts). Tests: [TaskChatBubble.test.tsx](../../ui/src/components/task-chat/TaskChatBubble.test.tsx), [task-chat-attachments.test.ts](../../ui/src/components/task-chat/task-chat-attachments.test.ts), [chat-channels.integration.test.ts](../../server/src/__tests__/chat-channels.integration.test.ts), [issue-attachment-routes.test.ts](../../server/src/__tests__/issue-attachment-routes.test.ts)
|
||||
|
||||
### Documentation scope: Chat and email channel setup
|
||||
|
||||
Shared recipes name provider checks; each provider transport/thread/identity/file-size/type combination needs separate live evidence and deeper instructions.
|
||||
@@ -1,4 +1,8 @@
|
||||
# CLI, API clients, and local worktrees
|
||||
---
|
||||
navigation: {"section":"Oversight and operation","sectionOrder":70,"order":50}
|
||||
---
|
||||
|
||||
# CLI/API and local worktrees
|
||||
|
||||
Operators and agents can work through explicit CLI/API context, manage domain resources, inspect runs, and create isolated local worktree instances for development.
|
||||
|
||||
@@ -60,3 +64,40 @@ Manual: Initialize an owned disposable worktree instance, inspect its printed pa
|
||||
- API success proves its contract, not the equivalent browser creation journey.
|
||||
- The CLI command registry is broader than the UI page inventory; new command families need a recipe review.
|
||||
- See [instance operations](./instance-operations.md) for install/update/backup and feature-specific recipes for domain behavior.
|
||||
|
||||
### Storybook verification
|
||||
|
||||
#### `context`
|
||||
|
||||
Scope: cli
|
||||
Storybook: No authored story required for CLI profile/context selection.
|
||||
Production: Verify selected API origin, identity and company, JSON output and invalid-token/wrong-company failures. A persona label is not authentication.
|
||||
Sources: Source: [context.ts](../../cli/src/commands/client/context.ts). Tests: [context.test.ts](../../cli/src/__tests__/context.test.ts), [http.test.ts](../../cli/src/__tests__/http.test.ts)
|
||||
|
||||
#### `domain-commands`
|
||||
|
||||
Scope: cli
|
||||
Storybook: No authored story required for command parsing and domain API execution; corresponding product UI keeps its own story needs.
|
||||
Production: Discover registered help, use a disposable company, assert persisted mutations and denied operations with the actual actor. Command parity is not every endpoint passing live.
|
||||
Sources: Source: [index.ts](../../cli/src/index.ts), [issue.ts](../../cli/src/commands/client/issue.ts). Tests: [operations-parity.test.ts](../../cli/src/__tests__/operations-parity.test.ts)
|
||||
|
||||
#### `outputs`
|
||||
|
||||
Scope: cli
|
||||
Storybook: No authored story required for CLI document/asset/skill IO or machine-readable output.
|
||||
Production: Assert payload/schema, exit code, written contents, authorization and file integrity. Open the resulting document/asset in the product for cross-surface acceptance.
|
||||
Sources: Source: [issue.ts](../../cli/src/commands/client/issue.ts), [asset.ts](../../cli/src/commands/client/asset.ts), [skill.ts](../../cli/src/commands/client/skill.ts). Tests: [issue-subresources.test.ts](../../cli/src/__tests__/issue-subresources.test.ts), [admin-asset-skill-parity.test.ts](../../cli/src/__tests__/admin-asset-skill-parity.test.ts)
|
||||
|
||||
#### `run-controls`
|
||||
|
||||
Scope: cli
|
||||
Storybook: No authored story required for invoke/list/get/cancel/events/log command execution.
|
||||
Production: Assert the real run ID, event/log output and resulting state, eligible actor and cancellation denial. Printed success does not prove provider completion.
|
||||
Sources: Source: [run.ts](../../cli/src/commands/client/run.ts), [heartbeat-run.ts](../../cli/src/commands/heartbeat-run.ts). Tests: [operations-parity.test.ts](../../cli/src/__tests__/operations-parity.test.ts)
|
||||
|
||||
#### `worktree-instances`
|
||||
|
||||
Scope: cli
|
||||
Storybook: No authored story required for worktree initialize/seed/repair/cleanup commands.
|
||||
Production: Use only an owned isolated checkout/instance; verify paths, ports, health, login and seed provenance, then cleanup ownership. Capture evidence before teardown.
|
||||
Sources: Source: [worktree.ts](../../cli/src/commands/worktree.ts), [test-drive.ts](../../cli/src/commands/test-drive.ts). Tests: [worktree.test.ts](../../cli/src/__tests__/worktree.test.ts), [test-drive.test.ts](../../cli/src/__tests__/test-drive.test.ts)
|
||||
@@ -1,3 +1,7 @@
|
||||
---
|
||||
navigation: {"section":"Getting started and access","sectionOrder":10,"order":30}
|
||||
---
|
||||
|
||||
# Companies and portability
|
||||
|
||||
An operator can switch between companies, change their identity and settings, archive them, and preview an import or export. Each company remains a separate scope for work and agents.
|
||||
@@ -10,6 +14,8 @@ Agent access: [companion](../agent-access-map/companies.md).
|
||||
|
||||
- `selection`: create/select a company and keep navigation in its scope.
|
||||
- `identity`: update company identity and configured settings.
|
||||
- `decision-models`: configure and test the company's decision model, then inspect invocation history and recorded usage.
|
||||
- `fast-responses`: configure and test the experimental fast-response service, then inspect acknowledgement history, failures, and recorded usage.
|
||||
- `archive`: archive and restore through the available controls without confusing archival with deletion.
|
||||
- `portability`: preview a company package and inspect imported agents, projects, skills, and conflicts.
|
||||
|
||||
@@ -23,6 +29,12 @@ Use the company switcher or `/companies`, then enter company Settings.
|
||||
|
||||
Use `/company/export` and `/company/import` where enabled, or the corresponding CLI company commands.
|
||||
|
||||
### `company-ai-services`
|
||||
|
||||
Use Settings → Connections (`/company/settings/connections`) when fast responses
|
||||
are enabled. Otherwise decision-model settings remain in Company Settings.
|
||||
Open the Decisions and Fast responses tabs in Costs to inspect invocation history.
|
||||
|
||||
## Driving it with Playwright and the Paperclip CLI
|
||||
|
||||
Preconditions: follow the [baseline](./README.md#before-driving-a-journey). Use two disposable companies and a small package fixture. Record cloud-managed restrictions and visible settings gates.
|
||||
@@ -39,6 +51,22 @@ Automated: [portability routes](../../server/src/__tests__/company-portability-r
|
||||
|
||||
Manual: Export a small company, inspect the package preview, and import into a disposable target. Verify counts, references, conflict choices, and agent configuration. Run one imported task after supplying its required local credentials. Confirm source company data is unchanged.
|
||||
|
||||
### `company-ai-services`
|
||||
|
||||
Automated: [decision settings](../../ui/src/components/decision-models/DecisionModelSettings.test.tsx),
|
||||
[decision history](../../ui/src/components/decision-models/DecisionHistory.test.tsx),
|
||||
[fast-response settings](../../ui/src/components/fast-responses/FastResponseSettings.test.tsx),
|
||||
[decision service](../../server/src/__tests__/decision-models.test.ts), and
|
||||
[fast-response service](../../server/src/__tests__/fast-responses.test.ts) cover
|
||||
component and service contracts with simulated providers.
|
||||
|
||||
Manual: As an authorized connection manager, select a disposable shared AI
|
||||
connection, save the provider/model and sponsorship options, reload, and run the
|
||||
bounded Test action. Inspect success and failure receipts and their history in
|
||||
Costs. Verify disabled or revoked connections remain clear and that a user
|
||||
without connection-management permission cannot configure or test the service.
|
||||
Use an owned provider fixture for failure states; record any actual provider usage.
|
||||
|
||||
## Gotchas
|
||||
|
||||
- Restore an archived company through `/companies` → its menu → **Unarchive**.
|
||||
@@ -48,3 +76,34 @@ Manual: Export a small company, inspect the package preview, and import into a d
|
||||
- Package presence does not prove a runnable imported company; credentials and environment bindings need separate verification.
|
||||
- Company deletion is a distinct gated operation; do not use it as the archive test.
|
||||
- Settings hidden in a managed deployment should be recorded as unavailable, not bypassed.
|
||||
- Decision tests and fast responses have different request and execution contracts.
|
||||
A fast-response receipt is an acknowledgement, not completed agent work.
|
||||
History visibility and connection-management authority are separate; task links
|
||||
in history also require access to the underlying task.
|
||||
|
||||
### Storybook verification
|
||||
|
||||
#### `selection`
|
||||
|
||||
Scope: ui
|
||||
Storybook: Company list/create/switcher; empty, loading, error, unavailable company and switched navigation.
|
||||
Production: Switch and reload between companies; verify tasks/agents/cache/routes remain scoped and unauthorized company requests fail.
|
||||
Sources: Source: [Companies.tsx](../../ui/src/pages/Companies.tsx), [CompanySwitcher.tsx](../../ui/src/components/CompanySwitcher.tsx), [CompanyContext.tsx](../../ui/src/context/CompanyContext.tsx). Tests: [Companies.test.tsx](../../ui/src/pages/Companies.test.tsx), [CompanyContext.test.tsx](../../ui/src/context/CompanyContext.test.tsx), [companies-route-cross-company-authz.test.ts](../../server/src/__tests__/companies-route-cross-company-authz.test.ts)
|
||||
|
||||
#### `archive`
|
||||
|
||||
Scope: ui
|
||||
Storybook: Archive confirmation, pending/error and departure navigation; archived list entry and Unarchive action.
|
||||
Production: Archive eligible agents/runs without deleting history; restoration handles archival-specific pause and navigates to correct company.
|
||||
Sources: Source: [CompanySettings.tsx](../../ui/src/pages/CompanySettings.tsx), [Companies.tsx](../../ui/src/pages/Companies.tsx), [companies.ts](../../ui/src/api/companies.ts). Tests: [CompanySettingsArchive.test.tsx](../../ui/src/pages/CompanySettingsArchive.test.tsx), [Companies.test.tsx](../../ui/src/pages/Companies.test.tsx), [companies-service.test.ts](../../server/src/__tests__/companies-service.test.ts)
|
||||
|
||||
#### `portability`
|
||||
|
||||
Scope: ui
|
||||
Storybook: Import/export preview, conflict choice, warnings, async progress/failure/success and restricted managed deployment.
|
||||
Production: Apply real small package to disposable target; inspect counts/references/conflicts, source immutability and credential exclusions; imported task requires separate runnable-account proof.
|
||||
Sources: Source: [CompanyImport.tsx](../../ui/src/pages/CompanyImport.tsx), [CompanyExport.tsx](../../ui/src/pages/CompanyExport.tsx), [companies.ts](../../ui/src/api/companies.ts). Tests: [CompanyImport.test.tsx](../../ui/src/pages/CompanyImport.test.tsx), [CompanyExport.test.tsx](../../ui/src/pages/CompanyExport.test.tsx), [company-portability-routes.test.ts](../../server/src/__tests__/company-portability-routes.test.ts), [company-import-export-e2e.test.ts](../../cli/src/__tests__/company-import-export-e2e.test.ts)
|
||||
|
||||
### Documentation scope: Company and instance administration
|
||||
|
||||
Core administration/import/export/operator workflows are mapped; cloud/self-hosted differences, migration/restore compatibility, and platform-specific service variants need deeper recipes.
|
||||
@@ -1,3 +1,7 @@
|
||||
---
|
||||
navigation: {"section":"Apps, channels, and extensions","sectionOrder":50,"order":10}
|
||||
---
|
||||
|
||||
# Connection setup
|
||||
|
||||
People connect an app or account, choose who may use it, and recover incomplete
|
||||
@@ -104,6 +108,8 @@ Test no-auth and authenticated endpoints separately; never infer one from the ot
|
||||
Automated: [interaction card](../../ui/src/components/IssueThreadInteractionCard.test.tsx)
|
||||
checks addressed-user controls. AppsConnect tests cover page/dialog parity,
|
||||
task-bound OAuth, popup handoff, and verifying a saved connection before closing.
|
||||
Withdrawn requests render a terminal acknowledgement with no setup action; the
|
||||
interaction-body test and narrow Storybook journey cover this recovery state.
|
||||
The connection-intents browser suite above exercises fixture-backed continuation.
|
||||
|
||||
Manual: ask an agent to use an unavailable app, open its request as the named
|
||||
@@ -132,6 +138,12 @@ Automated: [setup routing](../../ui/src/pages/apps/chat/ChatEndpointSetup.routin
|
||||
[identity confirmation](../../ui/src/pages/apps/chat/ChatIdentityConfirm.test.tsx)
|
||||
cover shared UI logic with fixtures. Provider-specific live setup is not implied.
|
||||
|
||||
[Channel integration](../../server/src/__tests__/chat-channels.integration.test.ts)
|
||||
also covers bounded Telegram subscription recovery at startup and after committed
|
||||
configuration changes, saved retry deadlines, rollback, and parking pending
|
||||
repair while an endpoint or connection is inactive. The provider responses are
|
||||
fixtures. Settled maintenance leaves no discovery timer or database scans.
|
||||
|
||||
Manual: complete setup for one named provider, reload endpoint settings, link
|
||||
the intended sender, and send a disposable message. Verify one task and a useful
|
||||
reply in the originating conversation. Inspect an unlinked sender's denial and
|
||||
@@ -154,3 +166,7 @@ Slack setup does not qualify Discord, Telegram, GitHub, email, or iMessage.
|
||||
- Full provider matrix, AI-account selection, gateway/profile administration,
|
||||
and account revocation lifecycles remain outside this seed recipe.
|
||||
- For governed actions after setup, use [questions and approvals](./questions-and-approvals.md).
|
||||
|
||||
### Documentation scope: App catalog and connection setup
|
||||
|
||||
Provider-specific authentication/revocation, credential-only accounts, and aggregator administrative variants still need their own detailed matrices.
|
||||
@@ -1,401 +0,0 @@
|
||||
{
|
||||
"version": 1,
|
||||
"areas": [
|
||||
{
|
||||
"id": "tasks-and-attention",
|
||||
"title": "Tasks, conversations, and attention",
|
||||
"status": "partial",
|
||||
"features": [
|
||||
"tasks.md",
|
||||
"task-coordination.md",
|
||||
"inbox-search.md",
|
||||
"agent-chat.md",
|
||||
"questions-and-approvals.md",
|
||||
"steering.md",
|
||||
"recovery.md",
|
||||
"documents-artifacts.md"
|
||||
],
|
||||
"gap": "Recipes cover the main task/conversation/attention workflows. Full shell, permission, attachment, long-thread, and concurrency permutations remain to be enumerated.",
|
||||
"paths": [
|
||||
"ui/src/pages/AgentChat.tsx",
|
||||
"ui/src/pages/AgentChats.tsx",
|
||||
"ui/src/pages/BoardChat.tsx",
|
||||
"ui/src/pages/DecisionQueuePage.tsx",
|
||||
"ui/src/pages/Inbox.tsx",
|
||||
"ui/src/pages/IssueDetail.tsx",
|
||||
"ui/src/pages/Issues.tsx",
|
||||
"ui/src/pages/LegacyInbox.tsx",
|
||||
"ui/src/pages/MyIssues.tsx",
|
||||
"ui/src/pages/Search.tsx",
|
||||
"ui/src/pages/WhatNeedsMe.tsx"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "agents",
|
||||
"title": "Agents, organization, and runtime setup",
|
||||
"status": "partial",
|
||||
"features": [
|
||||
"agents.md",
|
||||
"runs-adapters.md",
|
||||
"skills.md",
|
||||
"app-permissions.md",
|
||||
"recovery.md",
|
||||
"execution-environments.md"
|
||||
],
|
||||
"gap": "Per-harness/model/account capabilities, every instruction-file error, and complete built-in-agent lifecycle variants remain separate qualification matrices.",
|
||||
"paths": [
|
||||
"ui/src/pages/AdapterManager.tsx",
|
||||
"ui/src/pages/AgentDetail.production.tsx",
|
||||
"ui/src/pages/AgentDetail.tsx",
|
||||
"ui/src/pages/AgentToolsTab.tsx",
|
||||
"ui/src/pages/Agents.production.tsx",
|
||||
"ui/src/pages/Agents.tsx",
|
||||
"ui/src/pages/NewAgent.tsx",
|
||||
"ui/src/pages/Org.tsx",
|
||||
"ui/src/pages/OrgChart.production.tsx",
|
||||
"ui/src/pages/OrgChart.tsx"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "apps",
|
||||
"title": "App catalog and connection setup",
|
||||
"status": "partial",
|
||||
"features": [
|
||||
"connection-setup.md",
|
||||
"app-permissions.md",
|
||||
"questions-and-approvals.md"
|
||||
],
|
||||
"gap": "Provider-specific authentication/revocation, credential-only accounts, and aggregator administrative variants still need their own detailed matrices.",
|
||||
"paths": [
|
||||
"ui/src/pages/apps/AggregatorAppManager.tsx",
|
||||
"ui/src/pages/apps/AggregatorConnectDialog.tsx",
|
||||
"ui/src/pages/apps/AppDetail.tsx",
|
||||
"ui/src/pages/apps/AppLogo.tsx",
|
||||
"ui/src/pages/apps/AppNotConnected.tsx",
|
||||
"ui/src/pages/apps/AppsConnect.tsx",
|
||||
"ui/src/pages/apps/AppsReview.tsx",
|
||||
"ui/src/pages/apps/ArcadeDiscoverySetup.tsx",
|
||||
"ui/src/pages/apps/Browse.tsx",
|
||||
"ui/src/pages/apps/CatalogSourceFilters.tsx",
|
||||
"ui/src/pages/apps/ComposioAppManager.tsx",
|
||||
"ui/src/pages/apps/ComposioAppSetup.tsx",
|
||||
"ui/src/pages/apps/ConnectionProvenanceChip.tsx",
|
||||
"ui/src/pages/apps/Connections.tsx",
|
||||
"ui/src/pages/apps/ExecutorManagementSetup.tsx",
|
||||
"ui/src/pages/apps/PaperclipCloudOAuthHandoff.tsx",
|
||||
"ui/src/pages/apps/ReviewQueueCard.tsx",
|
||||
"ui/src/pages/apps/UnverifiedServerBadge.tsx",
|
||||
"ui/src/pages/apps/app-detail/ActionTestDialog.tsx",
|
||||
"ui/src/pages/apps/app-detail/ActivityPanel.tsx",
|
||||
"ui/src/pages/apps/app-detail/AdvancedPanel.tsx",
|
||||
"ui/src/pages/apps/app-detail/AgentConnectionAccess.tsx",
|
||||
"ui/src/pages/apps/app-detail/BrowserUseSettingsPanel.tsx",
|
||||
"ui/src/pages/apps/app-detail/ConnectedAggregatorApps.tsx",
|
||||
"ui/src/pages/apps/app-detail/IdentitiesSection.tsx",
|
||||
"ui/src/pages/apps/app-detail/PermissionsPanel.tsx",
|
||||
"ui/src/pages/apps/app-detail/RailwayAccessPanel.tsx",
|
||||
"ui/src/pages/apps/app-detail/ReviewPanel.tsx",
|
||||
"ui/src/pages/apps/app-detail/SetupPanel.tsx",
|
||||
"ui/src/pages/apps/connection-owner.tsx"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "chat-channels",
|
||||
"title": "Chat and email channel setup",
|
||||
"status": "partial",
|
||||
"features": [
|
||||
"chat-channels.md",
|
||||
"connection-setup.md",
|
||||
"questions-and-approvals.md",
|
||||
"steering.md"
|
||||
],
|
||||
"gap": "Shared recipes name provider checks; each provider transport/thread/identity/file-size/type combination needs separate live evidence and deeper instructions.",
|
||||
"paths": [
|
||||
"ui/src/pages/apps/chat/ChatCommunicationInstructions.tsx",
|
||||
"ui/src/pages/apps/chat/ChatEndpointDetail.tsx",
|
||||
"ui/src/pages/apps/chat/ChatEndpointSetup.tsx",
|
||||
"ui/src/pages/apps/chat/ChatIdentityConfirm.tsx",
|
||||
"ui/src/pages/apps/chat/EmailEndpointSetup.tsx",
|
||||
"ui/src/pages/apps/chat/GitHubBotConfiguration.tsx",
|
||||
"ui/src/pages/apps/chat/GitHubBotManagement.tsx",
|
||||
"ui/src/pages/apps/chat/GitHubChatSetup.tsx",
|
||||
"ui/src/pages/apps/chat/GitHubSetupPrompt.tsx",
|
||||
"ui/src/pages/apps/chat/PhotonConnectStep.tsx",
|
||||
"ui/src/pages/apps/chat/SetupPrompt.tsx",
|
||||
"ui/src/pages/apps/chat/SlackAvatarStep.tsx",
|
||||
"ui/src/pages/apps/chat/SlackIdentityStep.tsx",
|
||||
"ui/src/pages/apps/chat/SlackSetupPrompt.tsx",
|
||||
"ui/src/pages/apps/chat/SlackToolSettings.tsx"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "skills-and-teams",
|
||||
"title": "Skills, Skill Studio, and teams",
|
||||
"status": "partial",
|
||||
"features": [
|
||||
"skills.md",
|
||||
"teams.md",
|
||||
"questions-and-approvals.md"
|
||||
],
|
||||
"gap": "Main library/Studio/source/policy and CLI team-install paths are mapped. Full source-provider conflicts, harness sync, and remote package variants remain; catalog UI is not a current top-level route.",
|
||||
"paths": [
|
||||
"ui/src/pages/CompanySkills.production.tsx",
|
||||
"ui/src/pages/CompanySkills.tsx",
|
||||
"ui/src/pages/SkillSources.tsx",
|
||||
"ui/src/pages/SkillStudio.tsx",
|
||||
"ui/src/pages/TeamCatalog.tsx",
|
||||
"ui/src/pages/agent-skills/AgentSkillReleasePicker.tsx",
|
||||
"ui/src/pages/agent-skills/AgentSkillRow.tsx",
|
||||
"ui/src/pages/agent-skills/AgentSkillsTab.tsx",
|
||||
"ui/src/pages/skills/ImportSkillsFromProjectDialog.tsx",
|
||||
"ui/src/pages/skills/SkillImportProgress.tsx",
|
||||
"ui/src/pages/skills/SkillPackagePreview.tsx",
|
||||
"ui/src/pages/skills/SkillSourceTree.tsx"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "projects-and-workspaces",
|
||||
"title": "Projects and execution workspaces",
|
||||
"status": "partial",
|
||||
"features": [
|
||||
"projects.md",
|
||||
"workspaces.md",
|
||||
"goals.md",
|
||||
"execution-environments.md",
|
||||
"budgets-costs.md",
|
||||
"recovery.md"
|
||||
],
|
||||
"gap": "Provider-specific provisioning, multi-repository/submodule edge cases, Git reconciliation variants, and all service exposure combinations require deeper recipes.",
|
||||
"paths": [
|
||||
"ui/src/pages/ExecutionWorkspaceDetail.tsx",
|
||||
"ui/src/pages/ProjectDetail.tsx",
|
||||
"ui/src/pages/ProjectWorkspaceDetail.tsx",
|
||||
"ui/src/pages/Projects.tsx",
|
||||
"ui/src/pages/Workspaces.tsx"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "formal-approvals",
|
||||
"title": "Formal governance approvals",
|
||||
"status": "partial",
|
||||
"features": [
|
||||
"questions-and-approvals.md",
|
||||
"task-coordination.md",
|
||||
"agents.md"
|
||||
],
|
||||
"gap": "Formal board decisions and signoff have recipes; every approval payload/type and actor/host error permutation is not enumerated.",
|
||||
"paths": [
|
||||
"ui/src/pages/ApprovalDetail.tsx",
|
||||
"ui/src/pages/Approvals.tsx"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "auth-and-access",
|
||||
"title": "Login, invitations, and access",
|
||||
"status": "partial",
|
||||
"features": [
|
||||
"onboarding.md",
|
||||
"access.md",
|
||||
"navigation-preferences.md",
|
||||
"cli-operations.md"
|
||||
],
|
||||
"gap": "Deployment modes and core login/invite/member/token paths are mapped; exhaustive identity-provider, expiry, role, and resource-policy combinations remain.",
|
||||
"paths": [
|
||||
"ui/src/pages/Auth.tsx",
|
||||
"ui/src/pages/BoardClaim.tsx",
|
||||
"ui/src/pages/CliAuth.tsx",
|
||||
"ui/src/pages/CompanyAccess.tsx",
|
||||
"ui/src/pages/InstanceAccess.tsx",
|
||||
"ui/src/pages/InviteLanding.tsx",
|
||||
"ui/src/pages/JoinRequestQueue.tsx",
|
||||
"ui/src/pages/UserProfile.tsx"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "company-and-instance",
|
||||
"title": "Company and instance administration",
|
||||
"status": "partial",
|
||||
"features": [
|
||||
"companies.md",
|
||||
"onboarding.md",
|
||||
"instance-operations.md",
|
||||
"execution-environments.md",
|
||||
"navigation-preferences.md"
|
||||
],
|
||||
"gap": "Core administration/import/export/operator workflows are mapped; cloud/self-hosted differences, migration/restore compatibility, and platform-specific service variants need deeper recipes.",
|
||||
"paths": [
|
||||
"ui/src/pages/Companies.tsx",
|
||||
"ui/src/pages/CompanyEnvironments.tsx",
|
||||
"ui/src/pages/CompanyExport.tsx",
|
||||
"ui/src/pages/CompanyImport.tsx",
|
||||
"ui/src/pages/CompanySettings.tsx",
|
||||
"ui/src/pages/InstanceExperimentalSettings.tsx",
|
||||
"ui/src/pages/InstanceGeneralSettings.tsx",
|
||||
"ui/src/pages/ProfileSettings.tsx"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "goals-costs-and-activity",
|
||||
"title": "Goals, dashboards, costs, and activity",
|
||||
"status": "partial",
|
||||
"features": [
|
||||
"goals.md",
|
||||
"budgets-costs.md",
|
||||
"activity.md",
|
||||
"runs-adapters.md",
|
||||
"routines.md"
|
||||
],
|
||||
"gap": "Core goal/report/budget/audit journeys are mapped. Every aggregation/filter combination, cost source, and overlapping budget window still needs dedicated cases.",
|
||||
"paths": [
|
||||
"ui/src/pages/Costs.production.tsx",
|
||||
"ui/src/pages/Costs.tsx",
|
||||
"ui/src/pages/Dashboard.tsx",
|
||||
"ui/src/pages/DashboardLive.tsx",
|
||||
"ui/src/pages/GoalDetail.tsx",
|
||||
"ui/src/pages/Goals.tsx",
|
||||
"ui/src/pages/Timeline.tsx",
|
||||
"ui/src/pages/audit/AuditFeed.production.tsx",
|
||||
"ui/src/pages/audit/AuditFeed.tsx",
|
||||
"ui/src/pages/audit/AuditHub.tsx",
|
||||
"ui/src/pages/audit/AuditRuns.tsx",
|
||||
"ui/src/pages/audit/CompanyActivity.production.tsx",
|
||||
"ui/src/pages/audit/CompanyActivity.tsx",
|
||||
"ui/src/pages/audit/RoutineAuditActivity.tsx"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "artifacts",
|
||||
"title": "Artifacts and work products",
|
||||
"status": "partial",
|
||||
"features": [
|
||||
"documents-artifacts.md"
|
||||
],
|
||||
"gap": "Document/attachment/library/work-product journeys are mapped; every media preview type, storage backend, annotation conflict, and runtime-resource lifecycle variant remains separate.",
|
||||
"paths": [
|
||||
"ui/src/pages/Artifacts.tsx"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "routines-and-pipelines",
|
||||
"title": "Routines, pipelines, cases, and status cards",
|
||||
"status": "partial",
|
||||
"features": [
|
||||
"routines.md",
|
||||
"pipelines.md",
|
||||
"cases.md",
|
||||
"status-cards.md"
|
||||
],
|
||||
"gap": "All four capabilities have recipes. Trigger/provider/timezone combinations, custom case schemas, stage automation types, and summarizer quality need deeper cases.",
|
||||
"paths": [
|
||||
"ui/src/pages/CaseDetail.tsx",
|
||||
"ui/src/pages/Cases.tsx",
|
||||
"ui/src/pages/PipelineSettings.tsx",
|
||||
"ui/src/pages/Pipelines.tsx",
|
||||
"ui/src/pages/RoutineDetail.production.tsx",
|
||||
"ui/src/pages/RoutineDetail.tsx",
|
||||
"ui/src/pages/Routines.production.tsx",
|
||||
"ui/src/pages/Routines.tsx",
|
||||
"ui/src/pages/StatusCards/ArchivedStatusCardRow.tsx",
|
||||
"ui/src/pages/StatusCards/CreateStatusCardDialog.tsx",
|
||||
"ui/src/pages/StatusCards/StatusCardDetailDrawer.tsx",
|
||||
"ui/src/pages/StatusCards/StatusCardSettingsForm.tsx",
|
||||
"ui/src/pages/StatusCards/StatusCardTile.tsx",
|
||||
"ui/src/pages/StatusCards/SummarizerAgentSelect.tsx",
|
||||
"ui/src/pages/StatusCards/index.tsx"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "secrets",
|
||||
"title": "Secrets and secret proposals",
|
||||
"status": "partial",
|
||||
"features": [
|
||||
"secrets.md",
|
||||
"access.md",
|
||||
"app-permissions.md"
|
||||
],
|
||||
"gap": "Company/user/proposal/vault and runtime-binding paths are mapped; every secret provider, rotation scenario, and delivery context needs separate validation.",
|
||||
"paths": [
|
||||
"ui/src/pages/Secrets.tsx",
|
||||
"ui/src/pages/secrets/ImportFromVaultDialog.tsx",
|
||||
"ui/src/pages/secrets/MissingUserSecretsBanner.tsx",
|
||||
"ui/src/pages/secrets/MyUserSecretsTab.tsx",
|
||||
"ui/src/pages/secrets/ProposalsTab.tsx",
|
||||
"ui/src/pages/secrets/SecretPathName.tsx",
|
||||
"ui/src/pages/secrets/SetMyUserSecretDialog.tsx",
|
||||
"ui/src/pages/secrets/UserSecretDefinitionsTab.tsx",
|
||||
"ui/src/pages/secrets/proposal-review.tsx",
|
||||
"ui/src/pages/secrets/user-secret-presentation.tsx"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "plugins-and-tools",
|
||||
"title": "Plugins, gateways, and tool profiles",
|
||||
"status": "partial",
|
||||
"features": [
|
||||
"plugins.md",
|
||||
"gateways-profiles.md",
|
||||
"app-permissions.md",
|
||||
"execution-environments.md"
|
||||
],
|
||||
"gap": "Host plugin/gateway/profile lifecycles are mapped. Third-party plugin behaviors and every client transport/provider combination are outside host-wide coverage.",
|
||||
"paths": [
|
||||
"ui/src/pages/CompanySettingsPluginPage.tsx",
|
||||
"ui/src/pages/PluginManager.tsx",
|
||||
"ui/src/pages/PluginPage.tsx",
|
||||
"ui/src/pages/PluginSettings.tsx",
|
||||
"ui/src/pages/apps/gateways/ConnectClientDialog.tsx",
|
||||
"ui/src/pages/apps/gateways/CopyableGatewayUrl.tsx",
|
||||
"ui/src/pages/apps/gateways/EditGatewayDialog.tsx",
|
||||
"ui/src/pages/apps/gateways/GatewayDetail.tsx",
|
||||
"ui/src/pages/apps/gateways/GatewaysList.tsx",
|
||||
"ui/src/pages/apps/gateways/NewGatewayDialog.tsx",
|
||||
"ui/src/pages/apps/gateways/panels/AppsToolsPanel.tsx",
|
||||
"ui/src/pages/apps/gateways/panels/GatewayActivityPanel.tsx",
|
||||
"ui/src/pages/apps/gateways/panels/GatewayAdvancedPanel.tsx",
|
||||
"ui/src/pages/apps/gateways/panels/OverviewPanel.tsx",
|
||||
"ui/src/pages/apps/gateways/panels/TokensPanel.tsx",
|
||||
"ui/src/pages/tools/AdvancedToolsRoute.tsx",
|
||||
"ui/src/pages/tools/AuditTab.tsx",
|
||||
"ui/src/pages/tools/GatewaysTab.tsx",
|
||||
"ui/src/pages/tools/McpConfigHelpDialog.tsx",
|
||||
"ui/src/pages/tools/PasteConfigTab.tsx",
|
||||
"ui/src/pages/tools/ProfilesTab.tsx",
|
||||
"ui/src/pages/tools/SmokeLabTab.tsx",
|
||||
"ui/src/pages/tools/ToolsAccess.tsx",
|
||||
"ui/src/pages/tools/connection-dialogs.tsx",
|
||||
"ui/src/pages/tools/profiles/ProfileActionDialog.tsx",
|
||||
"ui/src/pages/tools/profiles/ProfileDetail.tsx",
|
||||
"ui/src/pages/tools/profiles/ProfileDetailRoute.tsx",
|
||||
"ui/src/pages/tools/profiles/ProfileWizard.tsx",
|
||||
"ui/src/pages/tools/profiles/ProfileWizardRoute.tsx",
|
||||
"ui/src/pages/tools/profiles/ProfilesIndex.tsx",
|
||||
"ui/src/pages/tools/profiles/ToolsAdminGate.tsx",
|
||||
"ui/src/pages/tools/profiles/WizardToolsStep.tsx",
|
||||
"ui/src/pages/tools/shared.tsx"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "labs-and-fallbacks",
|
||||
"title": "Developer labs and fallback pages",
|
||||
"status": "partial",
|
||||
"features": [
|
||||
"developer-labs.md",
|
||||
"navigation-preferences.md"
|
||||
],
|
||||
"gap": "Developer and fallback surfaces are identified. Each synthetic fixture and performance budget is not a production journey and needs its own measurement.",
|
||||
"paths": [
|
||||
"ui/src/pages/BootstrapSetupUxLab.tsx",
|
||||
"ui/src/pages/CrossIssueCollaborationUxLab.tsx",
|
||||
"ui/src/pages/DesignGuide.tsx",
|
||||
"ui/src/pages/InviteUxLab.tsx",
|
||||
"ui/src/pages/IssueChatLongThreadPerf.tsx",
|
||||
"ui/src/pages/IssueChatUxLab.tsx",
|
||||
"ui/src/pages/NotFound.tsx",
|
||||
"ui/src/pages/ResponsibleUserDenialUxLab.tsx",
|
||||
"ui/src/pages/RunTranscriptUxLab.tsx",
|
||||
"ui/src/pages/SystemNoticeUxLab.tsx",
|
||||
"ui/src/pages/TaskChatLab.tsx"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,3 +1,7 @@
|
||||
---
|
||||
navigation: {"section":"Contributor surfaces","sectionOrder":80,"order":10}
|
||||
---
|
||||
|
||||
# Developer previews and diagnostic labs
|
||||
|
||||
Contributors can inspect design examples, interaction labs, and performance fixtures. These are development surfaces and do not count as production feature verification.
|
||||
@@ -48,3 +52,23 @@ real-task behavior before extrapolating fixture measurements.
|
||||
- Intended developer use is not a universal runtime gate: Design Guide and
|
||||
global lab/performance routes are also registered in production builds.
|
||||
- Screenshots of a lab do not prove live provider behavior, persistence, or authorization.
|
||||
|
||||
### Storybook verification
|
||||
|
||||
#### `performance`
|
||||
|
||||
Scope: browser
|
||||
Storybook: A screenshot/story is optional context, not the required performance evidence.
|
||||
Production: Use existing browser performance harnesses. Record build/browser/data size, timing/trace and scrolling. Long-thread fixture has a disabled composer; task-chat HTML harness uses a plain textarea and simulated updates.
|
||||
Sources: Source: [IssueChatLongThreadPerf.tsx](../../ui/src/pages/IssueChatLongThreadPerf.tsx), [README.md](../../tests/perf/task-chat/README.md), [README.md](../../tests/perf/issue-detail/README.md). Tests: [scrollback.spec.ts](../../tests/perf/task-chat/scrollback.spec.ts), [issue-detail.perf.spec.ts](../../tests/perf/issue-detail/issue-detail.perf.spec.ts)
|
||||
|
||||
#### `route-gates`
|
||||
|
||||
Scope: browser
|
||||
Storybook: No isolated story required to prove actual route registration, redirects or gates; isolated gated-control examples remain useful.
|
||||
Production: Drive real routes under their actual development, experimental, production and fallback settings. Do not assume every lab is dev-only: global long-thread/lab/design routes also exist in production registration.
|
||||
Sources: Source: [App.tsx](../../ui/src/App.tsx). Tests: No dedicated test asserted; use the feature recipe.
|
||||
|
||||
### Documentation scope: Developer labs and fallback pages
|
||||
|
||||
Developer and fallback surfaces are identified. Each synthetic fixture and performance budget is not a production journey and needs its own measurement.
|
||||
@@ -1,3 +1,7 @@
|
||||
---
|
||||
navigation: {"section":"Tasks and conversations","sectionOrder":20,"order":70}
|
||||
---
|
||||
|
||||
# Documents, attachments, and work products
|
||||
|
||||
People read and revise task documents, annotate specific content, open attached files, and inspect the outputs an agent hands back. The artifact library provides another route to the same work.
|
||||
@@ -64,3 +68,16 @@ Manual: Find the task’s output through search and grouping, open its stack, pa
|
||||
- A local path is not automatically an uploaded artifact accessible to another user.
|
||||
- A preview screenshot is not proof that download bytes or revision references are correct.
|
||||
- Version conflicts and stale annotations must stay visible rather than silently targeting different content.
|
||||
|
||||
### Storybook verification
|
||||
|
||||
#### `documents`
|
||||
|
||||
Scope: ui
|
||||
Storybook: Writable/read-only document, save pending/failure/conflict, revision history/historical preview and restore confirmation.
|
||||
Production: Persist edited body and reload; append-only restore creates new revision; reject stale writes and inaccessible company/task.
|
||||
Sources: Source: [IssueDocumentsSection.tsx](../../ui/src/components/IssueDocumentsSection.tsx), [TaskDocumentPanel.tsx](../../ui/src/components/task-side-panel/TaskDocumentPanel.tsx), [documents.ts](../../server/src/services/documents.ts). Tests: [IssueDocumentsSection.test.tsx](../../ui/src/components/IssueDocumentsSection.test.tsx), [document-revisions.test.ts](../../ui/src/lib/document-revisions.test.ts), [documents-service.test.ts](../../server/src/__tests__/documents-service.test.ts), [issue-document-restore-routes.test.ts](../../server/src/__tests__/issue-document-restore-routes.test.ts)
|
||||
|
||||
### Documentation scope: Artifacts and work products
|
||||
|
||||
Document/attachment/library/work-product journeys are mapped; every media preview type, storage backend, annotation conflict, and runtime-resource lifecycle variant remains separate.
|
||||
@@ -1,4 +1,8 @@
|
||||
# Local, SSH, and sandbox environments
|
||||
---
|
||||
navigation: {"section":"Projects and execution","sectionOrder":40,"order":40}
|
||||
---
|
||||
|
||||
# Execution environments
|
||||
|
||||
Operators configure where agents execute, probe readiness, select an environment for work, and inspect remote provisioning or custom-image state when the installed provider supports it.
|
||||
|
||||
@@ -82,3 +86,33 @@ Manual: Run a bounded command in the intended target, inspect its output and wor
|
||||
harness; the selected native runtime still needs its own setup and useful-task proof.
|
||||
- The local option may appear only when editing an existing local environment; availability follows current UI/provider capabilities.
|
||||
- Workspace service reachability and environment reachability are separate checks.
|
||||
|
||||
### Storybook verification
|
||||
|
||||
#### `configuration`
|
||||
|
||||
Scope: ui
|
||||
Storybook: Local/SSH/sandbox editors; unavailable providers, missing credentials, save pending/error and restricted operator.
|
||||
Production: Persist target configuration and enforce instance-admin/local-operator mutation boundary; target catalog is instance-scoped.
|
||||
Sources: Source: [CompanyEnvironments.tsx](../../ui/src/pages/CompanyEnvironments.tsx), [environments.ts](../../server/src/routes/environments.ts). Tests: [CompanyEnvironments.test.tsx](../../ui/src/pages/CompanyEnvironments.test.tsx), [environment-service.test.ts](../../server/src/__tests__/environment-service.test.ts)
|
||||
|
||||
#### `capabilities`
|
||||
|
||||
Scope: ui
|
||||
Storybook: Supported versus unavailable driver/provider controls and interactive-setup/template-capture limitations.
|
||||
Production: Verify advertised driver/plugin capabilities match operations; unavailable provider cannot become working target; capability discovery must not allocate sandbox.
|
||||
Sources: Source: [CompanyEnvironments.tsx](../../ui/src/pages/CompanyEnvironments.tsx), [environments.ts](../../ui/src/api/environments.ts). Tests: [environment-capability-contract.test.ts](../../server/src/__tests__/environment-capability-contract.test.ts), [environment-execution-target-capabilities.test.ts](../../server/src/__tests__/environment-execution-target-capabilities.test.ts), [plugin-environment-driver-sandbox-capabilities.test.ts](../../server/src/__tests__/plugin-environment-driver-sandbox-capabilities.test.ts)
|
||||
|
||||
#### `probe`
|
||||
|
||||
Scope: ui
|
||||
Storybook: Remote Test pending, success, reachability/auth failure and platform qualification absent/invalidated notice.
|
||||
Production: Probe actual owned target; verify selected saved immutable config/image/company qualification plus lease cleanup; local API probe proves host/cwd only and has no UI Test button.
|
||||
Sources: Source: [CompanyEnvironments.tsx](../../ui/src/pages/CompanyEnvironments.tsx), [environment-probe.ts](../../server/src/services/environment-probe.ts). Tests: [CompanyEnvironments.test.tsx](../../ui/src/pages/CompanyEnvironments.test.tsx), [environment-probe.test.ts](../../server/src/__tests__/environment-probe.test.ts), [environment-live-ssh.test.ts](../../server/src/__tests__/environment-live-ssh.test.ts)
|
||||
|
||||
#### `images`
|
||||
|
||||
Scope: ui
|
||||
Storybook: Custom-image setup/capture/progress, terminal connect/disconnect/failure, unsupported capability and active-image drift.
|
||||
Production: Execute owned provider setup/capture/probe/terminal transport with correct saved image identity, authority, cleanup and shutdown; terminal screenshot cannot prove operation.
|
||||
Sources: Source: [CompanyEnvironments.tsx](../../ui/src/pages/CompanyEnvironments.tsx), [environment-custom-images.ts](../../server/src/services/environment-custom-images.ts). Tests: [CompanyEnvironments.test.tsx](../../ui/src/pages/CompanyEnvironments.test.tsx), [environment-custom-images-service.test.ts](../../server/src/__tests__/environment-custom-images-service.test.ts)
|
||||
@@ -1,3 +1,7 @@
|
||||
---
|
||||
navigation: {"section":"Apps, channels, and extensions","sectionOrder":50,"order":40}
|
||||
---
|
||||
|
||||
# Tool gateways and access profiles
|
||||
|
||||
Administrators expose selected tools through gateways and reusable access profiles, connect clients, manage tokens, and inspect gateway activity.
|
||||
@@ -50,3 +54,12 @@ Manual: Create a bounded profile, choose its offered tools and options, save or
|
||||
- A copied endpoint is not proof of client authentication or tool discovery.
|
||||
- Gateway access cannot replace underlying connection/action permission checks.
|
||||
- Advanced tool routes require the appropriate admin gate; legacy tool URLs may redirect.
|
||||
|
||||
### Storybook verification
|
||||
|
||||
#### `tokens`
|
||||
|
||||
Scope: ui
|
||||
Storybook: Mount current TokensPanel with issue controls, once-only token reveal, expiry/actions, revocation confirmation and failures. Old GatewaysTab fixtures and assistant OAuth revocation are insufficient.
|
||||
Production: Issue bounded token via POST /tool-gateway/gateways/{id}/tokens; call allowed and excluded tools; revoke via /tool-gateway/gateway-tokens/{id}/revoke and verify denial using same client.
|
||||
Sources: Source: [TokensPanel.tsx](../../ui/src/pages/apps/gateways/panels/TokensPanel.tsx), [tool-gateway.ts](../../server/src/routes/tool-gateway.ts), [tools.ts](../../ui/src/api/tools.ts). Tests: [TokensPanel.test.tsx](../../ui/src/pages/apps/gateways/panels/TokensPanel.test.tsx), [tool-gateway-service.test.ts](../../server/src/__tests__/tool-gateway-service.test.ts), [tool-gateway.test.ts](../../server/src/__tests__/tool-gateway.test.ts)
|
||||
@@ -1,3 +1,7 @@
|
||||
---
|
||||
navigation: {"section":"Projects and execution","sectionOrder":40,"order":20}
|
||||
---
|
||||
|
||||
# Goals and work alignment
|
||||
|
||||
People define company and lower-level goals and connect projects and tasks to the outcome they serve.
|
||||
@@ -47,3 +51,23 @@ Manual: Compare a task with an explicit goal to one relying on project context.
|
||||
|
||||
- A goal status is not an independently measured proof of business success.
|
||||
- Do not infer a complete goal browser test from the small properties-toggle suite.
|
||||
|
||||
### Storybook verification
|
||||
|
||||
#### `alignment`
|
||||
|
||||
Scope: ui
|
||||
Storybook: Project/task goal selection, explicit/inherited context and invalid association error.
|
||||
Production: Persist same-company valid association, reject invalid/cross-company reference, verify explicit versus inherited server context after reload.
|
||||
Sources: Source: [ProjectProperties.tsx](../../ui/src/components/ProjectProperties.tsx), [GoalDetail.tsx](../../ui/src/pages/GoalDetail.tsx). Tests: [project-goal-validation.test.ts](../../server/src/__tests__/project-goal-validation.test.ts), [issues-goal-context-routes.test.ts](../../server/src/__tests__/issues-goal-context-routes.test.ts), [issue-goal-fallback.test.ts](../../server/src/__tests__/issue-goal-fallback.test.ts), [project-goal.test.ts](../../cli/src/__tests__/project-goal.test.ts)
|
||||
|
||||
#### `navigation`
|
||||
|
||||
Scope: ui
|
||||
Storybook: Parent/child goal and project/task context links, empty/unavailable context and permitted destination.
|
||||
Production: Follow actual goal/project/task records and compare explicit versus inherited context; ensure reload and inaccessible destination behavior.
|
||||
Sources: Source: [GoalDetail.tsx](../../ui/src/pages/GoalDetail.tsx), [GoalProperties.tsx](../../ui/src/components/GoalProperties.tsx). Tests: [GoalDetail.test.tsx](../../ui/src/pages/GoalDetail.test.tsx), [issues-goal-context-routes.test.ts](../../server/src/__tests__/issues-goal-context-routes.test.ts), [issue-goal-fallback.test.ts](../../server/src/__tests__/issue-goal-fallback.test.ts)
|
||||
|
||||
### Documentation scope: Goals, dashboards, costs, and activity
|
||||
|
||||
Core goal/report/budget/audit journeys are mapped. Every aggregation/filter combination, cost source, and overlapping budget window still needs dedicated cases.
|
||||
@@ -1,3 +1,7 @@
|
||||
---
|
||||
navigation: {"section":"Tasks and conversations","sectionOrder":20,"order":30}
|
||||
---
|
||||
|
||||
# Inbox, decisions, and search
|
||||
|
||||
People find work that needs their attention, distinguish unread activity from required decisions, archive handled items, and search across the company.
|
||||
@@ -12,6 +16,7 @@ Agent access: [companion](../agent-access-map/inbox-search.md).
|
||||
- `triage`: read or archive attention items without pretending the underlying task is complete.
|
||||
- `decisions`: open the source of a decision and act in the right context.
|
||||
- `search`: query company work and follow a result to its original record.
|
||||
- `toasts`: receive live task notifications only for personal participation or explicit mentions.
|
||||
|
||||
## How to get to it (user POV)
|
||||
|
||||
@@ -27,6 +32,11 @@ Open `/decisions`, then a queue at `/decisions/queues/:key` and its source item.
|
||||
|
||||
Open `/search` or the navigation search entry.
|
||||
|
||||
### `toasts`
|
||||
|
||||
Keep a company page open while another person or agent updates a task.
|
||||
See [toast semantics](../../doc/TOASTS.md) for eligibility and suppression rules.
|
||||
|
||||
## Driving it with Playwright and the Paperclip CLI
|
||||
|
||||
Preconditions: follow the [baseline](./README.md#before-driving-a-journey). Seed assigned, unread, blocked, and resolved tasks plus a pending decision. Record the combined Inbox/Tasks experimental setting.
|
||||
@@ -40,6 +50,8 @@ cover exclusion of historical automatic read cleanup from user participation,
|
||||
unread counts, and activity timestamps while retaining explicit user decisions
|
||||
and audit history.
|
||||
|
||||
Manual: Seed a scheduled routine execution owned by the current human. It stays out of Mine until an existing participation rule admits it. Verify comments, assignment, and manual routine runs admit automated tasks while reading alone does not. Inbox discovery and Blocked hide unrelated automation by default; the **show agent-created tasks** checkbox reveals it without subscribing the user. Reload and verify membership, unread badges, archive/resurfacing, and preference persistence.
|
||||
|
||||
Manual: Read an unread task, return to Unread, archive a handled item, and reload. Verify personal triage state changes while task status stays correct. Switch users and companies to check isolation.
|
||||
|
||||
Seed a completed task whose only activity under the viewing user is automatic
|
||||
@@ -60,8 +72,38 @@ Automated: [search page](../../ui/src/pages/Search.test.tsx) and [company search
|
||||
|
||||
Manual: Search a unique task title and content phrase, open the result, and compare the actual record. Test filters, no results, and a second company. Verify stale results do not expose inaccessible data.
|
||||
|
||||
### `toasts`
|
||||
|
||||
Automated: [persisted eligibility](../../server/src/__tests__/task-toast-eligibility.test.ts)
|
||||
checks creation, assignment, comments, mentions, deliberate edits, excluded read
|
||||
activity, company isolation, local-board, and persisted run-task attribution.
|
||||
[Socket delivery](../../server/src/__tests__/live-events-toast.test.ts) checks
|
||||
viewer-specific projection; [UI delivery](../../ui/src/context/LiveUpdatesProvider.hook.test.tsx)
|
||||
checks eligibility gating, cache updates, stale callbacks, and existing suppression.
|
||||
[UI cache handling](../../ui/src/context/LiveUpdatesProvider.test.ts) checks visible
|
||||
comment refresh when authenticated events omit hydration metadata.
|
||||
The `task toasts follow personal involvement in multiplayer` case in the
|
||||
[authenticated browser suite](../../tests/e2e/multi-user-authenticated.spec.ts)
|
||||
exercises quiet unrelated updates, read-only visits, first/historical mentions,
|
||||
self-activity, and visible-task suppression against persisted data.
|
||||
|
||||
Manual: Use two authenticated browser sessions in the same isolated company.
|
||||
Create separate tasks for each person and use one shared agent. From a company
|
||||
task list, verify that the other person's unrelated task updates produce no
|
||||
toast but still refresh the list. Comment on one of their tasks, then have them
|
||||
update it: a toast should appear. Repeat using assignment, a deliberate edit,
|
||||
and a first explicit user mention in a comment or description. Reload before a
|
||||
later update to prove eligibility does not depend on browser history. Mere
|
||||
viewing, agent ownership, responsible-user attribution, and parent participation
|
||||
must remain quiet. Task-linked failures follow the same participation rule;
|
||||
generic agent errors remain quiet. Repeat while viewing the relevant task and
|
||||
after switching company/account to verify suppression and isolation.
|
||||
|
||||
## Gotchas
|
||||
|
||||
- Notifications do not grant task access or change Mine membership.
|
||||
- A feature-map recipe and mocked UI tests do not prove live multiplayer behavior.
|
||||
|
||||
- Combined Inbox/Tasks requires both `enableCombinedInboxTasks` and
|
||||
`enableStreamlinedUi`. [Standalone Inbox tests](../../ui/src/pages/Inbox.test.tsx)
|
||||
render archive/read controls and toolbars; this is not live multi-user evidence.
|
||||
@@ -69,3 +111,19 @@ Manual: Search a unique task title and content phrase, open the result, and comp
|
||||
- Personal archival is not task cancellation or completion.
|
||||
- Legacy Inbox routes can redirect to the combined task view; record which host actually rendered.
|
||||
- Search service tests do not establish the relevance quality of every query.
|
||||
|
||||
### Storybook verification
|
||||
|
||||
#### `views`
|
||||
|
||||
Scope: ui
|
||||
Storybook: Mine/Recent/Unread/Blocked and broader task views; combined versus standalone host; loading/empty/error/filter states.
|
||||
Production: Use persisted personal participation/read data; verify scoped counts and list navigation/reload; automatic read cleanup must not create Mine membership.
|
||||
Sources: Source: [Inbox.tsx](../../ui/src/pages/Inbox.tsx), [Issues.tsx](../../ui/src/pages/Issues.tsx). Tests: [Inbox.test.tsx](../../ui/src/pages/Inbox.test.tsx), [Issues.test.tsx](../../ui/src/pages/Issues.test.tsx), [issues-service.test.ts](../../server/src/__tests__/issues-service.test.ts)
|
||||
|
||||
#### `toasts`
|
||||
|
||||
Scope: ui
|
||||
Storybook: Eligible live task toast, explicit mention, quiet unrelated event, own-action/visible-task suppression, dedupe and company/account switch.
|
||||
Production: Persisted participation and mentions determine per-viewer socket eligibility; quiet events still refresh caches; reload retains eligibility, unauthorized resources remain denied.
|
||||
Sources: Source: [ToastViewport.tsx](../../ui/src/components/ToastViewport.tsx), [ToastContext.tsx](../../ui/src/context/ToastContext.tsx), [LiveUpdatesProvider.tsx](../../ui/src/context/LiveUpdatesProvider.tsx), [task-toast-eligibility.ts](../../server/src/realtime/task-toast-eligibility.ts). Tests: [ToastContext.test.tsx](../../ui/src/context/ToastContext.test.tsx), [ToastViewport.test.tsx](../../ui/src/components/ToastViewport.test.tsx), [LiveUpdatesProvider.hook.test.tsx](../../ui/src/context/LiveUpdatesProvider.hook.test.tsx), [task-toast-eligibility.test.ts](../../server/src/__tests__/task-toast-eligibility.test.ts), [live-events-toast.test.ts](../../server/src/__tests__/live-events-toast.test.ts), [multi-user-authenticated.spec.ts](../../tests/e2e/multi-user-authenticated.spec.ts)
|
||||
@@ -1,4 +1,8 @@
|
||||
# Installation, configuration, updates, and backups
|
||||
---
|
||||
navigation: {"section":"Oversight and operation","sectionOrder":70,"order":40}
|
||||
---
|
||||
|
||||
# Instance operations
|
||||
|
||||
An operator can install and run Paperclip, diagnose the instance, configure supported deployment settings, manage its service, and produce a recoverable database backup.
|
||||
|
||||
@@ -34,6 +38,12 @@ Automated: [doctor](../../cli/src/__tests__/doctor.test.ts), [update command](..
|
||||
|
||||
Manual: Inspect the selected installation/channel and configuration, start the isolated instance, confirm health and browser access, then stop that instance. For update changes, use the dry-run/check path first and verify installed version and rollback state on an owned disposable installation.
|
||||
|
||||
Routine HTTP monitoring may use `GET /api/liveness` (or `HEAD`). It returns only
|
||||
process startup status and the public build commit without SQL or authentication.
|
||||
It remains reachable during an idle drain. Use `/api/health` for explicit database
|
||||
readiness, signed bootstrap, and authorized diagnostics; liveness does not
|
||||
establish database health or claim a workspace.
|
||||
|
||||
### `settings-backup`
|
||||
|
||||
Automated: [experimental settings](../../ui/src/pages/InstanceExperimentalSettings.test.tsx) and [database backup routes](../../server/src/__tests__/instance-database-backups-routes.test.ts) cover their UI/API contracts.
|
||||
@@ -50,3 +60,26 @@ Manual: Change a harmless experimental setting, reload, and confirm the affected
|
||||
- A successful backup write does not prove restoration works.
|
||||
- Settings visibility and mutability differ for cloud-managed and self-hosted instances.
|
||||
- Keep the three data paths distinct: first-party Telemetry, operator-configured OpenTelemetry, and local run logs.
|
||||
|
||||
### Storybook verification
|
||||
|
||||
#### `backup`
|
||||
|
||||
Scope: ui
|
||||
Storybook: Mount shipped InstanceGeneralSettings in CompanySettings with daily/weekly/monthly retention presets, selected values, saving/error/loading and cloud-hidden controls. Backup creation and restore remain separate CLI/operator checks.
|
||||
Production: PATCH /api/instance/settings/general must enforce instance settings authority and managed hidden fields, persist retention and survive reload. Separately inspect a real backup and restore a known record into a second disposable target; a successful write does not prove restoration.
|
||||
Sources: Source: [InstanceGeneralSettings.tsx](../../ui/src/pages/InstanceGeneralSettings.tsx), [CompanySettings.tsx](../../ui/src/pages/CompanySettings.tsx), [instance-settings.ts](../../server/src/routes/instance-settings.ts), [db-backup.ts](../../cli/src/commands/db-backup.ts). Tests: [InstanceGeneralSettings.test.tsx](../../ui/src/pages/InstanceGeneralSettings.test.tsx), [instance-settings-routes.test.ts](../../server/src/__tests__/instance-settings-routes.test.ts), [instance-settings-managed-overlay.test.ts](../../server/src/__tests__/instance-settings-managed-overlay.test.ts), [instance-database-backups-routes.test.ts](../../server/src/__tests__/instance-database-backups-routes.test.ts)
|
||||
|
||||
#### `install-update`
|
||||
|
||||
Scope: cli
|
||||
Storybook: No authored story required for install, channel selection, update or rollback command execution.
|
||||
Production: Use an owned managed installation: check/dry-run, installed version, retained payload rollback and failure. Source-checkout guidance is a separate case; rollback does not undo database migrations.
|
||||
Sources: Source: [index.ts](../../cli/src/index.ts), [install.ts](../../cli/src/commands/install.ts), [update.ts](../../cli/src/commands/update.ts). Tests: [install-command.test.ts](../../cli/src/__tests__/install-command.test.ts), [update-command.test.ts](../../cli/src/__tests__/update-command.test.ts)
|
||||
|
||||
#### `diagnostics`
|
||||
|
||||
Scope: cli
|
||||
Storybook: No authored story required for doctor/health command results.
|
||||
Production: Run doctor against an owned data directory; check readiness and nonzero failures. A listening port alone does not prove readiness; repair requires observing the repaired result.
|
||||
Sources: Source: [doctor.ts](../../cli/src/commands/doctor.ts). Tests: [doctor.test.ts](../../cli/src/__tests__/doctor.test.ts)
|
||||
@@ -1,3 +1,7 @@
|
||||
---
|
||||
navigation: {"section":"Oversight and operation","sectionOrder":70,"order":30}
|
||||
---
|
||||
|
||||
# Navigation, profile, and announcements
|
||||
|
||||
People organize their sidebar, move between company resources, maintain their profile, and dismiss product announcements with the correct persistence and identity scope.
|
||||
@@ -50,3 +54,19 @@ Manual: Change a disposable user’s display details, reload, and inspect an att
|
||||
- Announcement dismissals are intentionally instance-wide user preferences, unlike company-scoped domain data.
|
||||
- Legacy/production shells need their own navigation check when affected.
|
||||
- A route redirect is part of the journey; do not document a removed screen as if it still renders.
|
||||
|
||||
### Storybook verification
|
||||
|
||||
#### `preferences`
|
||||
|
||||
Scope: ui
|
||||
Storybook: Mount Sidebar using real preference boundary with stars/order/collapse/recents state. Clearly distinguish in-memory section collapse, browser-local recents and server-saved stars/order.
|
||||
Production: GET/PUT /sidebar-preferences/me and /companies/{id}/sidebar-preferences/me plus stars must retain intended user/company isolation across reload and switch. Section collapse reopens after reload; global collapse is disabled.
|
||||
Sources: Source: [Sidebar.tsx](../../ui/src/components/Sidebar.tsx), [sidebar-preferences.ts](../../server/src/routes/sidebar-preferences.ts), [sidebar-preferences.ts](../../server/src/services/sidebar-preferences.ts). Tests: [Sidebar.test.tsx](../../ui/src/components/Sidebar.test.tsx), [sidebar-preferences-routes.test.ts](../../server/src/__tests__/sidebar-preferences-routes.test.ts)
|
||||
|
||||
#### `fallbacks`
|
||||
|
||||
Scope: browser
|
||||
Storybook: A NotFound rendering story can help polish, but missing-resource/legacy-deep-link capability principally needs real App/router/browser scenarios preserving company and query intent.
|
||||
Production: Cold-open invalid company/resource and retired URL; verify explicit fallback or correct canonical redirect without silently targeting a different resource/company.
|
||||
Sources: Source: [NotFound.tsx](../../ui/src/pages/NotFound.tsx), [App.tsx](../../ui/src/App.tsx), [company-routes.ts](../../ui/src/lib/company-routes.ts). Tests: [App.activity-routing.test.tsx](../../ui/src/App.activity-routing.test.tsx), [App.cases-routing.test.tsx](../../ui/src/App.cases-routing.test.tsx), [App.test.tsx](../../ui/src/App.test.tsx), [company-routes.test.ts](../../ui/src/lib/company-routes.test.ts)
|
||||
@@ -1,3 +1,7 @@
|
||||
---
|
||||
navigation: {"section":"Getting started and access","sectionOrder":10,"order":10}
|
||||
---
|
||||
|
||||
# Onboarding and first work
|
||||
|
||||
An operator can start an instance, create a company, configure its first agent, and reach a real first task. Instance setup and company onboarding are separate steps.
|
||||
@@ -56,6 +60,10 @@ also permits Legacy. Do not switch runners after onboarding when claiming proof
|
||||
of that default. Test the selected runtime and account, then complete a bounded
|
||||
useful task and follow-up with an independently checked file artifact. Saved
|
||||
execution configuration and recorded run identity must match after reload.
|
||||
The Codex first-task eval applies operator QA bounds before Get started through
|
||||
the existing agent configuration API. It verifies that only timeout and
|
||||
concurrency change; automatic runner, account and environment choices remain.
|
||||
These campaign bounds are separate from production creation defaults.
|
||||
Use [runner validation](./runs-adapters.md#adapter-setup) and
|
||||
[environment qualification](./execution-environments.md#environment-settings)
|
||||
for the prerequisites; a successful login alone is insufficient.
|
||||
@@ -70,6 +78,48 @@ test or hire. Named snapshots and mutable image tags do not gain qualification
|
||||
through this flow. [Helper controls](../../ui/src/lib/qualify-claude-setup.test.ts)
|
||||
and mounted wizard/new-agent tests use mocks; live managed acceptance remains a
|
||||
separate gate.
|
||||
For a new Codex agent with Auto on a saved immutable OCI sandbox, Connect first
|
||||
uses the existing saved environment probe when authoritative qualification is
|
||||
absent. The board actor needs the existing instance-environment administration
|
||||
permission. Refresh company/environment-scoped discovery before testing the
|
||||
selected runtime. A denied probe, unconfirmed cleanup or setup failure must be
|
||||
visible; selecting Legacy remains an explicit choice. Creation and discovery
|
||||
themselves allocate no target. A valid measured unsupported target follows the
|
||||
server's Legacy default. Named Cloud snapshots remain a separate unqualified
|
||||
boot-identity and fresh-signup gap.
|
||||
|
||||
Selected native setup derives its target isolation as task execution does. The
|
||||
hello probe retains its read-only permission profile, approval-never policy and
|
||||
bounded provider turn. It skips Codex's project-instruction discovery in its new,
|
||||
empty private workspace; ordinary tasks still load their project instructions.
|
||||
Local and SSH transports retain Codex isolation. An injected environment flag
|
||||
cannot establish an outer sandbox identity. Verify these boundaries with the
|
||||
existing native setup controls and a real managed task/follow-up; source checks
|
||||
alone are insufficient.
|
||||
|
||||
The explicit manual Product E2E cell
|
||||
`confirmation-replies.runner-codex.daytona.task-card-accept` covers this fresh
|
||||
managed wizard path without fixture agent creation or a fixture preprobe. Its
|
||||
existing attachment oracle checks a downloaded physical file and follow-up
|
||||
continuity. Setup evidence must correlate both lease IDs with the same company,
|
||||
environment and provider; missing responses or unmatched rows keep cost coverage
|
||||
unknown. Run this cell only on an eligible target with separately authorized
|
||||
provider, runtime and cleanup reservations. Its source and mock controls are
|
||||
prepared. The literal `ea6c8eb5e16d61111968f633a66748b397b64a3e` live attempt
|
||||
failed: the child document existed, but the physical file was attached to the
|
||||
parent, and recovery stopped the completion callback before a provider turn.
|
||||
The failed report remains evidence; the revised source still needs live proof.
|
||||
Local cases and automatic selection remain unchanged.
|
||||
|
||||
For accepted file-producing work, verify exactly one self-assigned child with a
|
||||
self-contained description. The onboarding run must yield through the existing
|
||||
dependency/block disposition so the child's own execution can publish its file.
|
||||
Native file registration remains bound to the executing task. On completion,
|
||||
the original conversation must receive the actual child and downloadable file
|
||||
links. Document-only child work may finish inline; a plan-only request must not
|
||||
start implementation. Existing first-task asset controls check the instructions,
|
||||
not model compliance. Inspect the child's execution, document, downloaded file
|
||||
and source-correlated completion reply in the real journey.
|
||||
|
||||
Leave and resume during harness/runner setup. Confirm the draft retains the
|
||||
explicit choice and compatible account bindings, old native Codex setup links
|
||||
@@ -77,6 +127,17 @@ recover the harness and runner, and a changed harness or runner invalidates stal
|
||||
test results. Existing Legacy agents remain Legacy when their onboarding/setup
|
||||
configuration is reopened; this journey does not migrate them.
|
||||
|
||||
Reload both `/onboarding` and the company-prefixed route after the first agent is
|
||||
saved but before Get started. The authorized draft must retain its current step
|
||||
and that agent's execution choice. An explicit new-company opening still starts
|
||||
fresh. Opening another company must clear the previous company's resource IDs;
|
||||
an unauthorized account must not restore its draft. Existing component controls
|
||||
cover these boundaries; they do not substitute for the managed first-task eval.
|
||||
The existing mocked-login browser case reopens and reloads Connect directly. It
|
||||
checks the saved company/name/harness/runner, exact active authorization session,
|
||||
one login start and no hire while login is pending. This is login UI evidence,
|
||||
not a provider or managed-environment qualification.
|
||||
|
||||
### `cli-setup`
|
||||
|
||||
Automated: [CLI onboarding](../../cli/src/__tests__/onboard.test.ts) and [isolated test drive](../../cli/src/__tests__/test-drive.test.ts) cover their setup contracts; they do not establish that every model account is usable.
|
||||
@@ -88,3 +149,23 @@ Manual: Run setup in the disposable directory, open the URL it prints, and confi
|
||||
- An empty company, an empty instance, and an unauthenticated browser are different states.
|
||||
- Creating an agent does not prove its provider login or first execution succeeded.
|
||||
- See [access](./access.md) for authenticated deployments and [agents](./agents.md) for later hiring.
|
||||
|
||||
### Storybook verification
|
||||
|
||||
#### `resume`
|
||||
|
||||
Scope: ui
|
||||
Storybook: Restored incomplete wizard; invalid or unauthorized saved company; temporarily withheld draft; account switch; storage failure.
|
||||
Production: Reload company-prefixed onboarding without duplicating company; restore only authorized account/company draft and retain input after recoverable loading failure.
|
||||
Sources: 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)
|
||||
|
||||
#### `instance`
|
||||
|
||||
Scope: cli
|
||||
Storybook: No authored UI story required for host installation and startup.
|
||||
Production: Configure isolated data directory, start instance, confirm printed URL/identity/health, restart with saved configuration.
|
||||
Sources: Source: [onboard.ts](../../cli/src/commands/onboard.ts), [onboard-service.ts](../../cli/src/onboard-service.ts). Tests: [onboard.test.ts](../../cli/src/__tests__/onboard.test.ts), [onboard-service.test.ts](../../cli/src/__tests__/onboard-service.test.ts), [test-drive.test.ts](../../cli/src/__tests__/test-drive.test.ts)
|
||||
|
||||
### Documentation scope: Login, invitations, and access
|
||||
|
||||
Deployment modes and core login/invite/member/token paths are mapped; exhaustive identity-provider, expiry, role, and resource-policy combinations remain.
|
||||
@@ -1,3 +1,7 @@
|
||||
---
|
||||
navigation: {"section":"Automation and structured work","sectionOrder":60,"order":20}
|
||||
---
|
||||
|
||||
# Pipelines, review queues, and learnings
|
||||
|
||||
With the pipeline experiment enabled, people move structured work through configured stages, inspect stage automation, review outputs, and retain learning records.
|
||||
@@ -48,3 +52,33 @@ Manual: Open a pending review, inspect its source output and revision, accept or
|
||||
- These routes are experimental and may redirect or deny access when disabled.
|
||||
- ReviewQueue and Learnings are hosted from the pipeline module; a page-file inventory alone misses them.
|
||||
- Pipeline items and free-standing [cases](./cases.md) share records but have different navigation contexts.
|
||||
|
||||
### Storybook verification
|
||||
|
||||
#### `stages`
|
||||
|
||||
Scope: ui
|
||||
Storybook: Mount PipelineSettings ordered stages, automation assignees/env, invalid transitions, unsaved state, saving and failed save.
|
||||
Production: POST/PATCH stages and PUT /pipelines/{id}/transitions must persist valid order/configuration, enforce ownership and reject invalid transitions; actual automation execution remains separate.
|
||||
Sources: Source: [PipelineSettings.tsx](../../ui/src/pages/PipelineSettings.tsx), [pipelines.ts](../../server/src/routes/pipelines.ts). Tests: [PipelineSettings.test.ts](../../ui/src/pages/PipelineSettings.test.ts), [pipelines-service.test.ts](../../server/src/__tests__/pipelines-service.test.ts), [pipelines-routes.test.ts](../../server/src/__tests__/pipelines-routes.test.ts)
|
||||
|
||||
#### `items`
|
||||
|
||||
Scope: ui
|
||||
Storybook: Mount Pipelines/PipelineItemDetailView board grouping, item creation/details, stage/health/work references, empty/loading and failed transition.
|
||||
Production: GET/POST /pipelines/{id}/cases and POST /cases/{id}/transition must maintain company scope, valid stage changes and linked work; fixture stage state does not prove automation.
|
||||
Sources: Source: [Pipelines.tsx](../../ui/src/pages/Pipelines.tsx), [PipelineWorkReferences.tsx](../../ui/src/components/PipelineWorkReferences.tsx), [pipelines.ts](../../server/src/routes/pipelines.ts). Tests: [Pipelines.test.tsx](../../ui/src/pages/Pipelines.test.tsx), [pipelines-service.test.ts](../../server/src/__tests__/pipelines-service.test.ts), [pipelines-routes.test.ts](../../server/src/__tests__/pipelines-routes.test.ts), [pipelines-tutorial-flow.spec.ts](../../tests/e2e/pipelines-tutorial-flow.spec.ts)
|
||||
|
||||
#### `review`
|
||||
|
||||
Scope: ui
|
||||
Storybook: Mount ReviewQueue and item review pending output/revision, accept/reject/request-changes, bulk selection, stale/conflicting submission and errors.
|
||||
Production: POST /cases/{id}/review and /companies/{id}/review-cases/bulk must authorize reviewer, persist correct outcome/transition and reject stale or invalid input.
|
||||
Sources: Source: [Pipelines.tsx](../../ui/src/pages/Pipelines.tsx), [pipelines.ts](../../server/src/routes/pipelines.ts). Tests: [Pipelines.test.tsx](../../ui/src/pages/Pipelines.test.tsx), [pipelines-routes.test.ts](../../server/src/__tests__/pipelines-routes.test.ts), [pipelines-service.test.ts](../../server/src/__tests__/pipelines-service.test.ts), [pipelines-tutorial-flow.spec.ts](../../tests/e2e/pipelines-tutorial-flow.spec.ts)
|
||||
|
||||
#### `learnings`
|
||||
|
||||
Scope: ui
|
||||
Storybook: Mount actual Learnings export with filtered case events, review/forced-move entries, source links, empty/loading/error. This is event history, not a separately authored learning-record system.
|
||||
Production: GET /companies/{id}/case-events in pipelines routes needs existing company/access contract tests; a rendered event cannot establish learning quality.
|
||||
Sources: Source: [Pipelines.tsx](../../ui/src/pages/Pipelines.tsx), [pipeline-learnings.ts](../../ui/src/lib/pipeline-learnings.ts), [pipelines.ts](../../server/src/routes/pipelines.ts). Tests: [Pipelines.test.tsx](../../ui/src/pages/Pipelines.test.tsx), [pipelines-routes.test.ts](../../server/src/__tests__/pipelines-routes.test.ts), [pipelines-service.test.ts](../../server/src/__tests__/pipelines-service.test.ts)
|
||||
@@ -1,4 +1,8 @@
|
||||
# Plugins and contributed product surfaces
|
||||
---
|
||||
navigation: {"section":"Apps, channels, and extensions","sectionOrder":50,"order":60}
|
||||
---
|
||||
|
||||
# Plugins
|
||||
|
||||
Operators install and configure plugins, inspect their status and errors, and use their contributed pages, tools, and managed resources within the plugin’s granted capabilities.
|
||||
|
||||
@@ -49,3 +53,37 @@ Manual: Open the contributed page by navigation and cold deep link, perform a ha
|
||||
- Installing a plugin does not authorize every host capability or external action.
|
||||
- Plugin-provided routes are dynamic; this map covers the host lifecycle, not every third-party feature.
|
||||
- Environment-driver plugins also need the [environment](./execution-environments.md) checks.
|
||||
|
||||
### Storybook verification
|
||||
|
||||
#### `installation`
|
||||
|
||||
Scope: ui
|
||||
Storybook: Mount PluginManager trusted package and bundled-local choices, pending install, validation/recoverable error and installed status.
|
||||
Production: POST /plugins/install on a disposable package; enforce instance install authority, trusted path/package validation and correct version. Package and local install are distinct.
|
||||
Sources: Source: [PluginManager.tsx](../../ui/src/pages/PluginManager.tsx), [plugins.ts](../../server/src/routes/plugins.ts), [plugin-install-guard.ts](../../server/src/services/plugin-install-guard.ts). Tests: [plugin-install-route-security.test.ts](../../server/src/__tests__/plugin-install-route-security.test.ts), [plugin-install-autobuild.test.ts](../../server/src/__tests__/plugin-install-autobuild.test.ts), [plugin-routes-authz.test.ts](../../server/src/__tests__/plugin-routes-authz.test.ts)
|
||||
|
||||
#### `configuration`
|
||||
|
||||
Scope: ui
|
||||
Storybook: Mount PluginSettings valid/invalid schema inputs, saved configuration, pending/failure and unavailable plugin.
|
||||
Production: GET/POST /plugins/{id}/config and POST config/test must preserve validation/company scope and deliver saved config to real plugin worker/startup.
|
||||
Sources: Source: [PluginSettings.tsx](../../ui/src/pages/PluginSettings.tsx), [plugins.ts](../../server/src/routes/plugins.ts), [plugin-config-validator.ts](../../server/src/services/plugin-config-validator.ts). Tests: [PluginSettings.test.tsx](../../ui/src/pages/PluginSettings.test.tsx), [plugin-config-startup-delivery.test.ts](../../server/src/__tests__/plugin-config-startup-delivery.test.ts), [plugin-routes-authz.test.ts](../../server/src/__tests__/plugin-routes-authz.test.ts)
|
||||
|
||||
#### `contributions`
|
||||
|
||||
Scope: ui
|
||||
Storybook: Mount PluginPage and CompanySettingsPluginPage contributed routes/tabs, loading, missing/unavailable plugin and action failures with a known fixture plugin.
|
||||
Production: Serve real static plugin UI; enforce bridge data/action host capabilities and company boundaries; exercise a harmless action and cold deep link.
|
||||
Sources: Source: [PluginPage.tsx](../../ui/src/pages/PluginPage.tsx), [CompanySettingsPluginPage.tsx](../../ui/src/pages/CompanySettingsPluginPage.tsx), [plugins.ts](../../server/src/routes/plugins.ts), [plugin-ui-static.ts](../../server/src/routes/plugin-ui-static.ts). Tests: [PluginPage.test.tsx](../../ui/src/pages/PluginPage.test.tsx), [CompanySettingsPluginPage.test.tsx](../../ui/src/pages/CompanySettingsPluginPage.test.tsx), [plugin-ui-static.test.ts](../../server/src/__tests__/plugin-ui-static.test.ts), [plugin-tenant-isolation.test.ts](../../server/src/__tests__/plugin-tenant-isolation.test.ts)
|
||||
|
||||
#### `lifecycle`
|
||||
|
||||
Scope: ui
|
||||
Storybook: Mount PluginManager active/disabled/uninstall/upgrade pending and failures; distinguish operator controls from developer watcher reload.
|
||||
Production: POST enable/disable and DELETE /plugins/{id} must stop worker/tool/managed-resource activity and clean owned resources; verify disposable restart/uninstall and developer watcher separately.
|
||||
Sources: Source: [PluginManager.tsx](../../ui/src/pages/PluginManager.tsx), [plugins.ts](../../server/src/routes/plugins.ts), [plugin-lifecycle.ts](../../server/src/services/plugin-lifecycle.ts), [plugin-dev-watcher.ts](../../server/src/services/plugin-dev-watcher.ts). Tests: [plugin-lifecycle-restart.test.ts](../../server/src/__tests__/plugin-lifecycle-restart.test.ts), [plugin-routes-authz.test.ts](../../server/src/__tests__/plugin-routes-authz.test.ts), [plugin-dev-watcher.test.ts](../../server/src/__tests__/plugin-dev-watcher.test.ts)
|
||||
|
||||
### Documentation scope: Plugins, gateways, and tool profiles
|
||||
|
||||
Host plugin/gateway/profile lifecycles are mapped. Third-party plugin behaviors and every client transport/provider combination are outside host-wide coverage.
|
||||
@@ -1,3 +1,7 @@
|
||||
---
|
||||
navigation: {"section":"Projects and execution","sectionOrder":40,"order":10}
|
||||
---
|
||||
|
||||
# Projects and repositories
|
||||
|
||||
People group tasks into projects, attach goals and repositories, and configure the context and defaults used by project work.
|
||||
@@ -51,3 +55,15 @@ Manual: Attach a small repository, save, and create a project task. Inspect the
|
||||
- Project repository configuration and a provisioned execution workspace are different records.
|
||||
- See [workspaces](./workspaces.md), [goals](./goals.md), and [budgets](./budgets-costs.md) for those features.
|
||||
- Do not assume a deleted or archived project should erase its historical task evidence.
|
||||
|
||||
### Automatic repository skills
|
||||
|
||||
Creating or attaching a GitHub repository enqueues skill import without another setup
|
||||
step. Check Skills → Sources and the installed library afterward. Ordinary edits to
|
||||
older projects do not adopt their repositories; explicit adoption belongs in Sources.
|
||||
Removing a repository retains installed skills and originating project access but stops
|
||||
its automatic tracking. Changing the ref does not retarget existing skill references.
|
||||
|
||||
### Documentation scope: Projects and execution workspaces
|
||||
|
||||
Provider-specific provisioning, multi-repository/submodule edge cases, Git reconciliation variants, and all service exposure combinations require deeper recipes.
|
||||
@@ -1,3 +1,7 @@
|
||||
---
|
||||
navigation: {"section":"Tasks and conversations","sectionOrder":20,"order":50}
|
||||
---
|
||||
|
||||
# Questions and approvals
|
||||
|
||||
People answer an agent's questions and decide requests without losing the task's
|
||||
@@ -182,3 +186,7 @@ unless its actual provider journey was driven.
|
||||
sharing UI. A watchdog cannot acquire board authority by resolving a card.
|
||||
- An answer to an old question can queue behind a successor run; it does not
|
||||
automatically steer that run. See [steering](./steering.md).
|
||||
|
||||
### Documentation scope: Formal governance approvals
|
||||
|
||||
Formal board decisions and signoff have recipes; every approval payload/type and actor/host error permutation is not enumerated.
|
||||
@@ -1,3 +1,7 @@
|
||||
---
|
||||
navigation: {"section":"Projects and execution","sectionOrder":40,"order":50}
|
||||
---
|
||||
|
||||
# Recovery
|
||||
|
||||
People can see why a task stopped, who owns the next action, and whether a safe
|
||||
@@ -98,6 +102,17 @@ cleanup. The [route regressions](../../server/src/__tests__/issue-recovery-actio
|
||||
and [heartbeat regression](../../server/src/__tests__/heartbeat-process-recovery.test.ts)
|
||||
cover this sequence without a live operator recovery claim.
|
||||
|
||||
An intentionally Done onboarding parent can still need its validated
|
||||
child-completion report. Recovery must not mark that callback successful before
|
||||
execution solely because the parent is Done. The existing
|
||||
[stale-lock sweep suite](../../server/src/__tests__/recovery-stale-issue-lock-sweep.test.ts)
|
||||
covers delayed native/Legacy startup, invalid parent/child/company/assignee
|
||||
bindings and a dead owner. Process-death and ownership backstops remain active.
|
||||
Repeat the real onboarding journey and correlate callback turn events with its
|
||||
reply and downloadable child file; status alone does not prove delivery. The
|
||||
literal `ea6c8eb5e16d61111968f633a66748b397b64a3e` live failure is retained,
|
||||
and the revised behavior still needs live qualification.
|
||||
|
||||
### `run-detail`
|
||||
|
||||
Automated: [run workspace recovery](../../ui/src/components/RunWorkspaceRecoverySurface.test.tsx)
|
||||
@@ -119,7 +134,41 @@ Automated: [disposition notices](../../ui/src/components/DispositionRecoveryNoti
|
||||
tests pending/error/gated states and waiting for the real retry acknowledgement.
|
||||
The recovery-card suite covers workspace divergence, reissue, reconcile, and
|
||||
confirmation. [Workspace export](../../ui/src/components/WorkspaceExportRecovery.test.tsx)
|
||||
covers its separate repair surface.
|
||||
covers quiet restoration, legacy/operator assistance and resolved states.
|
||||
|
||||
For a retained legacy file hold, open the source task after its recovery action
|
||||
has resolved but its files still need recovery. An authorized board operator can
|
||||
record the verified recovered files and backup link without changing the current
|
||||
task status or starting another run. The server must independently validate the
|
||||
original stopped-execution receipt. Agent Chat must show the file hold rather than
|
||||
suggesting another message. The [file recovery form](../../ui/src/components/WorkspaceFileRecovery.test.tsx),
|
||||
[notice](../../ui/src/components/ExecutionBlockerNotice.test.tsx), and
|
||||
[repair route](../../server/src/__tests__/workspace-restore-repair-route.test.ts)
|
||||
cover evidence/confirmation, read-only access, stale or missing stop proof,
|
||||
source-only repair, and preserved task status. These tests use fixtures; separately
|
||||
verify original files and their attached artifact before recording a real repair.
|
||||
|
||||
Repeat source-only repair with a `succeeded` legacy run that still has a retained
|
||||
file obligation. Its result must remain successful, its current task owner and
|
||||
status must stay unchanged, and later saved input must become eligible for normal
|
||||
admission. A running or queued source and a normal retry of a successful turn
|
||||
remain denied. The [reconciliation regressions](../../server/src/services/workspace-restore-reconciliation.test.ts)
|
||||
cover these cases and stop-receipt validation without claiming live provider proof.
|
||||
|
||||
For an abandoned native copyback owner, the harness verifies the exact stopped
|
||||
deployment and the reconciler restores saved work automatically. Task users see
|
||||
no process details or shutdown form. The documented operator API handles older
|
||||
receipts after independent platform verification, through a separate administrator
|
||||
gate. The [authorization regressions](../../server/src/__tests__/authorization-service.test.ts)
|
||||
and [route regressions](../../server/src/__tests__/issue-agent-mutation-ownership-routes.test.ts)
|
||||
cover administrator admission, ordinary-member and agent denial, suspended and
|
||||
foreign membership, missing role data, and stale cloud admin rows.
|
||||
The [native workspace finalizer suite](../../server/src/services/native-runtime/native-workspace-finalizer.test.ts)
|
||||
runs the real reconciler with a valid saved yield from `result_accepted`,
|
||||
`workspace_finalizing`, and `retryable_failure`. It verifies physical fencing
|
||||
before verified stop, automatic and operator recovery, successful export and commitment, hold resolution,
|
||||
unchanged saved results, retained approval/monitor waits, and no new provider wake.
|
||||
These local regressions do not prove a deployment platform stopped a foreign writer.
|
||||
|
||||
Manual: reproduce an exhausted disposable action. Click once, verify pending
|
||||
state prevents repeated clicks, and inspect a successful continuation or an
|
||||
@@ -128,6 +177,17 @@ repair, record the compared branches/revisions and preserve uncommitted work;
|
||||
confirm the repair's actual result before resuming. Check the denied and stale
|
||||
action paths. A changed card label is insufficient proof of workspace integrity.
|
||||
|
||||
For an abandoned native controller, follow the [stop-verification procedure](../../doc/native-workspace-finalization-recovery.md)
|
||||
with a disposable deployment. A new platform-bound owner recovers automatically
|
||||
only after the harness signs proof that the exact deployment fully stopped.
|
||||
Legacy owners require independently verified stop evidence through the operator
|
||||
API; the task has no shutdown form. Confirm
|
||||
the original accepted result commits, the recovery hold resolves, saved files
|
||||
remain intact, and existing approval waits or monitor checks remain. No new agent
|
||||
turn should start. Repeat with a retry-phase owner and an ordinary runtime manager;
|
||||
the first can resume through automatic proof or authorized operator confirmation,
|
||||
while the second cannot use the operator API.
|
||||
|
||||
### `post-stop-message`
|
||||
|
||||
Automated: [legacy continuation](../../server/src/services/recovery/legacy-continuation.test.ts),
|
||||
@@ -167,3 +227,26 @@ only. Separately inspect the underlying execution if it is still stuck.
|
||||
restart continuity. Use the appropriate runtime suite for that claim.
|
||||
- See [execution semantics](../../doc/execution-semantics.md) for the governing
|
||||
recovery contract and [steering](./steering.md) for saved follow-ups.
|
||||
|
||||
### Storybook verification
|
||||
|
||||
#### `exhaustion`
|
||||
|
||||
Scope: ui
|
||||
Storybook: Exhausted/overdue attempts, operator retry pending/error, blocked authority/gate and specific escalation.
|
||||
Production: Inspect durable attempt bounds and actual eligible retry/repair; acknowledgment alone does not prove continued execution.
|
||||
Sources: Source: [IssueRecoveryActionCard.tsx](../../ui/src/components/IssueRecoveryActionCard.tsx), [DispositionRecoveryNotice.tsx](../../ui/src/components/DispositionRecoveryNotice.tsx), [issue-recovery-actions.ts](../../server/src/services/issue-recovery-actions.ts). Tests: [IssueRecoveryActionCard.test.tsx](../../ui/src/components/IssueRecoveryActionCard.test.tsx), [DispositionRecoveryNotice.test.tsx](../../ui/src/components/DispositionRecoveryNotice.test.tsx), [issue-recovery-actions.test.ts](../../server/src/__tests__/issue-recovery-actions.test.ts), [recovery.spec.ts](../../tests/e2e/execution-recovery/recovery.spec.ts)
|
||||
|
||||
#### `unknown-outcome`
|
||||
|
||||
Scope: ui
|
||||
Storybook: Uncertain external outcome, required inspection/evidence and explicit permitted operator decision.
|
||||
Production: Corroborate provider outcome before authorization; enforce no automatic external side-effect replay and reject stale/unauthorized decisions.
|
||||
Sources: Source: [IssueRecoveryActionCard.tsx](../../ui/src/components/IssueRecoveryActionCard.tsx), [issue-recovery-actions.ts](../../server/src/services/issue-recovery-actions.ts). Tests: [IssueRecoveryActionCard.test.tsx](../../ui/src/components/IssueRecoveryActionCard.test.tsx), [issue-recovery-actions.test.ts](../../server/src/__tests__/issue-recovery-actions.test.ts), [recovery.spec.ts](../../tests/e2e/execution-recovery/recovery.spec.ts)
|
||||
|
||||
#### `user-continuation`
|
||||
|
||||
Scope: ui
|
||||
Storybook: Saved follow-up waiting on stop cleanup, pause/budget gate, one eligible continuation and result/failure.
|
||||
Production: Confirm previous execution stopped before delivery, preserve message, avoid duplicate wakes and honor actual task/ancestor/budget gate in separate legacy/native paths.
|
||||
Sources: Source: [TaskChatQueuedMessages.tsx](../../ui/src/components/task-chat/TaskChatQueuedMessages.tsx), [legacy-continuation.ts](../../server/src/services/recovery/legacy-continuation.ts), [native-restart-recovery.ts](../../server/src/services/native-runtime/native-restart-recovery.ts). Tests: [legacy-continuation.test.ts](../../server/src/services/recovery/legacy-continuation.test.ts), [native-restart-recovery.test.ts](../../server/src/services/native-runtime/native-restart-recovery.test.ts), [issue-queued-comments-routes.test.ts](../../server/src/__tests__/issue-queued-comments-routes.test.ts), [legacy-failure-continuation.spec.ts](../../tests/e2e/legacy-failure-continuation.spec.ts)
|
||||
@@ -1,3 +1,7 @@
|
||||
---
|
||||
navigation: {"section":"Automation and structured work","sectionOrder":60,"order":10}
|
||||
---
|
||||
|
||||
# Routines, schedules, and triggers
|
||||
|
||||
Operators define repeatable work, configure its inputs and triggers, run it on demand or automatically, and inspect the execution history and resulting tasks.
|
||||
@@ -51,3 +55,28 @@ Manual: Set a near-term disposable schedule or authorized test webhook, verify o
|
||||
- Saving a schedule does not prove the scheduler invoked it.
|
||||
- Timezone, overlap/concurrency rules, and plugin ownership affect behavior.
|
||||
- A routine run’s task must still respect pause, access, and budget gates.
|
||||
- Managed idle hosts may use the [routine wake protocol](../../doc/idle-sleep-safety.md#scheduled-routine-wake-protocol)
|
||||
to sleep between supported future runs. The host must save a durable alarm
|
||||
and verify the same generation before stopping. Local execution and catch-up
|
||||
remain unchanged. Unsupported triggers and other pending work keep it awake.
|
||||
|
||||
### Latest skill references
|
||||
|
||||
Routine instructions retain stable skill mentions. After a project source syncs an
|
||||
upstream change, the next execution uses the latest installed version without waiting
|
||||
on GitHub. Record the resolved version before/after and verify a resumed execution
|
||||
keeps its original version. Private skill references require current project access
|
||||
for both the agent and its responsible person.
|
||||
|
||||
### Storybook verification
|
||||
|
||||
#### `run-now`
|
||||
|
||||
Scope: ui
|
||||
Storybook: Mount RoutineRunVariablesDialog through actual RoutineDetail with required/default inputs, project/workspace overrides, pending, blocked and failed submission. RunButton-only no-op examples do not supply/run inputs.
|
||||
Production: POST /routines/{id}/run must validate variables, create one attributed execution/task and obey pause/access/budget gates; inspect actual task outcome separately.
|
||||
Sources: Source: [RoutineRunVariablesDialog.tsx](../../ui/src/components/RoutineRunVariablesDialog.tsx), [RoutineDetail.tsx](../../ui/src/pages/RoutineDetail.tsx), [routines.ts](../../server/src/routes/routines.ts). Tests: [RoutineRunVariablesDialog.test.tsx](../../ui/src/components/RoutineRunVariablesDialog.test.tsx), [routines-service.test.ts](../../server/src/__tests__/routines-service.test.ts), [routines-e2e.test.ts](../../server/src/__tests__/routines-e2e.test.ts)
|
||||
|
||||
### Documentation scope: Routines, pipelines, cases, and status cards
|
||||
|
||||
All four capabilities have recipes. Trigger/provider/timezone combinations, custom case schemas, stage automation types, and summarizer quality need deeper cases.
|
||||
@@ -1,3 +1,7 @@
|
||||
---
|
||||
navigation: {"section":"Agents and reusable capabilities","sectionOrder":30,"order":20}
|
||||
---
|
||||
|
||||
# Runs, harnesses, and model accounts
|
||||
|
||||
Operators choose an agent harness and model account, inspect execution history and transcripts, and distinguish a working configuration from a successful task result.
|
||||
@@ -45,6 +49,11 @@ and [runtime prerequisites](../../packages/paperclip-runner/README.md) define th
|
||||
platform/libc boundary. Windows and Alpine/musl remain Legacy. Claude follows
|
||||
its qualified rollout described above. Disabled adapters, external overrides, and selected-target
|
||||
qualification also affect availability.
|
||||
On a fresh forced-Kubernetes instance without an environment row, inspect discovery
|
||||
and create with automatic selection. Both must retain Legacy without provisioning;
|
||||
an explicit Paperclip request must give target-qualification guidance. Begin the
|
||||
ordinary task to exercise the existing lazy environment path. This live journey
|
||||
remains separate from the resolver's source controls.
|
||||
|
||||
For sandbox defaults, follow the [environment probe](./execution-environments.md#environment-settings)
|
||||
recipe first. Discovery/creation read company-bound immutable-image evidence
|
||||
@@ -63,6 +72,24 @@ existing agent, make an unrelated edit, and confirm both its persisted runner an
|
||||
next run stay unchanged. Use [hiring/import preservation](./agents.md#hire-agent)
|
||||
for approval and portability controls.
|
||||
|
||||
Test native Codex with a saved subscription whose setup auth file is a managed
|
||||
link, as well as a regular file and an API-key account. Setup must seed the
|
||||
isolated probe from the checked account without exposing credentials or changing
|
||||
its saved runner. With subscription authentication, an unbound configured
|
||||
`CODEX_HOME` with linked credentials must fail setup with managed-account or explicit Legacy guidance; it must not claim
|
||||
readiness when task isolation would omit the file. Dangling or incorrectly owned
|
||||
credentials must also fail clearly. A selected `CODEX_API_KEY` or
|
||||
`OPENAI_API_KEY` takes precedence over an unrelated subscription file. Test valid,
|
||||
dangling and invalid subscription links with that selected key; setup must test
|
||||
the key without reading or refreshing the unrelated account. The private probe copy must be removed after confirmed retirement following success,
|
||||
failure or cancellation. Unconfirmed shutdown remains a cleanup failure.
|
||||
Exercise an unavailable local daemon and a preparation failure before probe
|
||||
handoff. No owned temporary credential copy may remain, and original account
|
||||
files must be unchanged. A probe whose shutdown is unconfirmed must retain its
|
||||
recovery state; do not treat it as a preparation-only failure.
|
||||
Existing setup controls use fake credentials; real account execution remains
|
||||
a separate acceptance requirement.
|
||||
|
||||
### `run-history`
|
||||
|
||||
Automated: [live run routes](../../server/src/__tests__/agent-live-run-routes.test.ts) and [run event sequencing](../../server/src/__tests__/heartbeat-run-event-sequencing.test.ts) cover run data contracts.
|
||||
@@ -75,6 +102,14 @@ retain their recorded execution configuration; do not infer their runner from a
|
||||
later edit to the agent. Account/harness branding and execution identity are
|
||||
different observations, both required in the evidence.
|
||||
|
||||
For an onboarding child-completion callback, verify actual session/turn events
|
||||
and the source-correlated reply. A `succeeded` row alone is insufficient: the
|
||||
literal `ea6c8eb5e16d61111968f633a66748b397b64a3e` managed attempt was marked
|
||||
successful during startup without a provider turn. The recovery correction
|
||||
preserves the existing validated Done-parent handoff; process-death and ownership
|
||||
checks remain active. Its PostgreSQL controls are separate from the required
|
||||
revised-source live onboarding and follow-up proof.
|
||||
|
||||
## Gotchas
|
||||
|
||||
- Model accounts are managed in Apps and inline agent account controls.
|
||||
@@ -94,3 +129,13 @@ after close. These are lifecycle controls, separate from installed provider proo
|
||||
The real daemon readiness and recovery controls require their existing native
|
||||
fixtures in hosted CI; passing credential-free controls does not qualify them.
|
||||
A primary setup timeout remains a failure even when teardown also fails.
|
||||
|
||||
For remote setup shutdown, verify that each durable-state read respects the
|
||||
remaining suspension deadline. A late result cannot establish suspension or
|
||||
queue a replacement command after that deadline. An intentional ingress close
|
||||
must observe physical socket closure before retiring its connection owner and
|
||||
releasing the endpoint; an unresponsive peer must not extend the setup budget.
|
||||
The existing transport and ingress suites exercise these conditions without a
|
||||
provider. Repeat the actual managed setup and useful task journey separately;
|
||||
the literal `651a3de64fc943216cc414b64b1443809f9499da` Test attempt failed
|
||||
cleanup before hire and retains its unconfirmed recovery state.
|
||||
@@ -1,4 +1,8 @@
|
||||
# Secrets, personal credentials, and proposals
|
||||
---
|
||||
navigation: {"section":"Apps, channels, and extensions","sectionOrder":50,"order":50}
|
||||
---
|
||||
|
||||
# Secrets and proposals
|
||||
|
||||
Operators manage company secret references, users supply their own credentials where required, and reviewers decide proposed secret changes without exposing secret values in ordinary UI evidence.
|
||||
|
||||
@@ -12,7 +16,7 @@ Agent access: [companion](../agent-access-map/secrets.md).
|
||||
- `user-secrets`: define required user credentials and set a value for the current user.
|
||||
- `proposals`: review proposed changes with the appropriate authority.
|
||||
- `vault-import`: import eligible external-vault references through the offered flow.
|
||||
- `runtime-delivery`: deliver only the secret references authorized for the run/actor.
|
||||
- `runtime-delivery`: deliver only the secret references authorized for the run/actor. Agent-owned instance secrets stay in the trusted server runtime and are never delivered to an agent.
|
||||
|
||||
## How to get to it (user POV)
|
||||
|
||||
@@ -30,7 +34,7 @@ Preconditions: follow the [baseline](./README.md#before-driving-a-journey). Use
|
||||
|
||||
### `secret-management`
|
||||
|
||||
Automated: [secrets service](../../server/src/__tests__/secrets-service.test.ts) and [user ownership](../../server/src/__tests__/secrets-service-user-secret-owner-scoped.test.ts) cover storage/access contracts.
|
||||
Automated: [secrets service](../../server/src/__tests__/secrets-service.test.ts) and [user ownership](../../server/src/__tests__/secrets-service-user-secret-owner-scoped.test.ts) cover storage/access contracts. [Instance-secret tests](../../server/src/__tests__/agent-instance-secrets.test.ts) cover local encrypted storage, owner isolation, and exclusion from ordinary bindings.
|
||||
|
||||
Manual: Create a dummy secret reference, bind it through a supported field, and verify its use in a harmless run without logging the value. Update it and reload. Switch users and confirm personal values remain owner-scoped and missing credentials produce an actionable state.
|
||||
|
||||
@@ -49,3 +53,16 @@ Manual: Review a dummy proposal, reject one and accept another, then inspect the
|
||||
- A displayed reference name is not proof that the actor can resolve its value at runtime.
|
||||
- Company secrets and user-specific values have different ownership.
|
||||
- Redaction needs verification in errors, activity, and run logs as well as the form.
|
||||
|
||||
### Storybook verification
|
||||
|
||||
#### `proposals`
|
||||
|
||||
Scope: ui
|
||||
Storybook: Mount ProposalsTab pending secret/binding proposals, blocked authority, expired/resolved proposal, approval/rejection pending/error, and redacted metadata.
|
||||
Production: GET /companies/{id}/secret-proposals and POST approve/reject must enforce company/admin/target authority, durable resolution and redaction; verified run-bound agent proposal creation is separate.
|
||||
Sources: Source: [ProposalsTab.tsx](../../ui/src/pages/secrets/ProposalsTab.tsx), [secrets.ts](../../server/src/routes/secrets.ts), [secret-proposal-authorization.ts](../../server/src/services/secret-proposal-authorization.ts). Tests: [ProposalsTab.render.test.tsx](../../ui/src/pages/secrets/ProposalsTab.render.test.tsx), [secret-proposals-routes.test.ts](../../server/src/__tests__/secret-proposals-routes.test.ts)
|
||||
|
||||
### Documentation scope: Secrets and secret proposals
|
||||
|
||||
Company/user/proposal/vault and runtime-binding paths are mapped; every secret provider, rotation scenario, and delivery context needs separate validation.
|
||||
@@ -1,4 +1,8 @@
|
||||
# Skill discovery, authoring, and policy
|
||||
---
|
||||
navigation: {"section":"Agents and reusable capabilities","sectionOrder":30,"order":30}
|
||||
---
|
||||
|
||||
# Skills and Skill Studio
|
||||
|
||||
Operators discover or import skills, author and test them in Skill Studio, manage source versions, and decide which agents may use them.
|
||||
|
||||
@@ -61,3 +65,40 @@ Manual: Enable the skill for one test agent and leave another without access. Ru
|
||||
- Installed does not mean enabled for every agent.
|
||||
- Read-only GitHub/bundled skills may require a writable copy rather than an in-place edit.
|
||||
- Studio interaction coverage is in [questions and approvals](./questions-and-approvals.md); a passing mock is not a live harness test.
|
||||
|
||||
### Project repository source behavior
|
||||
|
||||
New GitHub project repositories import skills automatically. Skills → Sources lists
|
||||
accessible legacy repositories with Import skills, shows source/project provenance,
|
||||
groups matching repository/ref workspaces into one row, and shows queued/importing feedback,
|
||||
and provides Refresh and Automatic updates in its source menu. Verify future additions,
|
||||
retained exclusions, error recovery and reload persistence. Private-only sources must
|
||||
be absent for unrelated people/agents; access through either originating project is sufficient.
|
||||
|
||||
Storybook/browser coverage uses scoped fixtures. Live GitHub-to-routine execution
|
||||
must be verified separately; inspect resolved version IDs across an upstream update.
|
||||
|
||||
### Connection repair during an update
|
||||
|
||||
A missing tracked branch is a branch repair, not a credential failure. On an independent
|
||||
source, choose a new branch from the searchable list or enter its name. The repository's
|
||||
default branch is marked and included even outside the first 100 listed branches.
|
||||
Loading or a failed list request does not prevent manual entry; saving validates the
|
||||
requested ref. Installed identities, selections and version pins remain. Project-tracked
|
||||
branches are changed in project settings. A saved connection
|
||||
is validated against both the repository and tracked revision before repair succeeds.
|
||||
|
||||
Open Choose connection while a source is being refreshed. Select an authorized account and save. If the source changes, the dialog must retain that selection, load the current revision, and allow a second save without reopening. The [project repository browser suite](../../tests/storybook-visual/project-repository-skills.spec.ts) covers this recovery with simulated upstream data.
|
||||
|
||||
### Storybook verification
|
||||
|
||||
#### `testing`
|
||||
|
||||
Scope: ui
|
||||
Storybook: Studio test inputs/configuration, running, question/approval, result and failed test states.
|
||||
Production: Run bounded test of actual saved version with correct selected account/environment; inspect persisted test detail and eligible interaction response.
|
||||
Sources: Source: [SkillStudio.tsx](../../ui/src/pages/SkillStudio.tsx), [companySkills.ts](../../ui/src/api/companySkills.ts). Tests: [SkillStudio.test.tsx](../../ui/src/pages/SkillStudio.test.tsx), [company-skill-test-runs-service.test.ts](../../server/src/__tests__/company-skill-test-runs-service.test.ts)
|
||||
|
||||
### Documentation scope: Skills, Skill Studio, and teams
|
||||
|
||||
Main library/Studio/source/policy and CLI team-install paths are mapped. Full source-provider conflicts, harness sync, and remote package variants remain; catalog UI is not a current top-level route.
|
||||
@@ -1,4 +1,8 @@
|
||||
# Status cards and refreshed summaries
|
||||
---
|
||||
navigation: {"section":"Automation and structured work","sectionOrder":60,"order":40}
|
||||
---
|
||||
|
||||
# Status cards
|
||||
|
||||
The status-card experiment turns a saved prompt/query into an inspectable summary of watched work, with refresh history, configuration, and archive/restore controls.
|
||||
|
||||
@@ -44,3 +48,33 @@ Manual: Change a disposable card’s prompt or summarizer, run the offered rebui
|
||||
- Summary quality needs comparison against source work, not just a successful task status.
|
||||
- A saved old summary must not be counted as a successful new refresh.
|
||||
- Experimental visibility, author permissions, and agent ownership constrain mutation.
|
||||
|
||||
### Storybook verification
|
||||
|
||||
#### `authoring`
|
||||
|
||||
Scope: ui
|
||||
Storybook: Mount CreateStatusCardDialog and StatusCardSettingsForm prompt, summarizer, refresh options, required/invalid inputs and save errors.
|
||||
Production: POST /companies/{id}/status-cards and PATCH /status-cards/{id} must enforce gate/author authority, save configuration and start expected compile task when prompt changes.
|
||||
Sources: Source: [CreateStatusCardDialog.tsx](../../ui/src/pages/StatusCards/CreateStatusCardDialog.tsx), [StatusCardSettingsForm.tsx](../../ui/src/pages/StatusCards/StatusCardSettingsForm.tsx), [status-cards.ts](../../server/src/routes/status-cards.ts). Tests: [StatusCardSettingsForm.test.tsx](../../ui/src/pages/StatusCards/StatusCardSettingsForm.test.tsx), [status-cards.test.ts](../../server/src/__tests__/status-cards.test.ts)
|
||||
|
||||
#### `generation`
|
||||
|
||||
Scope: ui
|
||||
Storybook: Mount card tile/drawer compiling, refreshing, failed, stale existing summary and successful new-summary states with linked task.
|
||||
Production: POST /status-cards/{id}/recompile and /refresh plus update/finalization engine must persist actual new output/history; compare saved summary with source tasks, not merely successful task status.
|
||||
Sources: Source: [StatusCardTile.tsx](../../ui/src/pages/StatusCards/StatusCardTile.tsx), [StatusCardDetailDrawer.tsx](../../ui/src/pages/StatusCards/StatusCardDetailDrawer.tsx), [status-cards.ts](../../server/src/routes/status-cards.ts), [status-card-update-engine.ts](../../server/src/services/status-card-update-engine.ts). Tests: [StatusCardTile.test.tsx](../../ui/src/pages/StatusCards/StatusCardTile.test.tsx), [status-cards.test.ts](../../server/src/__tests__/status-cards.test.ts), [status-card-update-engine.test.ts](../../server/src/__tests__/status-card-update-engine.test.ts)
|
||||
|
||||
#### `inspection`
|
||||
|
||||
Scope: ui
|
||||
Storybook: Mount StatusCardDetailDrawer summary, watched work, update/revision history, query debug, empty/loading/error and stale summary disclosure.
|
||||
Production: GET /status-cards/{id}, /updates, /summary-revisions and /dry-run must filter accessible card/source records; fixtures cannot establish summary truth or query authorization.
|
||||
Sources: Source: [StatusCardDetailDrawer.tsx](../../ui/src/pages/StatusCards/StatusCardDetailDrawer.tsx), [status-cards.ts](../../server/src/routes/status-cards.ts). Tests: [StatusCardTile.test.tsx](../../ui/src/pages/StatusCards/StatusCardTile.test.tsx), [status-cards.test.ts](../../server/src/__tests__/status-cards.test.ts)
|
||||
|
||||
#### `archive`
|
||||
|
||||
Scope: ui
|
||||
Storybook: Mount StatusCards and ArchivedStatusCardRow active/archived list, restore pending/failure and old-summary state. Archive differs from deletion.
|
||||
Production: PATCH /status-cards/{id} archived true/false must persist and authorize change; restore may enqueue refresh, whose new outcome must be inspected rather than treating old summary as current.
|
||||
Sources: Source: [index.tsx](../../ui/src/pages/StatusCards/index.tsx), [ArchivedStatusCardRow.tsx](../../ui/src/pages/StatusCards/ArchivedStatusCardRow.tsx), [status-cards.ts](../../server/src/routes/status-cards.ts). Tests: [status-cards.test.ts](../../server/src/__tests__/status-cards.test.ts), [status-card-update-engine.test.ts](../../server/src/__tests__/status-card-update-engine.test.ts)
|
||||
@@ -1,3 +1,7 @@
|
||||
---
|
||||
navigation: {"section":"Tasks and conversations","sectionOrder":20,"order":60}
|
||||
---
|
||||
|
||||
# Steering and queued messages
|
||||
|
||||
People can send follow-ups while an agent works, manage saved messages that have
|
||||
@@ -135,3 +139,19 @@ gap; do not assume browser queue controls are available in every channel.
|
||||
- An interrupted run may need verified cleanup before a saved follow-up can
|
||||
start. Preserve and inspect the wait reason; see [recovery](./recovery.md).
|
||||
- A healthy idle Agent Chat is waiting for input, not stranded unfinished work.
|
||||
|
||||
### Storybook verification
|
||||
|
||||
#### `drafts`
|
||||
|
||||
Scope: ui
|
||||
Storybook: Task-keyed restored draft and attachment receipts; task switch/reload, failed send and uncertain-save recovery.
|
||||
Production: Retain correct task draft across navigation and reload; inspect authoritative saved receipt before claiming delivery; do not clear storage on every harness mount.
|
||||
Sources: Source: [TaskChatComposer.tsx](../../ui/src/components/task-chat/TaskChatComposer.tsx), [composer-draft.ts](../../ui/src/lib/composer-draft.ts). Tests: [TaskChatComposer.test.tsx](../../ui/src/components/task-chat/TaskChatComposer.test.tsx), [issue-queued-comments-routes.test.ts](../../server/src/__tests__/issue-queued-comments-routes.test.ts)
|
||||
|
||||
#### `approval-queue`
|
||||
|
||||
Scope: ui
|
||||
Storybook: Answered question/accepted approval delivery waiting, eligible steer/interrupt, failed delivery and fresh-session-only approval.
|
||||
Production: Keep response delivery durable and distinct from editable comments; coalesce once, enforce fresh-session restrictions and deduplicate concurrent/retried continuation.
|
||||
Sources: Source: [TaskChatQueuedMessages.tsx](../../ui/src/components/task-chat/TaskChatQueuedMessages.tsx), [question-response-delivery.ts](../../server/src/services/question-response-delivery.ts). Tests: [TaskChatQueuedMessages.test.tsx](../../ui/src/components/task-chat/TaskChatQueuedMessages.test.tsx), [question-response-delivery.test.ts](../../server/src/__tests__/question-response-delivery.test.ts), [issue-queued-comments-routes.test.ts](../../server/src/__tests__/issue-queued-comments-routes.test.ts)
|
||||
@@ -1,3 +1,7 @@
|
||||
---
|
||||
navigation: {"section":"Tasks and conversations","sectionOrder":20,"order":20}
|
||||
---
|
||||
|
||||
# Delegation, dependencies, and signoff
|
||||
|
||||
A larger task can coordinate child work, dependencies, reviewers, and execution controls while preserving a clear owner and a traceable completion decision.
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
---
|
||||
navigation: {"section":"Tasks and conversations","sectionOrder":20,"order":10}
|
||||
---
|
||||
|
||||
# Task creation and lifecycle
|
||||
|
||||
People create, assign, organize, discuss, and finish tasks. A task retains its owner, project, priority, history, and outputs as it moves through the work lifecycle.
|
||||
@@ -49,6 +53,8 @@ Use a human/unassigned task to verify persistence without invoking a model.
|
||||
|
||||
Automated: [task-list helpers](../../ui/src/pages/Issues.test.tsx) cover search URLs, pagination, deduplication, and presentation constants. The suite does not render the page or exercise filtering, grouping, opening a task, and returning; those interactions still need a running-browser check.
|
||||
|
||||
Manual: Seed human-created, agent-created, scheduled routine, human-initiated chat-channel, and creator-less tasks. Confirm automation is hidden by default, **show agent-created tasks** reveals it, reload preserves the choice, and Clear filters hides it again. Verify list and board search with automation newer than the human results, and expand contextual ancestors/subtasks without promoting unrelated automated roots. Repeat in project task lists. Agent profiles and task-detail subtasks retain complete history.
|
||||
|
||||
Manual: Filter by status and assignee, change grouping/sort, open a task, and return. Verify the correct records and selected view survive navigation and reload. Include an empty result and a failed request.
|
||||
|
||||
### `task-detail`
|
||||
@@ -71,3 +77,7 @@ Manual: Add a comment and edit authorized properties. Reload and verify history,
|
||||
- A status label alone does not prove that the requested work exists.
|
||||
- Single-assignee and atomic checkout rules still apply when tasks are created from different hosts.
|
||||
- Use [coordination](./task-coordination.md), [steering](./steering.md), and [documents](./documents-artifacts.md) for their distinct workflows.
|
||||
|
||||
### Documentation scope: Tasks, conversations, and attention
|
||||
|
||||
Recipes cover the main task/conversation/attention workflows. Full shell, permission, attachment, long-thread, and concurrency permutations remain to be enumerated.
|
||||
@@ -1,4 +1,8 @@
|
||||
# Team packages and catalog installation
|
||||
---
|
||||
navigation: {"section":"Agents and reusable capabilities","sectionOrder":30,"order":40}
|
||||
---
|
||||
|
||||
# Team packages and installation
|
||||
|
||||
Operators can preview and install a team package with its agents and related resources. Catalog/package installation is available through the CLI/API; the repository also contains catalog UI components that are not a current top-level route.
|
||||
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
# Execution workspaces, services, and files
|
||||
---
|
||||
navigation: {"section":"Projects and execution","sectionOrder":40,"order":30}
|
||||
---
|
||||
|
||||
# Workspaces, services, and files
|
||||
|
||||
A project or task can use a managed workspace with inspectable files, Git state, services, and runtime controls. Operators can follow its lifecycle through provisioning, use, and closure.
|
||||
|
||||
@@ -34,6 +38,25 @@ Automated: [workspace card](../../ui/src/components/IssueWorkspaceCard.test.tsx)
|
||||
|
||||
Manual: Run a task that writes a small file, follow the bound workspace, and inspect the file and revision. Reload and verify links still refer to the same workspace, not another checkout or a stale run.
|
||||
|
||||
For fresh standard-trust tasks using an implicit repository default, create a
|
||||
disposable project checkout whose shared Git storage overlaps a private task
|
||||
workspace. Verify that source admission creates a separate checkout from the
|
||||
configured remote, with no private local branches, commits or shared Git storage.
|
||||
Reusing, closing and reopening that task must retain the company/task-bound source;
|
||||
a failed workspace save must clean up only its owned checkout. Explicit workspace,
|
||||
parent/channel selections, literal or task-independent branch templates, low-trust
|
||||
tasks, and local or credential-bearing remote
|
||||
URLs must not use this fallback. A selected checkout requires recorded default
|
||||
provenance. Create tasks
|
||||
through the task service with an explicit checkout ID or an inherited parent
|
||||
source but no typed selection; verify denial, no clone or environment acquisition,
|
||||
and preservation of unpublished branch commits. Older ambiguous bindings and
|
||||
source choices changed during preparation must retain the denial. The
|
||||
[remote-source tests](../../server/src/services/isolated-remote-workspace-source.test.ts)
|
||||
and [preparation tests](../../server/src/services/heartbeat/workspace-preparation.test.ts)
|
||||
exercise the real Git isolation and lifecycle guards. They do not qualify live
|
||||
remote credentials or a provider deployment.
|
||||
|
||||
For task workspace selection, use the authorized task workspace API to choose a
|
||||
task directory, project source, or existing workspace. Verify that a change
|
||||
made during a run stays pending until the next normal admission. Submit another
|
||||
@@ -84,7 +107,26 @@ Manual: Provision a disposable workspace, wait for readiness, start an available
|
||||
|
||||
- A link or running badge does not prove the service is reachable from the user’s browser.
|
||||
- Workspace IDs, runtime leases, and repository paths are not interchangeable.
|
||||
- Terminal workspace cleanup wakes after committed task/workspace/PR changes and
|
||||
restores cooldown deadlines at startup. Empty lanes stop scanning. Display Git
|
||||
results can lag by thirty seconds. Compatible records share one advisory Git
|
||||
inspection per bounded page, while each record keeps its own delivery check.
|
||||
Destructive cleanup starts a separate Git scan even if an older scan is running.
|
||||
The [worker tests](../../server/src/__tests__/terminal-workspace-work.test.ts)
|
||||
cover quiet lanes and deadlines. The
|
||||
[service tests](../../server/src/__tests__/execution-workspaces-service.test.ts)
|
||||
cover real PostgreSQL signals and retained worktrees. These tests do not
|
||||
qualify an external wake alarm or a live provider deployment.
|
||||
- Organizational project, source project, task files, personal `AGENT_HOME`, and
|
||||
provider home have separate meanings. Private source ownership remains attached
|
||||
to copied files after source configuration changes or workspace closure.
|
||||
- Use [recovery](./recovery.md) for divergence/export repair and [CLI operations](./cli-operations.md) for local worktree tooling.
|
||||
|
||||
### Storybook verification
|
||||
|
||||
#### `closure`
|
||||
|
||||
Scope: ui
|
||||
Storybook: Close-readiness checks, pending changes/active runs, blocked/pending/error close, retry close and eligible reopening.
|
||||
Production: Confirm owned workspace shutdown, preserved files/Git state and permitted lifecycle transition/reopening; Browser Use session closure is unrelated.
|
||||
Sources: Source: [ExecutionWorkspaceDetail.tsx](../../ui/src/pages/ExecutionWorkspaceDetail.tsx), [ExecutionWorkspaceCloseDialog.tsx](../../ui/src/components/ExecutionWorkspaceCloseDialog.tsx), [execution-workspaces.ts](../../server/src/routes/execution-workspaces.ts). Tests: [execution-workspaces-routes.test.ts](../../server/src/__tests__/execution-workspaces-routes.test.ts), [execution-workspaces-service.test.ts](../../server/src/__tests__/execution-workspaces-service.test.ts), [execution-workspace-reopen.test.ts](../../server/src/__tests__/execution-workspace-reopen.test.ts)
|
||||
@@ -1,610 +0,0 @@
|
||||
# Storybook by feature
|
||||
|
||||
<!-- Generated by node scripts/storybook-catalog.mjs --write. Edit catalog.json. -->
|
||||
|
||||
[Contract and maintenance](README.md) · [Review findings](REVIEW.md)
|
||||
|
||||
224 story files; 2223 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.
|
||||
|
||||
## access
|
||||
|
||||
[Feature recipe](../feature-map/access.md)
|
||||
|
||||
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| [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. Merged-master task handoff recipe source-reviewed; fixtures do not establish outgoing-run completion, cancellation or authorization. |
|
||||
| [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. Merged-master task handoff recipe source-reviewed; fixtures do not establish outgoing-run completion, cancellation or authorization. Merged-master composer and assignment-suggestion sources reviewed; manual draft retention and simulated callbacks remain separate from live handoff proof. |
|
||||
| [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. Merged-master task handoff recipe source-reviewed; fixtures do not establish outgoing-run completion, cancellation or authorization. |
|
||||
| [Getting started and access/Login, invitations, and access/Private tasks/03 Task actions](../../ui/storybook/stories/access/private-tasks/03-task-actions.stories.tsx) | `access/resources`, `tasks/properties` | unreviewed / production / fixtures | 11 / 7 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Merged-master task handoff recipe source-reviewed; fixtures do not establish outgoing-run completion, cancellation or authorization. |
|
||||
| [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) | `access/resources`, `tasks/properties` | unreviewed / production / fixtures | 12 / 5 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Merged-master task handoff recipe source-reviewed; fixtures do not establish outgoing-run completion, cancellation or 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. Merged-master task handoff recipe source-reviewed; fixtures do not establish outgoing-run completion, cancellation or authorization. |
|
||||
| [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. Merged-master task handoff recipe source-reviewed; fixtures do not establish outgoing-run completion, cancellation or authorization. Merged-master composer and assignment-suggestion sources reviewed; manual draft retention and simulated callbacks remain separate from live handoff proof. |
|
||||
| [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. Merged-master task handoff recipe source-reviewed; fixtures do not establish outgoing-run completion, cancellation or authorization. Merged-master composer and assignment-suggestion sources reviewed; manual draft retention and simulated callbacks remain separate from live handoff proof. |
|
||||
|
||||
## activity
|
||||
|
||||
[Feature recipe](../feature-map/activity.md)
|
||||
|
||||
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| [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. Runner display/default/effort and matching-discovery source changes reviewed; existing fixture, proposal and historical scope retained. No new rendering, play, backend or provider qualification is claimed. Claude explicit-Connect qualification and stale-result guards source-reviewed; existing mock, local and unqualified-image fixture boundaries remain. No new managed live acceptance or rendering is claimed. |
|
||||
| [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. |
|
||||
|
||||
## agent-chat
|
||||
|
||||
[Feature recipe](../feature-map/agent-chat.md)
|
||||
|
||||
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| [Tasks and conversations/Agent conversations and project handoff/Design explorations/Agent chat sidebar/Pages](../../ui/storybook/stories/agent-chat/agent-chat-sidebar.stories.tsx) | `agent-chat/discovery`, `agent-chat/history` | current / production / fixtures | 9 / 1 | Wrapper mounts production Layout and AgentChat; conversation selection and sends use in-memory routes. Directory name is not prototype evidence. Runner display/default/effort and matching-discovery source changes reviewed; existing fixture, proposal and historical scope retained. No new rendering, play, backend or provider qualification is claimed. Merged-master composer and assignment-suggestion sources reviewed; manual draft retention and simulated callbacks remain separate from live handoff proof. |
|
||||
| [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` | 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. Runner display/default/effort and matching-discovery source changes reviewed; existing fixture, proposal and historical scope retained. No new rendering, play, backend or provider qualification is claimed. Merged-master composer and assignment-suggestion sources reviewed; manual draft retention and simulated callbacks remain separate from live handoff proof. |
|
||||
| [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. Runner display/default/effort and matching-discovery source changes reviewed; existing fixture, proposal and historical scope retained. No new rendering, play, backend or provider qualification is claimed. Merged-master composer and assignment-suggestion sources reviewed; manual draft retention and simulated callbacks remain separate from live handoff proof. |
|
||||
|
||||
## agents
|
||||
|
||||
[Feature recipe](../feature-map/agents.md)
|
||||
|
||||
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| [Agents and reusable capabilities/Hiring, configuration, and organization/Pages/Agent Detail](../../ui/storybook/stories/agents/agent-detail.stories.tsx) | `agents/lifecycle`, `agents/instructions` | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Runner-default recipe text reviewed; rendered subjects and fixture contracts are unchanged by that documentation update. |
|
||||
| [Agents and reusable capabilities/Hiring, configuration, and organization/Agents/Persistent files](../../ui/storybook/stories/agents/agent-files.stories.tsx) | `agents/instructions` | unreviewed / production / fixtures | 9 / 7 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Runner-default recipe text reviewed; rendered subjects and fixture contracts are unchanged by that documentation update. |
|
||||
| [Agents and reusable capabilities/Hiring, configuration, and organization/Product/Agent Management](../../ui/storybook/stories/agents/agent-management.stories.tsx) | `agents/lifecycle`, `agents/instructions` | unreviewed / production / fixtures | 3 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Runner display/default/effort and matching-discovery source changes reviewed; existing fixture, proposal and historical scope retained. No new rendering, play, backend or provider qualification is claimed. |
|
||||
| [Agents and reusable capabilities/Hiring, configuration, and organization/Agents/Personas/Full pages](../../ui/storybook/stories/agents/agent-persona-pages.stories.tsx) | `agents/organization`, `navigation-preferences/profile` | unreviewed / production / fixtures | 6 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Runner display/default/effort and matching-discovery source changes reviewed; existing fixture, proposal and historical scope retained. No new rendering, play, backend or provider qualification is claimed. Merged-master composer and assignment-suggestion sources reviewed; manual draft retention and simulated callbacks remain separate from live handoff proof. |
|
||||
| [Agents and reusable capabilities/Hiring, configuration, and organization/Agents/Personas](../../ui/storybook/stories/agents/agent-personas.stories.tsx) | `agents/organization`, `navigation-preferences/profile` | unreviewed / production / fixtures | 19 / 1 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Runner-default recipe text reviewed; rendered subjects and fixture contracts are unchanged by that documentation update. |
|
||||
| [Agents and reusable capabilities/Hiring, configuration, and organization/Agents/Configuration refresh](../../ui/storybook/stories/agents/agent-settings-redesign.stories.tsx) | `agents/lifecycle`, `agents/instructions` | mixed / mixed / fixtures | 20 / 1 | Production configuration panels in a locally composed settings shell; full AgentDetail route parity remains unreviewed. Runner display/default/effort and matching-discovery source changes reviewed; existing fixture, proposal and historical scope retained. No new rendering, play, backend or provider qualification is claimed. |
|
||||
| [Agents and reusable capabilities/Hiring, configuration, and organization/Product/Built-in Agents](../../ui/storybook/stories/agents/built-in-agents.stories.tsx) | `agents/built-in` | unreviewed / production / fixtures | 4 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Runner display/default/effort and matching-discovery source changes reviewed; existing fixture, proposal and historical scope retained. No new rendering, play, backend or provider qualification is claimed. |
|
||||
| [Agents and reusable capabilities/Hiring, configuration, and organization/Codex runner/Creation](../../ui/storybook/stories/agents/codex-runner-creation.stories.tsx) | `agents/hire`, `runs-adapters/availability`, `runs-adapters/validation` | unreviewed / production / fixtures | 8 / 6 | Production NewAgent and AgentBasicsDialog with an isolated fetch boundary. Native/Legacy replies and save mutations are simulated; source inspection does not establish all play cases or provider/default qualification. Existing eight story IDs retained through explicit metadata and feature placement. Native adapter inventory is not duplicated when the shared preview provides it. Claude explicit-Connect qualification and stale-result guards source-reviewed; existing mock, local and unqualified-image fixture boundaries remain. No new managed live acceptance or rendering is claimed. |
|
||||
| [Agents and reusable capabilities/Hiring, configuration, and organization/Onboarding/External agent invitation/Components](../../ui/storybook/stories/agents/external-agent-invite/components.stories.tsx) | `agents/hire`, `access/invitations` | unreviewed / production / fixtures | 8 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Runner-default recipe text reviewed; rendered subjects and fixture contracts are unchanged by that documentation update. |
|
||||
| [Agents and reusable capabilities/Hiring, configuration, and organization/Onboarding/External agent invitation/Journeys](../../ui/storybook/stories/agents/external-agent-invite/journeys.stories.tsx) | `agents/hire`, `access/invitations` | unreviewed / production / fixtures | 20 / 4 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Runner display/default/effort and matching-discovery source changes reviewed; existing fixture, proposal and historical scope retained. No new rendering, play, backend or provider qualification is claimed. |
|
||||
| [Agents and reusable capabilities/Hiring, configuration, and organization/Onboarding/New agent](../../ui/storybook/stories/agents/new-agent-onboarding.stories.tsx) | `agents/hire` | historical / prototype / fixtures | 37 / 1 | Retained local wizard predates production ui/src/components/new-agent flow; shared fields do not make the wizard current. Runner display/default/effort and matching-discovery source changes reviewed; existing fixture, proposal and historical scope retained. No new rendering, play, backend or provider qualification is claimed. |
|
||||
| [Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/00 Review guide](../../ui/storybook/stories/agents/primary-agent/00-review-guide.stories.tsx) | `agents/organization`, `tasks/create`, `agent-chat/discovery` | unreviewed / guide / static | 1 / 0 | Review guide retained; explanatory content does not establish runtime or production coverage. Runner-default recipe text reviewed; rendered subjects and fixture contracts are unchanged by that documentation update. Merged-master task handoff recipe source-reviewed; fixtures do not establish outgoing-run completion, cancellation or authorization. |
|
||||
| [Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/01 Components](../../ui/storybook/stories/agents/primary-agent/01-components.stories.tsx) | `agents/organization`, `tasks/create`, `agent-chat/discovery` | unreviewed / production / fixtures | 5 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Runner-default recipe text reviewed; rendered subjects and fixture contracts are unchanged by that documentation update. Merged-master task handoff recipe source-reviewed; fixtures do not establish outgoing-run completion, cancellation or authorization. |
|
||||
| [Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/02 Sidebar](../../ui/storybook/stories/agents/primary-agent/02-sidebar.stories.tsx) | `agents/organization`, `tasks/create`, `agent-chat/discovery` | unreviewed / production / fixtures | 12 / 1 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Runner-default recipe text reviewed; rendered subjects and fixture contracts are unchanged by that documentation update. Merged-master task handoff recipe source-reviewed; fixtures do not establish outgoing-run completion, cancellation or authorization. |
|
||||
| [Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/03 Agents](../../ui/storybook/stories/agents/primary-agent/03-agents.stories.tsx) | `agents/organization`, `tasks/create`, `agent-chat/discovery` | unreviewed / production / fixtures | 14 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Runner-default recipe text reviewed; rendered subjects and fixture contracts are unchanged by that documentation update. Merged-master task handoff recipe source-reviewed; fixtures do not establish outgoing-run completion, cancellation or authorization. |
|
||||
| [Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/04 New task](../../ui/storybook/stories/agents/primary-agent/04-new-task.stories.tsx) | `agents/organization`, `tasks/create`, `agent-chat/discovery` | unreviewed / production / fixtures | 9 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Runner-default recipe text reviewed; rendered subjects and fixture contracts are unchanged by that documentation update. Merged-master task handoff recipe source-reviewed; fixtures do not establish outgoing-run completion, cancellation or authorization. |
|
||||
| [Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/05 Chat](../../ui/storybook/stories/agents/primary-agent/05-chat.stories.tsx) | `agents/organization`, `tasks/create`, `agent-chat/discovery` | unreviewed / production / fixtures | 8 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Runner-default recipe text reviewed; rendered subjects and fixture contracts are unchanged by that documentation update. Merged-master task handoff recipe source-reviewed; fixtures do not establish outgoing-run completion, cancellation or authorization. |
|
||||
| [Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/06 Journeys](../../ui/storybook/stories/agents/primary-agent/06-journeys.stories.tsx) | `agents/organization`, `tasks/create`, `agent-chat/discovery` | unreviewed / production / fixtures | 11 / 11 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Runner-default recipe text reviewed; rendered subjects and fixture contracts are unchanged by that documentation update. Merged-master task handoff recipe source-reviewed; fixtures do not establish outgoing-run completion, cancellation or authorization. |
|
||||
| [Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/07 Confirmation](../../ui/storybook/stories/agents/primary-agent/07-confirmation.stories.tsx) | `agents/organization`, `tasks/create`, `agent-chat/discovery` | unreviewed / production / fixtures | 4 / 1 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Runner-default recipe text reviewed; rendered subjects and fixture contracts are unchanged by that documentation update. Merged-master task handoff recipe source-reviewed; fixtures do not establish outgoing-run completion, cancellation or authorization. |
|
||||
| [Agents and reusable capabilities/Hiring, configuration, and organization/Summaries/SummarySlotCard](../../ui/storybook/stories/agents/summary-slot-card.stories.tsx) | `agents/built-in` | unreviewed / production / fixtures | 15 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Runner-default recipe text reviewed; rendered subjects and fixture contracts are unchanged by that documentation update. |
|
||||
|
||||
## app-permissions
|
||||
|
||||
[Feature recipe](../feature-map/app-permissions.md)
|
||||
|
||||
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| [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/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. |
|
||||
|
||||
## budgets-costs
|
||||
|
||||
[Feature recipe](../feature-map/budgets-costs.md)
|
||||
|
||||
| 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` | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
| [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. |
|
||||
|
||||
## chat-channels
|
||||
|
||||
[Feature recipe](../feature-map/chat-channels.md)
|
||||
|
||||
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| [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. |
|
||||
| [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. Merged-master composer and assignment-suggestion sources reviewed; manual draft retention and simulated callbacks remain separate from live handoff proof. |
|
||||
| [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` | 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. Merged-master linked-user avatar/fallback source reviewed; image and layout play assertions are not rerun in this pass. |
|
||||
| [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. Runner display/default/effort and matching-discovery source changes reviewed; existing fixture, proposal and historical scope retained. No new rendering, play, backend or provider qualification is claimed. 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. Claude explicit-Connect qualification and stale-result guards source-reviewed; existing mock, local and unqualified-image fixture boundaries remain. No new managed live acceptance or rendering is claimed. Merged-master linked-user avatar/fallback source reviewed; image and layout play assertions are not rerun in this pass. |
|
||||
| [Apps, channels, and extensions/External chat and email/Historical/GitHub chat prototypes](../../ui/storybook/stories/chat-channels/github-chat.stories.tsx) | `chat-channels/providers`, `chat-channels/conversation` | historical / prototype / fixtures | 48 / 9 | Historical wizard retained for original setup/access/review design; current GitHub setup is ui/src/pages/apps/chat/GitHubChatSetup.tsx. 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/GitHub and Code Review Bot](../../ui/storybook/stories/chat-channels/github-connections.stories.tsx) | `chat-channels/providers`, `connection-setup/channel-setup` | unreviewed / production / fixtures | 7 / 7 | 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/iMessage Photon](../../ui/storybook/stories/chat-channels/imessage-photon.stories.tsx) | `chat-channels/conversation` | unreviewed / production / fixtures | 13 / 7 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Task-workspace reconciliation reviewed the endpoint editor addition; this suite selects setup/access and locally simulated conversation states. Endpoint PATCH retains fields, but settings workspace-choice requests and default selection are not covered by these scenarios. Merged-master linked-user avatar/fallback source reviewed; image and layout play assertions are not rerun in this pass. |
|
||||
| [Apps, channels, and extensions/External chat and email/Connections/Slack/Automatic setup](../../ui/storybook/stories/chat-channels/slack-automatic-setup.stories.tsx) | `chat-channels/providers`, `connection-setup/channel-setup` | unreviewed / production / fixtures | 18 / 3 | 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/Slack/Avatar in Settings](../../ui/storybook/stories/chat-channels/slack-avatar-settings.stories.tsx) | `chat-channels/identity` | current / production / fixtures | 1 / 0 | 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/Slack/Communication in Settings](../../ui/storybook/stories/chat-channels/slack-communication-settings.stories.tsx) | `chat-channels/identity` | current / production / fixtures | 4 / 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/Slack/Managed setup](../../ui/storybook/stories/chat-channels/slack-managed-setup.stories.tsx) | `chat-channels/providers`, `connection-setup/channel-setup` | unreviewed / production / fixtures | 21 / 7 | 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/Slack/Task tools](../../ui/storybook/stories/chat-channels/slack-tools.stories.tsx) | `chat-channels/conversation` | 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 added connection/destination-default recipe; these unchanged setup, identity or conversation examples do not establish default selection or new-task inheritance. |
|
||||
|
||||
## companies
|
||||
|
||||
[Feature recipe](../feature-map/companies.md)
|
||||
|
||||
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| [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` | unreviewed / production / fixtures | 11 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
| [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` | unreviewed / production / fixtures | 4 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
| [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` | unreviewed / production / fixtures | 3 / 1 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
| [Getting started and access/Companies and portability/Fast responses/01 Settings](../../ui/storybook/stories/companies/fast-responses/01-settings.stories.tsx) | `companies/identity`, `budgets-costs/cost-reporting` | unreviewed / production / fixtures | 9 / 0 | Production settings view with simulated callbacks. Excluded exported fixture helpers and added the onConnectionChange spy required during rendering; full save/API state parity remains unreviewed. |
|
||||
| [Getting started and access/Companies and portability/Fast responses/02 History](../../ui/storybook/stories/companies/fast-responses/02-history.stories.tsx) | `companies/identity`, `budgets-costs/cost-reporting` | current / production / fixtures | 4 / 0 | Shared production DecisionHistoryTable receives fastResponse=true, matching FastResponseHistory presentation; API loading/error and feature-gate wrapper are outside this story. |
|
||||
|
||||
## connection-setup
|
||||
|
||||
[Feature recipe](../feature-map/connection-setup.md)
|
||||
|
||||
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| [Apps, channels, and extensions/Connection setup/Components/Agent setup prompt](../../ui/storybook/stories/connection-setup/agent-setup-prompt.stories.tsx) | `connection-setup/channel-setup`, `gateways-profiles/client-connect` | unreviewed / production / fixtures | 11 / 3 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
| [Apps, channels, and extensions/Connection setup/Apps/Canonical icon registry](../../ui/storybook/stories/connection-setup/AppLogoRegistry.stories.tsx) | `connection-setup/catalog` | unreviewed / production / fixtures | 2 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
| [Apps, channels, and extensions/Connection setup/Apps/Catalog source selection](../../ui/storybook/stories/connection-setup/apps-catalog-source-selection.stories.tsx) | `connection-setup/catalog` | proposed / prototype / fixtures | 12 / 1 | Local catalog composition uses shipped cards and filters; retains design exploration purpose, not acceptance of the Apps route. |
|
||||
| [Apps, channels, and extensions/Connection setup/Apps/Connect discoverability (PAP-11091)](../../ui/storybook/stories/connection-setup/apps-connect-discoverability.stories.tsx) | `connection-setup/catalog` | 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/Connection setup/Apps/Connect name at create time (PAP-11283)](../../ui/storybook/stories/connection-setup/apps-connect-name.stories.tsx) | `connection-setup/identity-and-access` | unreviewed / production / fixtures | 2 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
| [Apps, channels, and extensions/Connection setup/Apps/Connections/Arcade](../../ui/storybook/stories/connection-setup/ArcadeConnection.stories.tsx) | `connection-setup/credentials`, `connection-setup/failure` | unreviewed / production / fixtures | 26 / 1 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
| [Apps, channels, and extensions/Connection setup/Connections/Browser Use Cloud/Settings](../../ui/storybook/stories/connection-setup/browser-use-settings.stories.tsx) | `connection-setup/credentials` | current / production / fixtures | 9 / 2 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
| [Apps, channels, and extensions/Connection setup/Apps/Connections/Composio](../../ui/storybook/stories/connection-setup/ComposioConnection.stories.tsx) | `connection-setup/credentials`, `connection-setup/failure` | unreviewed / production / fixtures | 27 / 1 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
| [Apps, channels, and extensions/Connection setup/Design explorations/Connections/Agent instructions](../../ui/storybook/stories/connection-setup/connection-instructions.stories.tsx) | `connection-setup/credentials`, `agents/instructions` | unreviewed / production / fixtures | 20 / 5 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Runner-default recipe text reviewed; rendered subjects and fixture contracts are unchanged by that documentation update. |
|
||||
| [Apps, channels, and extensions/Connection setup/Apps/Connections/Provider choice](../../ui/storybook/stories/connection-setup/ConnectionProviderChoice.stories.tsx) | `connection-setup/identity-and-access` | unreviewed / production / fixtures | 7 / 4 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
| [Apps, channels, and extensions/Connection setup/Apps/Enterpret connector](../../ui/storybook/stories/connection-setup/enterpret-connect-flow.stories.tsx) | `connection-setup/credentials`, `connection-setup/failure` | unreviewed / production / fixtures | 9 / 1 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
| [Apps, channels, and extensions/Connection setup/Apps/Connections/Executor](../../ui/storybook/stories/connection-setup/ExecutorConnection.stories.tsx) | `connection-setup/credentials`, `connection-setup/failure` | unreviewed / production / fixtures | 26 / 1 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
| [Apps, channels, and extensions/Connection setup/PR reviews/Fireflies and app webhooks](../../ui/storybook/stories/connection-setup/fireflies-pr.stories.tsx) | `connection-setup/credentials`, `routines/triggers` | unreviewed / production / fixtures | 27 / 5 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
| [Apps, channels, and extensions/Connection setup/Connections/In-task connections](../../ui/storybook/stories/connection-setup/in-feed-connections.stories.tsx) | `connection-setup/task-request` | unreviewed / production / fixtures | 78 / 23 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Merged-master composer and assignment-suggestion sources reviewed; manual draft retention and simulated callbacks remain separate from live handoff proof. |
|
||||
| [Apps, channels, and extensions/Connection setup/Apps/Managed Cloud OAuth handoff](../../ui/storybook/stories/connection-setup/managed-cloud-oauth-handoff.stories.tsx) | `connection-setup/handoff` | unreviewed / production / fixtures | 4 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
| [Apps, channels, and extensions/Connection setup/Apps/Connections/Memory](../../ui/storybook/stories/connection-setup/memory-connectors.stories.tsx) | `connection-setup/credentials`, `agents/instructions` | unreviewed / production / fixtures | 21 / 7 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Runner-default recipe text reviewed; rendered subjects and fixture contracts are unchanged by that documentation update. |
|
||||
| [Apps, channels, and extensions/Connection setup/Apps/Notion MCP connect flow (PAP-16650)](../../ui/storybook/stories/connection-setup/notion-connect-flow.stories.tsx) | `connection-setup/credentials`, `connection-setup/failure` | 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/Connection setup/Reviews/PAP-17835 Personal connection identity](../../ui/storybook/stories/connection-setup/personal-connection-identity.stories.tsx) | `connection-setup/identity-and-access` | unreviewed / production / fixtures | 10 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
| [Apps, channels, and extensions/Connection setup/Apps/Connections/Zapier](../../ui/storybook/stories/connection-setup/ZapierConnection.stories.tsx) | `connection-setup/credentials`, `connection-setup/failure` | unreviewed / production / fixtures | 21 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
|
||||
## developer-labs
|
||||
|
||||
[Feature recipe](../feature-map/developer-labs.md)
|
||||
|
||||
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| [Contributor surfaces/Developer previews and diagnostic labs/UX Labs/Converted Test Pages](../../ui/storybook/stories/developer-labs/ux-labs.stories.tsx) | `developer-labs/interaction-labs` | unreviewed / production / fixtures | 4 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
|
||||
## documents-artifacts
|
||||
|
||||
[Feature recipe](../feature-map/documents-artifacts.md)
|
||||
|
||||
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| [Tasks and conversations/Documents, attachments, and work products/Explorations/Artifact cards/Commit](../../ui/storybook/stories/documents-artifacts/artifact-cards/commit.stories.tsx) | `documents-artifacts/work-products` | 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/Explorations/Artifact cards/Data](../../ui/storybook/stories/documents-artifacts/artifact-cards/data.stories.tsx) | `documents-artifacts/work-products` | 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/Explorations/Artifact cards/Document](../../ui/storybook/stories/documents-artifacts/artifact-cards/document.stories.tsx) | `documents-artifacts/work-products` | 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/Explorations/Artifact cards/File](../../ui/storybook/stories/documents-artifacts/artifact-cards/file.stories.tsx) | `documents-artifacts/work-products` | 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/Explorations/Artifact cards/Image](../../ui/storybook/stories/documents-artifacts/artifact-cards/image.stories.tsx) | `documents-artifacts/work-products` | 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/Explorations/Artifact cards/Link preview](../../ui/storybook/stories/documents-artifacts/artifact-cards/link-preview.stories.tsx) | `documents-artifacts/work-products` | 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/Explorations/Artifact cards/Pull request](../../ui/storybook/stories/documents-artifacts/artifact-cards/pull-request.stories.tsx) | `documents-artifacts/work-products` | 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/Explorations/Artifact cards/Video](../../ui/storybook/stories/documents-artifacts/artifact-cards/video.stories.tsx) | `documents-artifacts/work-products` | 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/Artifact upload/01 Artifacts pane](../../ui/storybook/stories/documents-artifacts/artifact-upload/01-components.stories.tsx) | `documents-artifacts/attachments` | unreviewed / production / fixtures | 10 / 3 | 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/Artifact upload/02 Paused task journey](../../ui/storybook/stories/documents-artifacts/artifact-upload/02-task-journey.stories.tsx) | `documents-artifacts/attachments` | unreviewed / production / fixtures | 6 / 1 | 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/Pages/Artifacts](../../ui/storybook/stories/documents-artifacts/artifacts.stories.tsx) | `documents-artifacts/library`, `documents-artifacts/work-products` | unreviewed / production / fixtures | 6 / 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/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/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. |
|
||||
| [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) | `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. |
|
||||
| [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) | `documents-artifacts/work-products` | unreviewed / production / fixtures | 9 / 3 | 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/Tasks/Artifact Gallery](../../ui/storybook/stories/documents-artifacts/task-artifact-gallery.stories.tsx) | `documents-artifacts/library`, `documents-artifacts/work-products` | unreviewed / production / fixtures | 8 / 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/Tasks/Text file tabs](../../ui/storybook/stories/documents-artifacts/task-text-files.stories.tsx) | `documents-artifacts/attachments` | unreviewed / production / fixtures | 7 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
|
||||
## foundations-and-guides
|
||||
|
||||
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| [Foundations/Components/Forms & Editors](../../ui/storybook/stories/foundations/forms-editors.stories.tsx) | Shared foundations or contributor guide; no single business capability owns this suite. | unreviewed / production / fixtures | 3 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
| [Foundations/Primitive Matrix](../../ui/storybook/stories/foundations/foundations.stories.tsx) | Shared foundations or contributor guide; no single business capability owns this suite. | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Runner display/default/effort and matching-discovery source changes reviewed; existing fixture, proposal and historical scope retained. No new rendering, play, backend or provider qualification is claimed. |
|
||||
| [Foundations/Primitive Coverage](../../ui/storybook/stories/foundations/primitives-coverage.stories.tsx) | Shared foundations or contributor guide; no single business capability owns this suite. | unreviewed / production / fixtures | 11 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
| [Foundations/Status Language](../../ui/storybook/stories/foundations/status-language.stories.tsx) | Shared foundations or contributor guide; no single business capability owns this suite. | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
| [Overview/Storybook Guide](../../ui/storybook/stories/overview/overview.stories.tsx) | Shared foundations or contributor guide; no single business capability owns this suite. | unreviewed / guide / static | 1 / 0 | Generated inventory counts replace stale hand-maintained Planned/Covered claims; no execution coverage is implied. |
|
||||
|
||||
## gateways-profiles
|
||||
|
||||
[Feature recipe](../feature-map/gateways-profiles.md)
|
||||
|
||||
| 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/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. |
|
||||
| [Apps, channels, and extensions/Tool gateways and access profiles/Assistant connections/Device authorization](../../ui/storybook/stories/gateways-profiles/public-mcp-device.stories.tsx) | `gateways-profiles/client-connect` | current / production / fixtures | 7 / 3 | 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/Start here](../../ui/storybook/stories/gateways-profiles/public-mcp-journey.stories.tsx) | `gateways-profiles/client-connect` | unreviewed / production / fixtures | 14 / 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/Experimental setting](../../ui/storybook/stories/gateways-profiles/public-mcp-setting.stories.tsx) | `gateways-profiles/client-connect` | unreviewed / production / fixtures | 8 / 5 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
|
||||
## inbox-search
|
||||
|
||||
[Feature recipe](../feature-map/inbox-search.md)
|
||||
|
||||
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| [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. |
|
||||
| [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. |
|
||||
| [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. |
|
||||
| [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. |
|
||||
| [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. |
|
||||
|
||||
## instance-operations
|
||||
|
||||
[Feature recipe](../feature-map/instance-operations.md)
|
||||
|
||||
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| [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. |
|
||||
|
||||
## navigation-preferences
|
||||
|
||||
[Feature recipe](../feature-map/navigation-preferences.md)
|
||||
|
||||
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| [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. |
|
||||
|
||||
## onboarding
|
||||
|
||||
[Feature recipe](../feature-map/onboarding.md)
|
||||
|
||||
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| [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. Runner display/default/effort and matching-discovery source changes reviewed; existing fixture, proposal and historical scope retained. No new rendering, play, backend or provider qualification is claimed. Claude explicit-Connect qualification and stale-result guards source-reviewed; existing mock, local and unqualified-image fixture boundaries remain. No new managed live acceptance or rendering is claimed. |
|
||||
| [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. Runner-default recipe text reviewed; rendered subjects and fixture contracts are unchanged by that documentation update. Updated onboarding verification recipe source-reviewed; display subjects and fixture classification remain unchanged. |
|
||||
| [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. Runner-default recipe text reviewed; rendered subjects and fixture contracts are unchanged by that documentation update. Updated onboarding verification recipe source-reviewed; display subjects and fixture classification remain unchanged. |
|
||||
|
||||
## projects
|
||||
|
||||
[Feature recipe](../feature-map/projects.md)
|
||||
|
||||
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| [Projects and execution/Projects and repositories/Proposals/Project repos/New project](../../ui/storybook/stories/projects/new-project-repos.stories.tsx) | `projects/repositories` | proposed / mixed / fixtures | 18 / 5 | RepositoryEditor is shipped, but NewProjectPrototype composes its own creation flow. Preserve proposal until route parity is checked. |
|
||||
| [Projects and execution/Projects and repositories/Workspaces/Project runtime provision command](../../ui/storybook/stories/projects/project-execution-workspace-strategy.stories.tsx) | `projects/defaults`, `workspaces/provisioning` | unreviewed / production / fixtures | 2 / 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/Projects and repositories/Proposals/Project repos/Configuration](../../ui/storybook/stories/projects/project-repos-configuration.stories.tsx) | `projects/repositories` | proposed / mixed / fixtures | 12 / 0 | Production properties plus local configuration page composition; repository interaction is simulated. |
|
||||
| [Projects and execution/Projects and repositories/Product/Projects Goals Workspaces](../../ui/storybook/stories/projects/projects-goals-workspaces.stories.tsx) | `projects/lifecycle`, `goals/hierarchy`, `workspaces/binding` | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Task-workspace reconciliation reviewed nullable project references and guarded runtime invalidations. Existing summaries remain project-bound and retain their routes; null-project execution workspace rendering and controls remain a coverage gap. 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. |
|
||||
|
||||
## questions-and-approvals
|
||||
|
||||
[Feature recipe](../feature-map/questions-and-approvals.md)
|
||||
|
||||
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| [Tasks and conversations/Questions and approvals/Chat & Comments/Agent Chat Unanswered Questions](../../ui/storybook/stories/questions-and-approvals/agent-chat-unanswered-questions.stories.tsx) | `questions-and-approvals/dismiss-and-reopen`, `agent-chat/history` | unreviewed / production / fixtures | 9 / 6 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Merged-master composer and assignment-suggestion sources reviewed; manual draft retention and simulated callbacks remain separate from live handoff proof. |
|
||||
| [Tasks and conversations/Questions and approvals/Composer/Question flow](../../ui/storybook/stories/questions-and-approvals/composer-question-flow.stories.tsx) | `questions-and-approvals/questions` | unreviewed / production / fixtures | 3 / 1 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Merged-master composer and assignment-suggestion sources reviewed; manual draft retention and simulated callbacks remain separate from live handoff proof. |
|
||||
| [Tasks and conversations/Questions and approvals/Chat & Comments/Connection Reviews](../../ui/storybook/stories/questions-and-approvals/connection-reviews.stories.tsx) | `questions-and-approvals/tool-review`, `connection-setup/task-request` | unreviewed / production / fixtures | 25 / 8 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Merged-master composer and assignment-suggestion sources reviewed; manual draft retention and simulated callbacks remain separate from live handoff proof. |
|
||||
| [Tasks and conversations/Questions and approvals/Issue Detail/Plan Decompositions](../../ui/storybook/stories/questions-and-approvals/issue-plan-decompositions.stories.tsx) | `questions-and-approvals/plan-review`, `task-coordination/delegation` | unreviewed / production / fixtures | 2 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
| [Tasks and conversations/Questions and approvals/Chat & Comments/Issue Thread Interactions](../../ui/storybook/stories/questions-and-approvals/issue-thread-interactions.stories.tsx) | `questions-and-approvals/questions`, `questions-and-approvals/confirmations`, `questions-and-approvals/audience` | unreviewed / production / fixtures | 53 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Merged-master composer and assignment-suggestion sources reviewed; manual draft retention and simulated callbacks remain separate from live handoff proof. |
|
||||
| [Tasks and conversations/Questions and approvals/Chat & Comments/Rich ACP interactions](../../ui/storybook/stories/questions-and-approvals/rich-acp-interactions.stories.tsx) | `questions-and-approvals/questions`, `questions-and-approvals/confirmations`, `questions-and-approvals/audience` | unreviewed / production / fixtures | 12 / 8 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
| [Tasks and conversations/Questions and approvals/Composer/Interaction above composer](../../ui/storybook/stories/questions-and-approvals/task-chat-interaction-above-composer.stories.tsx) | `questions-and-approvals/questions`, `questions-and-approvals/confirmations`, `questions-and-approvals/audience` | current / production / fixtures | 15 / 5 | Corrected local dismissal/send harness: questions leave no pending badge; confirmations retain reopen. Production cards/composer; persisted dismissal is covered separately by unanswered-question fixtures. Merged-master composer and assignment-suggestion sources reviewed; manual draft retention and simulated callbacks remain separate from live handoff proof. |
|
||||
| [Tasks and conversations/Questions and approvals/Chat & Comments/Task Chat Unanswered Questions](../../ui/storybook/stories/questions-and-approvals/task-chat-unanswered-questions.stories.tsx) | `questions-and-approvals/dismiss-and-reopen`, `tasks/discussion` | unreviewed / production / fixtures | 6 / 1 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Merged-master task handoff recipe source-reviewed; fixtures do not establish outgoing-run completion, cancellation or authorization. Merged-master composer and assignment-suggestion sources reviewed; manual draft retention and simulated callbacks remain separate from live handoff proof. |
|
||||
|
||||
## recovery
|
||||
|
||||
[Feature recipe](../feature-map/recovery.md)
|
||||
|
||||
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| [Projects and execution/Recovery/App/Connection recovery](../../ui/storybook/stories/recovery/cloud-access-recovery.stories.tsx) | `recovery/reconnect` | unreviewed / production / fixtures | 3 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
| [Projects and execution/Recovery/Task chat/Recovery notice](../../ui/storybook/stories/recovery/execution-blocker-notice.stories.tsx) | `recovery/diagnosis` | 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/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/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. |
|
||||
| [Projects and execution/Recovery/Paperclip/Source-resolved Fold](../../ui/storybook/stories/recovery/source-resolved-fold.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. |
|
||||
| [Projects and execution/Recovery/Workspace branch recovery/01 Repair card](../../ui/storybook/stories/recovery/workspace-branch-recovery/01-component.stories.tsx) | `recovery/workspace` | unreviewed / production / fixtures | 8 / 4 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
| [Projects and execution/Recovery/Workspace branch recovery/02 Task journey](../../ui/storybook/stories/recovery/workspace-branch-recovery/02-task-journey.stories.tsx) | `recovery/workspace` | unreviewed / production / fixtures | 2 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Merged-master composer and assignment-suggestion sources reviewed; manual draft retention and simulated callbacks remain separate from live handoff proof. |
|
||||
|
||||
## routines
|
||||
|
||||
[Feature recipe](../feature-map/routines.md)
|
||||
|
||||
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| [Automation and structured work/Routines, schedules, and triggers/Product/Routines · Detail (variation C)](../../ui/storybook/stories/routines/routine-detail-c.stories.tsx) | `routines/definition`, `routines/management` | unreviewed / production / fixtures | 8 / 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/Product/Routines · Secrets tab](../../ui/storybook/stories/routines/routine-secrets.stories.tsx) | `routines/definition`, `secrets/runtime-delivery` | unreviewed / production / fixtures | 4 / 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/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` | unreviewed / production / fixtures | 16 / 14 | 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 · 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. |
|
||||
|
||||
## runs-adapters
|
||||
|
||||
[Feature recipe](../feature-map/runs-adapters.md)
|
||||
|
||||
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| [Agents and reusable capabilities/Runs, harnesses, and model accounts/Onboarding/Saved connections](../../ui/storybook/stories/runs-adapters/agent-connection-reuse.stories.tsx) | `runs-adapters/validation`, `agents/hire` | current / production / fixtures | 7 / 6 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Runner-default recipe text reviewed; rendered subjects and fixture contracts are unchanged by that documentation update. |
|
||||
| [Agents and reusable capabilities/Runs, harnesses, and model accounts/AI Connections/Usage limits](../../ui/storybook/stories/runs-adapters/ai-connection-usage.stories.tsx) | `runs-adapters/validation` | unreviewed / production / fixtures | 8 / 8 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Runner-default recipe text reviewed; rendered subjects and fixture contracts are unchanged by that documentation update. |
|
||||
| [Agents and reusable capabilities/Runs, harnesses, and model accounts/AI Connections/Review](../../ui/storybook/stories/runs-adapters/ai-connections.stories.tsx) | `runs-adapters/validation` | unreviewed / production / fixtures | 46 / 15 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Runner-default recipe text reviewed; rendered subjects and fixture contracts are unchanged by that documentation update. |
|
||||
| [Agents and reusable capabilities/Runs, harnesses, and model accounts/Connectors/Pool host](../../ui/storybook/stories/runs-adapters/connection-pool-connector.stories.tsx) | `runs-adapters/validation`, `connection-setup/catalog` | unreviewed / production / fixtures | 5 / 3 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Runner-default recipe text reviewed; rendered subjects and fixture contracts are unchanged by that documentation update. |
|
||||
| [Agents and reusable capabilities/Runs, harnesses, and model accounts/AI Connections/Connection pools](../../ui/storybook/stories/runs-adapters/connection-pools.stories.tsx) | `runs-adapters/validation` | unreviewed / production / fixtures | 16 / 2 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Runner display/default/effort and matching-discovery source changes reviewed; existing fixture, proposal and historical scope retained. No new rendering, play, backend or provider qualification is claimed. |
|
||||
| [Agents and reusable capabilities/Runs, harnesses, and model accounts/Assistant connections/Dot Runner](../../ui/storybook/stories/runs-adapters/dot-runner-connection.stories.tsx) | `runs-adapters/validation`, `gateways-profiles/client-connect` | unreviewed / production / fixtures | 4 / 2 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Runner-default recipe text reviewed; rendered subjects and fixture contracts are unchanged by that documentation update. |
|
||||
| [Agents and reusable capabilities/Runs, harnesses, and model accounts/AI Connections/Provider routing/07 Subscription sign-in](../../ui/storybook/stories/runs-adapters/local-ai-subscription.stories.tsx) | `runs-adapters/validation` | unreviewed / production / fixtures | 4 / 3 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Runner-default recipe text reviewed; rendered subjects and fixture contracts are unchanged by that documentation update. |
|
||||
| [Agents and reusable capabilities/Runs, harnesses, and model accounts/AI Connections/Provider routing/00 Overview](../../ui/storybook/stories/runs-adapters/provider-routing-00-overview.stories.tsx) | `runs-adapters/validation` | unreviewed / guide / static | 1 / 0 | Review guide retained; explanatory content does not establish runtime or production coverage. Runner-default recipe text reviewed; rendered subjects and fixture contracts are unchanged by that documentation update. |
|
||||
| [Agents and reusable capabilities/Runs, harnesses, and model accounts/AI Connections/Provider routing/01 Onboarding](../../ui/storybook/stories/runs-adapters/provider-routing-01-onboarding.stories.tsx) | `runs-adapters/validation` | mixed / mixed / fixtures | 6 / 3 | Design-review route uses simulated account/provider state; audit the rendered subject before treating it as the live connection flow. Runner display/default/effort and matching-discovery source changes reviewed; existing fixture, proposal and historical scope retained. No new rendering, play, backend or provider qualification is claimed. |
|
||||
| [Agents and reusable capabilities/Runs, harnesses, and model accounts/AI Connections/Provider routing/02 Connect](../../ui/storybook/stories/runs-adapters/provider-routing-02-connect.stories.tsx) | `runs-adapters/validation` | mixed / mixed / fixtures | 14 / 3 | Design-review route uses simulated account/provider state; audit the rendered subject before treating it as the live connection flow. Runner-default recipe text reviewed; rendered subjects and fixture contracts are unchanged by that documentation update. |
|
||||
| [Agents and reusable capabilities/Runs, harnesses, and model accounts/AI Connections/Provider routing/03 Agent](../../ui/storybook/stories/runs-adapters/provider-routing-03-agent.stories.tsx) | `runs-adapters/validation` | mixed / mixed / fixtures | 34 / 7 | Design-review route uses simulated account/provider state; audit the rendered subject before treating it as the live connection flow. Runner display/default/effort and matching-discovery source changes reviewed; existing fixture, proposal and historical scope retained. No new rendering, play, backend or provider qualification is claimed. |
|
||||
| [Agents and reusable capabilities/Runs, harnesses, and model accounts/AI Connections/Provider routing/04 Manage](../../ui/storybook/stories/runs-adapters/provider-routing-04-manage.stories.tsx) | `runs-adapters/validation` | mixed / mixed / fixtures | 11 / 5 | Design-review route uses simulated account/provider state; audit the rendered subject before treating it as the live connection flow. Runner-default recipe text reviewed; rendered subjects and fixture contracts are unchanged by that documentation update. |
|
||||
| [Agents and reusable capabilities/Runs, harnesses, and model accounts/AI Connections/Provider routing/05 Recovery](../../ui/storybook/stories/runs-adapters/provider-routing-05-recovery.stories.tsx) | `runs-adapters/validation` | mixed / mixed / fixtures | 7 / 2 | Design-review route uses simulated account/provider state; audit the rendered subject before treating it as the live connection flow. Runner-default recipe text reviewed; rendered subjects and fixture contracts are unchanged by that documentation update. |
|
||||
| [Agents and reusable capabilities/Runs, harnesses, and model accounts/AI Connections/Provider routing/06 Production components](../../ui/storybook/stories/runs-adapters/provider-routing-06-production.stories.tsx) | `runs-adapters/validation` | unreviewed / production / fixtures | 5 / 5 | Design-review route uses simulated account/provider state; audit the rendered subject before treating it as the live connection flow. Runner display/default/effort and matching-discovery source changes reviewed; existing fixture, proposal and historical scope retained. No new rendering, play, backend or provider qualification is claimed. |
|
||||
| [Agents and reusable capabilities/Runs, harnesses, and model accounts/Composer/Session goals](../../ui/storybook/stories/runs-adapters/session-goals.stories.tsx) | `runs-adapters/session` | unreviewed / production / fixtures | 3 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Runner-default recipe text reviewed; rendered subjects and fixture contracts are unchanged by that documentation update. |
|
||||
|
||||
## secrets
|
||||
|
||||
[Feature recipe](../feature-map/secrets.md)
|
||||
|
||||
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| [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. |
|
||||
| [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. Runner display/default/effort and matching-discovery source changes reviewed; existing fixture, proposal and historical scope retained. No new rendering, play, backend or provider qualification is claimed. Merged-master composer and assignment-suggestion sources reviewed; manual draft retention and simulated callbacks remain separate from live handoff proof. |
|
||||
| [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. |
|
||||
| [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. |
|
||||
| [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. |
|
||||
|
||||
## skills
|
||||
|
||||
[Feature recipe](../feature-map/skills.md)
|
||||
|
||||
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| [Agents and reusable capabilities/Skills and Skill Studio/Agent Skills/AgentSkillRow](../../ui/storybook/stories/skills/agent-skill-row.stories.tsx) | `skills/policy` | unreviewed / production / fixtures | 5 / 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/QA / Agent skills edge states](../../ui/storybook/stories/skills/agent-skills-edge.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/Skill Studio/AgentsUsingSkill](../../ui/storybook/stories/skills/agents-using-skill.stories.tsx) | `skills/policy` | unreviewed / production / fixtures | 5 / 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/Skill Studio/EditACopy](../../ui/storybook/stories/skills/fork-skill-flow.stories.tsx) | `skills/authoring` | 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/Skill Studio · FrontmatterPanel](../../ui/storybook/stories/skills/frontmatter-panel.stories.tsx) | `skills/authoring` | unreviewed / production / fixtures | 13 / 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/Skills/GitHub sync journey](../../ui/storybook/stories/skills/github-skills-journey.stories.tsx) | `skills/versions`, `skills/discovery` | unreviewed / production / fixtures | 14 / 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/GitHub synced skills](../../ui/storybook/stories/skills/github-synced-skills.stories.tsx) | `skills/versions`, `skills/discovery` | unreviewed / production / fixtures | 19 / 6 | 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/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/Skills Store/Skill detail](../../ui/storybook/stories/skills/skills-store-detail.stories.tsx) | `skills/discovery` | unreviewed / production / fixtures | 4 / 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/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. |
|
||||
|
||||
## steering
|
||||
|
||||
[Feature recipe](../feature-map/steering.md)
|
||||
|
||||
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| [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. Merged-master composer and assignment-suggestion sources reviewed; manual draft retention and simulated callbacks remain separate from live handoff proof. |
|
||||
| [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. Merged-master composer and assignment-suggestion sources reviewed; manual draft retention and simulated callbacks remain separate from live handoff proof. |
|
||||
| [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. Merged-master composer and assignment-suggestion sources reviewed; manual draft retention and simulated callbacks remain separate from live handoff proof. |
|
||||
|
||||
## task-coordination
|
||||
|
||||
[Feature recipe](../feature-map/task-coordination.md)
|
||||
|
||||
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| [Tasks and conversations/Delegation, dependencies, and signoff/Product/Decisions/Stalled review actions](../../ui/storybook/stories/task-coordination/issue-review-panel.stories.tsx) | `task-coordination/signoff` | unreviewed / production / fixtures | 2 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
| [Tasks and conversations/Delegation, dependencies, and signoff/Product/Issue Monitor surfaces](../../ui/storybook/stories/task-coordination/monitor-surfaces.stories.tsx) | `task-coordination/tree-control` | 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/Delegation, dependencies, and signoff/UX Labs/Tasks Created From a Task](../../ui/storybook/stories/task-coordination/originating-tasks.stories.tsx) | `task-coordination/delegation`, `projects/task-context` | unreviewed / production / fixtures | 14 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Merged-master composer and assignment-suggestion sources reviewed; manual draft retention and simulated callbacks remain separate from live handoff proof. |
|
||||
| [Tasks and conversations/Delegation, dependencies, and signoff/UX Labs/Sub-issues Workflow Checklist](../../ui/storybook/stories/task-coordination/sub-issues-workflow.stories.tsx) | `task-coordination/dependencies`, `task-coordination/delegation` | 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/Delegation, dependencies, and signoff/Product/Task Watchdog surfaces](../../ui/storybook/stories/task-coordination/task-watchdog-surfaces.stories.tsx) | `task-coordination/tree-control` | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
|
||||
|
||||
## tasks
|
||||
|
||||
[Feature recipe](../feature-map/tasks.md)
|
||||
|
||||
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| [Tasks and conversations/Task creation and lifecycle/Paperclip/Assigned Backlog Safeguards](../../ui/storybook/stories/tasks/assigned-backlog-safeguards.stories.tsx) | `tasks/completion`, `recovery/diagnosis` | unreviewed / production / fixtures | 5 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Merged-master task handoff recipe source-reviewed; fixtures do not establish outgoing-run completion, cancellation or authorization. |
|
||||
| [Tasks and conversations/Task creation and lifecycle/Product/Chat & Comments](../../ui/storybook/stories/tasks/chat-comments.stories.tsx) | `tasks/discussion`, `runs-adapters/runs` | unreviewed / production / fixtures | 6 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Runner-default recipe text reviewed; rendered subjects and fixture contracts are unchanged by that documentation update. Merged-master task handoff recipe source-reviewed; fixtures do not establish outgoing-run completion, cancellation or authorization. Merged-master composer and assignment-suggestion sources reviewed; manual draft retention and simulated callbacks remain separate from live handoff proof. |
|
||||
| [Tasks and conversations/Task creation and lifecycle/Tasks/Completed activity preview](../../ui/storybook/stories/tasks/completed-activity.stories.tsx) | `tasks/discussion`, `runs-adapters/runs` | current / production / fixtures | 8 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Runner-default recipe text reviewed; rendered subjects and fixture contracts are unchanged by that documentation update. Merged-master task handoff recipe source-reviewed; fixtures do not establish outgoing-run completion, cancellation or authorization. |
|
||||
| [Tasks and conversations/Task creation and lifecycle/Composer/Add menu](../../ui/storybook/stories/tasks/composer-add-menu.stories.tsx) | `tasks/create` | unreviewed / production / fixtures | 14 / 14 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Merged-master task handoff recipe source-reviewed; fixtures do not establish outgoing-run completion, cancellation or authorization. Merged-master composer and assignment-suggestion sources reviewed; manual draft retention and simulated callbacks remain separate from live handoff proof. |
|
||||
| [Tasks and conversations/Task creation and lifecycle/Composer/Mobile assignee picker](../../ui/storybook/stories/tasks/composer-mobile-assignee.stories.tsx) | `tasks/create`, `runs-adapters/availability` | unreviewed / production / fixtures | 3 / 1 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Runner display/default/effort and matching-discovery source changes reviewed; existing fixture, proposal and historical scope retained. No new rendering, play, backend or provider qualification is claimed. Merged-master task handoff recipe source-reviewed; fixtures do not establish outgoing-run completion, cancellation or authorization. |
|
||||
| [Tasks and conversations/Task creation and lifecycle/Composer/Model and effort picker](../../ui/storybook/stories/tasks/composer-model-picker.stories.tsx) | `tasks/create`, `runs-adapters/availability` | mixed / mixed / fixtures | 57 / 30 | Most examples use a local picker implementation; live picker examples use ComposerRunSettingsLiveStory. Do not count the whole suite as production parity. Runner display/default/effort and matching-discovery source changes reviewed; existing fixture, proposal and historical scope retained. No new rendering, play, backend or provider qualification is claimed. Merged-master task handoff recipe source-reviewed; fixtures do not establish outgoing-run completion, cancellation or authorization. |
|
||||
| [Tasks and conversations/Task creation and lifecycle/Product/Control Plane Surfaces](../../ui/storybook/stories/tasks/control-plane-surfaces.stories.tsx) | `tasks/organize`, `questions-and-approvals/governance`, `budgets-costs/budgets`, `activity/activity` | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Merged-master task handoff recipe source-reviewed; fixtures do not establish outgoing-run completion, cancellation or authorization. |
|
||||
| [Tasks and conversations/Task creation and lifecycle/Product/Dialogs & Modals](../../ui/storybook/stories/tasks/dialogs-modals.stories.tsx) | `tasks/create`, `agents/hire`, `projects/lifecycle`, `goals/hierarchy` | unreviewed / production / fixtures | 17 / 2 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Runner-default recipe text reviewed; rendered subjects and fixture contracts are unchanged by that documentation update. Merged-master task handoff recipe source-reviewed; fixtures do not establish outgoing-run completion, cancellation or authorization. |
|
||||
| [Tasks and conversations/Task creation and lifecycle/External Objects](../../ui/storybook/stories/tasks/external-objects.stories.tsx) | `tasks/properties` | unreviewed / production / fixtures | 8 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Merged-master task handoff recipe source-reviewed; fixtures do not establish outgoing-run completion, cancellation or authorization. |
|
||||
| [Tasks and conversations/Task creation and lifecycle/Product/Issue Management](../../ui/storybook/stories/tasks/issue-management.stories.tsx) | `tasks/properties`, `tasks/organize` | unreviewed / production / fixtures | 8 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Merged-master task handoff recipe source-reviewed; fixtures do not establish outgoing-run completion, cancellation or authorization. |
|
||||
| [Tasks and conversations/Task creation and lifecycle/Components/Entity pickers/Mobile](../../ui/storybook/stories/tasks/mobile-entity-pickers.stories.tsx) | `tasks/create` | unreviewed / production / fixtures | 3 / 1 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Merged-master task handoff recipe source-reviewed; fixtures do not establish outgoing-run completion, cancellation or authorization. |
|
||||
| [Tasks and conversations/Task creation and lifecycle/Composer/New task](../../ui/storybook/stories/tasks/new-task-composer.stories.tsx) | `tasks/create` | current / production / fixtures | 40 / 25 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Merged-master task handoff recipe source-reviewed; fixtures do not establish outgoing-run completion, cancellation or authorization. |
|
||||
| [Tasks and conversations/Task creation and lifecycle/Tasks/Runner activity preview](../../ui/storybook/stories/tasks/runner-activity.stories.tsx) | `tasks/discussion`, `runs-adapters/runs` | current / production / fixtures | 14 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Runner-default recipe text reviewed; rendered subjects and fixture contracts are unchanged by that documentation update. Merged-master task handoff recipe source-reviewed; fixtures do not establish outgoing-run completion, cancellation or authorization. |
|
||||
| [Tasks and conversations/Task creation and lifecycle/Paperclip/Successful Run Handoff](../../ui/storybook/stories/tasks/successful-run-handoff.stories.tsx) | `tasks/completion`, `recovery/diagnosis` | unreviewed / production / fixtures | 7 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Merged-master task handoff recipe source-reviewed; fixtures do not establish outgoing-run completion, cancellation or authorization. Merged-master composer and assignment-suggestion sources reviewed; manual draft retention and simulated callbacks remain separate from live handoff proof. |
|
||||
| [Tasks and conversations/Task creation and lifecycle/Tasks/Task chat review fixes](../../ui/storybook/stories/tasks/task-chat-chain-of-thought.stories.tsx) | `tasks/discussion`, `runs-adapters/runs` | unreviewed / production / fixtures | 4 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Runner-default recipe text reviewed; rendered subjects and fixture contracts are unchanged by that documentation update. Merged-master task handoff recipe source-reviewed; fixtures do not establish outgoing-run completion, cancellation or authorization. |
|
||||
| [Tasks and conversations/Task creation and lifecycle/Task chat/Mobile streaming follow](../../ui/storybook/stories/tasks/task-chat-mobile-follow.stories.tsx) | `tasks/discussion` | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Merged-master task handoff recipe source-reviewed; fixtures do not establish outgoing-run completion, cancellation or authorization. Merged-master composer and assignment-suggestion sources reviewed; manual draft retention and simulated callbacks remain separate from live handoff proof. |
|
||||
| [Tasks and conversations/Task creation and lifecycle/Product/Task chat/System notice](../../ui/storybook/stories/tasks/task-chat-system-notice.stories.tsx) | `tasks/discussion` | unreviewed / production / fixtures | 2 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Merged-master task handoff recipe source-reviewed; fixtures do not establish outgoing-run completion, cancellation or authorization. |
|
||||
| [Tasks and conversations/Task creation and lifecycle/Tasks/Context notices](../../ui/storybook/stories/tasks/task-context-notices.stories.tsx) | `tasks/discussion` | unreviewed / production / fixtures | 1 / 1 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Merged-master task handoff recipe source-reviewed; fixtures do not establish outgoing-run completion, cancellation or authorization. |
|
||||
| [Tasks and conversations/Task creation and lifecycle/Chat & Comments/Human identity/00 Review guide](../../ui/storybook/stories/tasks/thread-human-identity/00-evidence.stories.tsx) | `tasks/discussion` | unreviewed / guide / static | 1 / 0 | Review guide retained; explanatory content does not establish runtime or production coverage. Merged-master task handoff recipe source-reviewed; fixtures do not establish outgoing-run completion, cancellation or authorization. |
|
||||
| [Tasks and conversations/Task creation and lifecycle/Chat & Comments/Human identity/01 Components](../../ui/storybook/stories/tasks/thread-human-identity/01-components.stories.tsx) | `tasks/discussion` | unreviewed / production / fixtures | 5 / 2 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Merged-master task handoff recipe source-reviewed; fixtures do not establish outgoing-run completion, cancellation or authorization. |
|
||||
| [Tasks and conversations/Task creation and lifecycle/Chat & Comments/Human identity/02 Mixed-author journey](../../ui/storybook/stories/tasks/thread-human-identity/02-task-journey.stories.tsx) | `tasks/discussion` | unreviewed / production / fixtures | 5 / 2 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. Merged-master task handoff recipe source-reviewed; fixtures do not establish outgoing-run completion, cancellation or authorization. Merged-master composer and assignment-suggestion sources reviewed; manual draft retention and simulated callbacks remain separate from live handoff proof. |
|
||||
|
||||
## teams
|
||||
|
||||
[Feature recipe](../feature-map/teams.md)
|
||||
|
||||
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| [Agents and reusable capabilities/Team packages and installation/Surfaces/Team Catalog](../../ui/storybook/stories/teams/team-catalog.stories.tsx) | `teams/preview`, `teams/discovery` | unreviewed / production / fixtures | 12 / 0 | Renders shipped TeamCatalog source, but feature map documents current CLI/API access and no top-level catalog route. |
|
||||
|
||||
## workspaces
|
||||
|
||||
[Feature recipe](../feature-map/workspaces.md)
|
||||
|
||||
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| [Projects and execution/Workspaces, services, and files/Tasks/Browser Use/Task activity](../../ui/storybook/stories/workspaces/browser-use-activity.stories.tsx) | `workspaces/services`, `tasks/discussion` | unreviewed / production / fixtures | 7 / 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. Merged-master task handoff recipe source-reviewed; fixtures do not establish outgoing-run completion, cancellation or authorization. |
|
||||
| [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. Merged-master task handoff recipe source-reviewed; fixtures do not establish outgoing-run completion, cancellation or authorization. |
|
||||
| [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. Merged-master task handoff recipe source-reviewed; fixtures do not establish outgoing-run completion, cancellation or authorization. |
|
||||
| [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/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. |
|
||||
|
||||
## Capability lookup
|
||||
|
||||
References are navigation links, not proof of parity. An absent link means no cataloged story, not a missing product feature. CLI/operator capabilities may need no Storybook example.
|
||||
|
||||
- `access/login`: No cataloged story.
|
||||
- `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/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.
|
||||
- `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/routine-audit`: No cataloged story.
|
||||
- `activity/timeline`: [Oversight and operation/Dashboards and audit trails/Pages/Work Timeline](../../ui/storybook/stories/activity/work-timeline.stories.tsx) (unreviewed)
|
||||
- `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) (current), [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) (current), [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`: No cataloged story.
|
||||
- `agent-chat/conference-room`: No cataloged story.
|
||||
- `agents/hire`: [Agents and reusable capabilities/Runs, harnesses, and model accounts/Onboarding/Saved connections](../../ui/storybook/stories/runs-adapters/agent-connection-reuse.stories.tsx) (current), [Tasks and conversations/Task creation and lifecycle/Product/Dialogs & Modals](../../ui/storybook/stories/tasks/dialogs-modals.stories.tsx) (unreviewed), [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), [Agents and reusable capabilities/Hiring, configuration, and organization/Onboarding/New agent](../../ui/storybook/stories/agents/new-agent-onboarding.stories.tsx) (historical), [Agents and reusable capabilities/Hiring, configuration, and organization/Codex runner/Creation](../../ui/storybook/stories/agents/codex-runner-creation.stories.tsx) (unreviewed)
|
||||
- `agents/instructions`: [Agents and reusable capabilities/Hiring, configuration, and organization/Pages/Agent Detail](../../ui/storybook/stories/agents/agent-detail.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Agents/Persistent files](../../ui/storybook/stories/agents/agent-files.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Product/Agent Management](../../ui/storybook/stories/agents/agent-management.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Agents/Configuration refresh](../../ui/storybook/stories/agents/agent-settings-redesign.stories.tsx) (mixed), [Apps, channels, and extensions/Connection setup/Design explorations/Connections/Agent instructions](../../ui/storybook/stories/connection-setup/connection-instructions.stories.tsx) (unreviewed), [Apps, channels, and extensions/Connection setup/Apps/Connections/Memory](../../ui/storybook/stories/connection-setup/memory-connectors.stories.tsx) (unreviewed)
|
||||
- `agents/organization`: [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), [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)
|
||||
- `agents/lifecycle`: [Agents and reusable capabilities/Hiring, configuration, and organization/Pages/Agent Detail](../../ui/storybook/stories/agents/agent-detail.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Product/Agent Management](../../ui/storybook/stories/agents/agent-management.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Agents/Configuration refresh](../../ui/storybook/stories/agents/agent-settings-redesign.stories.tsx) (mixed)
|
||||
- `agents/built-in`: [Agents and reusable capabilities/Hiring, configuration, and organization/Product/Built-in Agents](../../ui/storybook/stories/agents/built-in-agents.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Summaries/SummarySlotCard](../../ui/storybook/stories/agents/summary-slot-card.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/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/test-action`: [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)
|
||||
- `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`: No cataloged story.
|
||||
- `budgets-costs/resolution`: No cataloged story.
|
||||
- `cases/browse`: No cataloged story.
|
||||
- `cases/structure`: No cataloged story.
|
||||
- `cases/history`: No cataloged story.
|
||||
- `cases/task-links`: No cataloged story.
|
||||
- `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/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/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/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/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)
|
||||
- `cli-operations/context`: No cataloged story.
|
||||
- `cli-operations/domain-commands`: No cataloged story.
|
||||
- `cli-operations/outputs`: No cataloged story.
|
||||
- `cli-operations/run-controls`: No cataloged story.
|
||||
- `cli-operations/worktree-instances`: No cataloged story.
|
||||
- `companies/selection`: No cataloged story.
|
||||
- `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/archive`: No cataloged story.
|
||||
- `companies/portability`: No cataloged story.
|
||||
- `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/Provider choice](../../ui/storybook/stories/connection-setup/ConnectionProviderChoice.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)
|
||||
- `connection-setup/credentials`: [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/Connections/Browser Use Cloud/Settings](../../ui/storybook/stories/connection-setup/browser-use-settings.stories.tsx) (current), [Apps, channels, and extensions/Connection setup/Design explorations/Connections/Agent instructions](../../ui/storybook/stories/connection-setup/connection-instructions.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/Connection setup/PR reviews/Fireflies and app webhooks](../../ui/storybook/stories/connection-setup/fireflies-pr.stories.tsx) (unreviewed), [Apps, channels, and extensions/Connection setup/Apps/Connections/Memory](../../ui/storybook/stories/connection-setup/memory-connectors.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)
|
||||
- `connection-setup/handoff`: [Apps, channels, and extensions/Connection setup/Apps/Managed Cloud OAuth handoff](../../ui/storybook/stories/connection-setup/managed-cloud-oauth-handoff.stories.tsx) (unreviewed)
|
||||
- `connection-setup/draft-recovery`: No cataloged story.
|
||||
- `connection-setup/task-request`: [Tasks and conversations/Questions and approvals/Chat & Comments/Connection Reviews](../../ui/storybook/stories/questions-and-approvals/connection-reviews.stories.tsx) (unreviewed), [Apps, channels, and extensions/Connection setup/Connections/In-task connections](../../ui/storybook/stories/connection-setup/in-feed-connections.stories.tsx) (unreviewed)
|
||||
- `connection-setup/channel-setup`: [Apps, channels, and extensions/Connection setup/Components/Agent setup prompt](../../ui/storybook/stories/connection-setup/agent-setup-prompt.stories.tsx) (unreviewed), [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/GitHub and Code Review Bot](../../ui/storybook/stories/chat-channels/github-connections.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)
|
||||
- `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/Connection setup/Apps/Notion MCP connect flow (PAP-16650)](../../ui/storybook/stories/connection-setup/notion-connect-flow.stories.tsx) (unreviewed)
|
||||
- `developer-labs/design`: No cataloged story.
|
||||
- `developer-labs/interaction-labs`: [Contributor surfaces/Developer previews and diagnostic labs/UX Labs/Converted Test Pages](../../ui/storybook/stories/developer-labs/ux-labs.stories.tsx) (unreviewed)
|
||||
- `developer-labs/performance`: No cataloged story.
|
||||
- `developer-labs/route-gates`: No cataloged story.
|
||||
- `documents-artifacts/documents`: No cataloged story.
|
||||
- `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)
|
||||
- `documents-artifacts/library`: [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/Tasks/Artifact Gallery](../../ui/storybook/stories/documents-artifacts/task-artifact-gallery.stories.tsx) (unreviewed)
|
||||
- `execution-environments/configuration`: No cataloged story.
|
||||
- `execution-environments/capabilities`: No cataloged story.
|
||||
- `execution-environments/probe`: No cataloged story.
|
||||
- `execution-environments/assignment`: No cataloged story.
|
||||
- `execution-environments/images`: No cataloged story.
|
||||
- `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/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)
|
||||
- `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.
|
||||
- `inbox-search/views`: No cataloged story.
|
||||
- `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)
|
||||
- `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`: No cataloged story.
|
||||
- `instance-operations/diagnostics`: No cataloged story.
|
||||
- `instance-operations/backup`: No cataloged story.
|
||||
- `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/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.
|
||||
- `onboarding/instance`: No cataloged story.
|
||||
- `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.
|
||||
- `pipelines/stages`: No cataloged story.
|
||||
- `pipelines/items`: No cataloged story.
|
||||
- `pipelines/review`: No cataloged story.
|
||||
- `pipelines/learnings`: No cataloged story.
|
||||
- `plugins/installation`: No cataloged story.
|
||||
- `plugins/configuration`: No cataloged story.
|
||||
- `plugins/contributions`: No cataloged story.
|
||||
- `plugins/lifecycle`: No cataloged story.
|
||||
- `projects/lifecycle`: [Tasks and conversations/Task creation and lifecycle/Product/Dialogs & Modals](../../ui/storybook/stories/tasks/dialogs-modals.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), [Projects and execution/Projects and repositories/Product/Projects Goals Workspaces](../../ui/storybook/stories/projects/projects-goals-workspaces.stories.tsx) (unreviewed)
|
||||
- `projects/task-context`: [Tasks and conversations/Delegation, dependencies, and signoff/UX Labs/Tasks Created From a Task](../../ui/storybook/stories/task-coordination/originating-tasks.stories.tsx) (unreviewed)
|
||||
- `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)
|
||||
- `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)
|
||||
- `questions-and-approvals/plan-review`: [Tasks and conversations/Questions and approvals/Issue Detail/Plan Decompositions](../../ui/storybook/stories/questions-and-approvals/issue-plan-decompositions.stories.tsx) (unreviewed)
|
||||
- `questions-and-approvals/audience`: [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/governance`: [Tasks and conversations/Task creation and lifecycle/Product/Control Plane Surfaces](../../ui/storybook/stories/tasks/control-plane-surfaces.stories.tsx) (unreviewed)
|
||||
- `questions-and-approvals/tool-review`: [Tasks and conversations/Questions and approvals/Chat & Comments/Connection Reviews](../../ui/storybook/stories/questions-and-approvals/connection-reviews.stories.tsx) (unreviewed)
|
||||
- `questions-and-approvals/continuation`: No cataloged story.
|
||||
- `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)
|
||||
- `recovery/exhaustion`: No cataloged story.
|
||||
- `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)
|
||||
- `recovery/unknown-outcome`: No cataloged story.
|
||||
- `recovery/user-continuation`: No cataloged story.
|
||||
- `recovery/reconnect`: [Projects and execution/Recovery/App/Connection recovery](../../ui/storybook/stories/recovery/cloud-access-recovery.stories.tsx) (unreviewed)
|
||||
- `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/history`: No cataloged story.
|
||||
- `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)
|
||||
- `runs-adapters/availability`: [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), [Agents and reusable capabilities/Hiring, configuration, and organization/Codex runner/Creation](../../ui/storybook/stories/agents/codex-runner-creation.stories.tsx) (unreviewed)
|
||||
- `runs-adapters/validation`: [Agents and reusable capabilities/Runs, harnesses, and model accounts/Onboarding/Saved connections](../../ui/storybook/stories/runs-adapters/agent-connection-reuse.stories.tsx) (current), [Agents and reusable capabilities/Runs, harnesses, and model accounts/AI Connections/Usage limits](../../ui/storybook/stories/runs-adapters/ai-connection-usage.stories.tsx) (unreviewed), [Agents and reusable capabilities/Runs, harnesses, and model accounts/AI Connections/Review](../../ui/storybook/stories/runs-adapters/ai-connections.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), [Agents and reusable capabilities/Runs, harnesses, and model accounts/AI Connections/Connection pools](../../ui/storybook/stories/runs-adapters/connection-pools.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), [Agents and reusable capabilities/Runs, harnesses, and model accounts/AI Connections/Provider routing/07 Subscription sign-in](../../ui/storybook/stories/runs-adapters/local-ai-subscription.stories.tsx) (unreviewed), [Agents and reusable capabilities/Runs, harnesses, and model accounts/AI Connections/Provider routing/00 Overview](../../ui/storybook/stories/runs-adapters/provider-routing-00-overview.stories.tsx) (unreviewed), [Agents and reusable capabilities/Runs, harnesses, and model accounts/AI Connections/Provider routing/01 Onboarding](../../ui/storybook/stories/runs-adapters/provider-routing-01-onboarding.stories.tsx) (mixed), [Agents and reusable capabilities/Runs, harnesses, and model accounts/AI Connections/Provider routing/02 Connect](../../ui/storybook/stories/runs-adapters/provider-routing-02-connect.stories.tsx) (mixed), [Agents and reusable capabilities/Runs, harnesses, and model accounts/AI Connections/Provider routing/03 Agent](../../ui/storybook/stories/runs-adapters/provider-routing-03-agent.stories.tsx) (mixed), [Agents and reusable capabilities/Runs, harnesses, and model accounts/AI Connections/Provider routing/04 Manage](../../ui/storybook/stories/runs-adapters/provider-routing-04-manage.stories.tsx) (mixed), [Agents and reusable capabilities/Runs, harnesses, and model accounts/AI Connections/Provider routing/05 Recovery](../../ui/storybook/stories/runs-adapters/provider-routing-05-recovery.stories.tsx) (mixed), [Agents and reusable capabilities/Runs, harnesses, and model accounts/AI Connections/Provider routing/06 Production components](../../ui/storybook/stories/runs-adapters/provider-routing-06-production.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Codex runner/Creation](../../ui/storybook/stories/agents/codex-runner-creation.stories.tsx) (unreviewed)
|
||||
- `runs-adapters/runs`: [Tasks and conversations/Task creation and lifecycle/Product/Chat & Comments](../../ui/storybook/stories/tasks/chat-comments.stories.tsx) (unreviewed), [Tasks and conversations/Task creation and lifecycle/Tasks/Completed activity preview](../../ui/storybook/stories/tasks/completed-activity.stories.tsx) (current), [Tasks and conversations/Task creation and lifecycle/Tasks/Runner activity preview](../../ui/storybook/stories/tasks/runner-activity.stories.tsx) (current), [Tasks and conversations/Task creation and lifecycle/Tasks/Task chat review fixes](../../ui/storybook/stories/tasks/task-chat-chain-of-thought.stories.tsx) (unreviewed)
|
||||
- `runs-adapters/session`: [Agents and reusable capabilities/Runs, harnesses, and model accounts/Composer/Session goals](../../ui/storybook/stories/runs-adapters/session-goals.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/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)
|
||||
- `skills/discovery`: [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), [Agents and reusable capabilities/Skills and Skill Studio/Skills Store/Discovery grid](../../ui/storybook/stories/skills/skills-store-discovery.stories.tsx) (unreviewed)
|
||||
- `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)
|
||||
- `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/Product/Skills/Policy surfaces](../../ui/storybook/stories/skills/skill-policy-surfaces.stories.tsx) (unreviewed)
|
||||
- `skills/testing`: 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.
|
||||
- `steering/queue`: [Tasks and conversations/Steering and queued messages/Composer/Steering and queued messages](../../ui/storybook/stories/steering/composer-queued-messages.stories.tsx) (current)
|
||||
- `steering/edit-order-discard`: [Tasks and conversations/Steering and queued messages/Composer/Steering and queued messages](../../ui/storybook/stories/steering/composer-queued-messages.stories.tsx) (current)
|
||||
- `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.
|
||||
- `task-coordination/delegation`: [Tasks and conversations/Questions and approvals/Issue Detail/Plan Decompositions](../../ui/storybook/stories/questions-and-approvals/issue-plan-decompositions.stories.tsx) (unreviewed), [Tasks and conversations/Delegation, dependencies, and signoff/UX Labs/Tasks Created From a Task](../../ui/storybook/stories/task-coordination/originating-tasks.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/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)
|
||||
- `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)
|
||||
- `tasks/discussion`: [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), [Tasks and conversations/Task creation and lifecycle/Product/Chat & Comments](../../ui/storybook/stories/tasks/chat-comments.stories.tsx) (unreviewed), [Tasks and conversations/Task creation and lifecycle/Tasks/Completed activity preview](../../ui/storybook/stories/tasks/completed-activity.stories.tsx) (current), [Tasks and conversations/Task creation and lifecycle/Tasks/Runner activity preview](../../ui/storybook/stories/tasks/runner-activity.stories.tsx) (current), [Tasks and conversations/Task creation and lifecycle/Tasks/Task chat review fixes](../../ui/storybook/stories/tasks/task-chat-chain-of-thought.stories.tsx) (unreviewed), [Tasks and conversations/Task creation and lifecycle/Task chat/Mobile streaming follow](../../ui/storybook/stories/tasks/task-chat-mobile-follow.stories.tsx) (unreviewed), [Tasks and conversations/Task creation and lifecycle/Product/Task chat/System notice](../../ui/storybook/stories/tasks/task-chat-system-notice.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), [Tasks and conversations/Task creation and lifecycle/Tasks/Context notices](../../ui/storybook/stories/tasks/task-context-notices.stories.tsx) (unreviewed), [Tasks and conversations/Task creation and lifecycle/Chat & Comments/Human identity/00 Review guide](../../ui/storybook/stories/tasks/thread-human-identity/00-evidence.stories.tsx) (unreviewed), [Tasks and conversations/Task creation and lifecycle/Chat & Comments/Human identity/01 Components](../../ui/storybook/stories/tasks/thread-human-identity/01-components.stories.tsx) (unreviewed), [Tasks and conversations/Task creation and lifecycle/Chat & Comments/Human identity/02 Mixed-author journey](../../ui/storybook/stories/tasks/thread-human-identity/02-task-journey.stories.tsx) (unreviewed)
|
||||
- `tasks/completion`: [Tasks and conversations/Task creation and lifecycle/Paperclip/Assigned Backlog Safeguards](../../ui/storybook/stories/tasks/assigned-backlog-safeguards.stories.tsx) (unreviewed), [Tasks and conversations/Task creation and lifecycle/Paperclip/Successful Run Handoff](../../ui/storybook/stories/tasks/successful-run-handoff.stories.tsx) (unreviewed)
|
||||
- `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`: No cataloged story.
|
||||
- `teams/configuration`: No cataloged story.
|
||||
- `workspaces/binding`: [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.
|
||||
@@ -1,91 +1,100 @@
|
||||
# Storybook map
|
||||
|
||||
The [feature index](INDEX.md) connects the existing Storybook to stable capability
|
||||
IDs from the upstream [feature map](../feature-map/README.md). Story files remain
|
||||
in `ui/storybook/`. The feature map and its maintenance skill do not depend on
|
||||
this catalog. New capabilities or upstream recipe drift are reported to their
|
||||
maintainer; this catalog does not redefine product behavior or permissions.
|
||||
Browse the [published feature guide](https://d1p6rlowie26tp.cloudfront.net/storybook/branches/master/?path=/story/overview-storybook-guide--coverage-guide),
|
||||
or run `pnpm storybook` for the current checkout. The feature and capability IDs
|
||||
come from the [feature recipes](../feature-map/README.md). Product behavior and
|
||||
permissions remain governed by the implementation spec and access companions.
|
||||
|
||||
## Ownership
|
||||
## Authored sources
|
||||
|
||||
- [maintain-storybook](../../.agents/skills/maintain-storybook/SKILL.md) owns story
|
||||
alignment, fixture corrections, classification, and this catalog.
|
||||
- [review-storybook](../../.agents/skills/review-storybook/SKILL.md) consumes it to
|
||||
select and exercise examples, then reports evidence and drift.
|
||||
- [DESIGN.md](../../DESIGN.md) governs design. Production verification remains
|
||||
with the existing product recipes and verification tools.
|
||||
Each story owns its small `parameters.paperclip` annotation. There is no authored
|
||||
central catalog, review ledger, date stamp, source list or fingerprint to update.
|
||||
Storybook's CSF parser supplies filenames, titles, explicit meta IDs, exports,
|
||||
play-function counts and story IDs without executing story modules.
|
||||
|
||||
## Catalog contract
|
||||
|
||||
`catalog.json` is the maintained inventory, with one entry per story file.
|
||||
`INDEX.md` is generated from it and the installed Storybook CSF parser. Titles,
|
||||
export filtering, story counts and IDs come from source, not filename guesses.
|
||||
All examples are retained, including historical suites. A file's first capability
|
||||
is its primary home; remaining capabilities are lookup references, not copies.
|
||||
Foundations/guides and proposals without a mapped capability need an exception
|
||||
reason. An absent story is not automatically a feature gap.
|
||||
|
||||
## Folders and sidebar
|
||||
|
||||
Story files live in `ui/storybook/stories/<primary-feature-area>/`, using the first
|
||||
capability's area slug. Related capabilities still point to the same story. Shared
|
||||
fixture modules and assets live in `ui/storybook/support/`; production wrappers in
|
||||
`ui/storybook/prototypes/` retain their existing ownership.
|
||||
|
||||
The sidebar follows the section and feature names in the feature-map README, then
|
||||
retains each suite's useful scenario grouping. Foundations contains shared component
|
||||
examples with no primary product capability. Overview contains the catalog guide.
|
||||
Areas with no stories do not get empty sidebar folders.
|
||||
|
||||
Each suite declares an explicit CSF `id`, recorded as `stableId` in the catalog.
|
||||
The `sidebarTitle` can change without changing that identity. Existing story and
|
||||
autodocs URLs and screenshot names remain valid. Do not derive a replacement ID
|
||||
from a newly organized title. The checker rejects missing or changed explicit IDs,
|
||||
incorrect feature folders, and sidebar titles outside their primary feature home.
|
||||
|
||||
Each entry records purpose, capability references, review sources/date/fingerprint,
|
||||
notes, and three independent dimensions:
|
||||
|
||||
| Dimension | Values |
|
||||
| --- | --- |
|
||||
| Product status | `current`: source comparison supports the named subject; `proposed`: intentional alternate design; `historical`: superseded reference retained for its original purpose; `mixed`: suite combines these; `unreviewed`: parity has not been established |
|
||||
| Implementation | `production`: shipped subject with fixture/layout wrappers; `prototype`: locally implemented subject, even if it uses shared primitives; `mixed`: both subjects; `guide`: explanatory documentation |
|
||||
| Data boundary | `fixtures`: props, callbacks, caches or API responses are simulated; `fixture-server`: requires a separately owned local API/database fixture with simulated upstream providers; `static`: explanatory/static examples |
|
||||
|
||||
`current` is a source-review classification, not a promise that every state renders
|
||||
or that APIs, gates, persistence and providers passed live tests. `unreviewed`
|
||||
entries still have an inventory/classification review; notes explain the deeper
|
||||
parity work outstanding. Mixed files retain a note naming the important split.
|
||||
Production components can legitimately use mock data. A prototype directory name
|
||||
does not establish implementation: some wrappers there re-export shipped UI.
|
||||
|
||||
Review sources include the story, relevant local support and production subjects.
|
||||
Include directly rendered subjects regardless of import spelling, and primitives
|
||||
when the suite demonstrates them. Do not truncate the list to a fixed source count.
|
||||
Fingerprints make changes to those declared dependencies visible. They do not
|
||||
follow every transitive production import or infer semantic correctness. Shared
|
||||
preview/config/fixture changes have a separate fingerprint and require reviewing
|
||||
affected callers. Update fingerprints only after reviewing the change, and add
|
||||
missing dependencies when discovered. Date/revision context for the initial pass
|
||||
and executed evidence belong in [REVIEW.md](REVIEW.md).
|
||||
|
||||
## Maintenance commands
|
||||
|
||||
After installing workspace dependencies:
|
||||
|
||||
```sh
|
||||
node scripts/storybook-catalog.mjs
|
||||
node scripts/storybook-catalog.mjs --write
|
||||
node --test scripts/storybook-catalog.test.mjs
|
||||
```ts
|
||||
const meta = {
|
||||
id: "tasks-create",
|
||||
title: "Tasks and conversations/Task creation and lifecycle/Create",
|
||||
parameters: {
|
||||
paperclip: {
|
||||
capabilities: ["tasks/create"],
|
||||
implementation: "production",
|
||||
boundary: "fixtures",
|
||||
notes: "Uses the shipped composer; submission is simulated.",
|
||||
},
|
||||
},
|
||||
};
|
||||
```
|
||||
|
||||
The checker rejects unaccounted or deleted stories, invalid capability references,
|
||||
duplicate entries/IDs, missing review sources, changed fingerprints and a stale
|
||||
generated index. `--write` only regenerates the index; it never refreshes review
|
||||
fingerprints or blesses drift. Preserve IDs when changing titles or moving files;
|
||||
compare the existing built Storybook index before and after such changes.
|
||||
`capabilities` is an array of stable `area/capability` IDs. Its first entry is the
|
||||
primary home; others cross-list the same suite. An empty array requires an
|
||||
`exception` explaining the intentional scope. Shared foundations may use
|
||||
`home: "foundations"` with an exception to keep their existing location and links.
|
||||
The metadata must be literal; place it after any other parameter spreads.
|
||||
|
||||
Use the existing [Storybook workflow](../../doc/DEVELOPING.md#storybook) for builds,
|
||||
browser review, and visual tests. Report source inspection, rendering, `play`
|
||||
assertions, visual comparisons and production acceptance separately. Do not publish
|
||||
new visual baselines just to make catalog maintenance pass.
|
||||
| Field | Values and purpose |
|
||||
| --- | --- |
|
||||
| `status` | `current`, `proposed`, `historical`, `mixed`, `unreviewed` (default). Authored product alignment intent, not a live review certificate. |
|
||||
| `implementation` | `production`, `prototype`, `mixed`, `guide`, `unreviewed` (default). What actually renders. |
|
||||
| `boundary` | `fixtures`, `fixture-server`, `static`, `unreviewed` (default). What is simulated or requires an owned fixture. |
|
||||
| `notes` | Optional durable scenario limits and rationale. Do not append a history of unrelated changes. |
|
||||
| `replacement` | Optional repository-relative path of an existing replacement story. |
|
||||
|
||||
A production component can use fixtures. A prototype that imports production
|
||||
primitives remains a prototype of its outer subject. Use `unreviewed` when intent
|
||||
or parity is unclear. Preserve useful historical examples and their explanations.
|
||||
Historical examples, proposals and guides do not remove missing-example gaps.
|
||||
No annotation or story count proves permissions, persistence, provider behavior,
|
||||
full recipe coverage or passing tests.
|
||||
|
||||
## Navigation and outputs
|
||||
|
||||
Stories live in `ui/storybook/stories/<primary-feature-area>/`. Sidebar titles use
|
||||
the recipe's section and H1 title, followed by the suite name. `/` in feature
|
||||
labels becomes `, ` in the sidebar. Preserve explicit CSF IDs across title/folder
|
||||
changes. Compare the built `index.json` when changing navigation.
|
||||
|
||||
The generator discovers feature recipes and story annotations. It assembles:
|
||||
|
||||
- `ui/storybook/generated/catalog.json` and `feature-index.json`.
|
||||
- A generated Overview story per feature, retaining `feature-map-<area>--overview`.
|
||||
- `ui/storybook/.storybook/preview.tsx`, with the literal sidebar order required
|
||||
by Storybook and the authored decorators/fixtures from `preview-base.tsx`.
|
||||
- Markdown feature, access, Storybook and verification indexes, plus the current
|
||||
page inventory, under `maps/generated/`.
|
||||
|
||||
All these outputs are ignored. Storybook start/build and UI typechecking generate
|
||||
from a fresh checkout. The published Storybook includes the guide and each feature's
|
||||
verification scope. After edits during a dev session, rerun the generator (restart
|
||||
Storybook after navigation changes). Obsolete generated Overview files are removed.
|
||||
Never edit generated outputs or commit them to resolve a merge conflict.
|
||||
|
||||
## Checks and review
|
||||
|
||||
```sh
|
||||
node scripts/check-maps.mjs
|
||||
node scripts/storybook-catalog.mjs
|
||||
node scripts/storybook-catalog.mjs --check
|
||||
node --test scripts/check-maps.test.mjs scripts/storybook-catalog.test.mjs scripts/storybook-feature-index.test.mjs
|
||||
```
|
||||
|
||||
`--write` is a compatibility alias for the default generation command. `--check`
|
||||
validates authored inputs without requiring existing outputs or writing files.
|
||||
Checks reject malformed annotations, unknown capabilities, duplicate IDs, broken
|
||||
map references, missing companions and invalid navigation. CI runs the map tests
|
||||
through the UI Vitest suite and validates/generates inputs during UI typechecking.
|
||||
|
||||
Use Git diffs to select changed stories, rendered subjects, fixtures, and recipes
|
||||
for review. A changed source is a review candidate, not an instruction to refresh
|
||||
metadata on every dependent example. Inspect actual imports and contracts; shared
|
||||
fixture changes can require broad review without broad acknowledgement edits.
|
||||
Keep revision-specific findings and executed evidence in the PR, issue or CI
|
||||
artifact. Move only durable limitations into the affected source annotation or
|
||||
recipe. Past review history remains available through Git.
|
||||
|
||||
`maintain-storybook` owns stories and their annotations; `review-storybook` exercises
|
||||
them. Product/access maintenance owns the recipes, including optional capability
|
||||
verification scope. Use the [existing Storybook browser workflow](../../doc/DEVELOPING.md#storybook).
|
||||
Report source inspection, rendering, play assertions, visual comparison and
|
||||
production acceptance separately. Do not publish new baselines to pass a map cleanup.
|
||||
@@ -1,394 +0,0 @@
|
||||
# Initial Storybook review — 2026-10-12
|
||||
|
||||
Source baseline: `f0e12c851971a21f7aadf0835b016bfaf2067314`.
|
||||
Scope: complete source inventory and initial classification, with targeted source
|
||||
comparison and browser checks. This is not full state parity, full interaction
|
||||
coverage, or production acceptance for all stories.
|
||||
|
||||
## Inventory and organization
|
||||
|
||||
There is one Storybook, already centralized under `ui/storybook/`. At the initial
|
||||
baseline, its 223 story files were split between 176 files at the stories root and
|
||||
47 nested files, with 51 top-level sidebar groups. The initial pass recorded
|
||||
product meaning, provenance, and review status before changing that organization.
|
||||
The follow-up organization pass below moves the files and sidebar together.
|
||||
|
||||
The downstream catalog gives each file a primary feature home and related stable
|
||||
capability IDs. The generated index includes all 171 upstream capabilities across
|
||||
35 feature areas. The existing Overview story now provides searchable feature
|
||||
navigation into the actual built story index. The initial pass kept sidebar titles
|
||||
stable; the follow-up uses explicit IDs to preserve links while changing titles.
|
||||
|
||||
| Dimension | Initial classification |
|
||||
| --- | --- |
|
||||
| Product alignment | 18 current subjects, 4 proposals, 5 historical suites, 8 mixed suites, 188 requiring deeper parity review |
|
||||
| Rendered subject | 199 production, 8 prototype, 11 mixed, 5 guides |
|
||||
| Data boundary | 217 fixture-based, 1 separate fixture server, 5 static guides |
|
||||
|
||||
A production subject can have unreviewed state parity. A current subject can still
|
||||
have untested loading, error, permission, or backend behavior. The catalog's notes
|
||||
and source references qualify these labels; none are a substitute for live proof.
|
||||
|
||||
## Corrections and retained history
|
||||
|
||||
- **Question dismissal and send:** the local interaction-above-composer harness
|
||||
kept a pending badge for dismissed questions and left the question open after
|
||||
a normal send. Production `TaskChatThread` excludes questions from
|
||||
`pendingReminderInputs` and dismisses the selected question on send. The harness
|
||||
now matches those rules. Added question-dismiss and confirmation-reopen cases;
|
||||
corrected the send case's stale editor selector. The story still does not prove
|
||||
persisted dismissal or history behavior.
|
||||
- **Fast response helpers:** `empty`, `configured`, and `result` were exported
|
||||
fixtures which Storybook also treated as stories. Their IDs collided with
|
||||
`Empty`, `Configured`, and `Result`. Explicit exclusion removes the false exports
|
||||
while retaining the real stories and imported fixtures. Browser review also
|
||||
exposed a missing explicit `onConnectionChange` spy after the production view
|
||||
began calling it on mount; added that fixture callback.
|
||||
- **Chat provenance:** the main chat wrapper combines production conversation/task
|
||||
pages with a local landing view. The separate first-created-agent chat-entry
|
||||
design is historical; current primary-agent examples are its replacement.
|
||||
- **Historical designs retained:** GitHub chat, old agent onboarding, connect-model
|
||||
tiles, paused composer, and chat-entry remain available with their purpose and
|
||||
replacement references. Local proposals are labeled rather than deleted.
|
||||
- **Prototype folder is not a verdict:** some files re-export production subjects;
|
||||
others implement local compositions. Static import traversal found no obvious
|
||||
orphan prototype TS/TSX module. This is not proof that each is still useful.
|
||||
- **Contributor guidance:** replaced the old Overview's manual coverage claims,
|
||||
corrected the interaction-authoring skill's obsolete story path, and updated the
|
||||
prototype README's catalog source count to match the shipped five sources.
|
||||
|
||||
## Verification
|
||||
|
||||
Environment: local macOS, headless Chromium, built Storybook 10.6.0, fixture data.
|
||||
The following nine `play` cases reached Storybook's `storyFinished: success` event
|
||||
without a browser page exception. These results establish story interactions only.
|
||||
|
||||
| Story ID | Subject / assertion |
|
||||
| --- | --- |
|
||||
| `composer-interaction-above-composer--ask-user-questions-and-send` | Production card/composer in local harness; normal send dismisses question without a pending badge |
|
||||
| `composer-interaction-above-composer--dismiss-question-without-pending-badge` | Production card/composer; dismiss leaves editable composer without pending badge |
|
||||
| `composer-interaction-above-composer--dismiss-confirmation-keeps-pending-badge` | Production card/composer; dismiss retains confirmation badge and reopening works |
|
||||
| `composer-new-task--empty` | Production composer wrapper; existing play assertions |
|
||||
| `design-explorations-agent-chat-sidebar-components--add-and-reopen-chat` | Production sidebar; fixture add/reopen assertions |
|
||||
| `assistant-connections-consent--choose-organization` | Production consent surface; fixture organization selection assertions |
|
||||
| `historical-github-chat-prototypes--standard-trust-warning` | Historical prototype; existing trust-warning assertions, not current GitHub acceptance |
|
||||
| `design-previews-recovery-notice--retry-request-failed` | Production recovery notice; fixture failure-state assertions |
|
||||
| `composer-mobile-assignee-picker--picker-open` | Production picker; existing open-picker assertions |
|
||||
|
||||
Additional manual browser checks passed: search the guide for `steering/queue`,
|
||||
follow its link to the real queued-message story, dismiss a question, then reload
|
||||
and verify that the fixture resets to an open question. Screenshots were inspected
|
||||
locally and are not committed as new regression baselines.
|
||||
|
||||
Built-index comparison: all 2,208 prior story IDs remain; only the two new dismissal
|
||||
regressions were added (2,210 total). Catalog validation, eight checker tests,
|
||||
feature-map validation, both skill validators, token gates, workspace typecheck,
|
||||
and workspace build passed. Fast-response settings `empty`, `configured`, and
|
||||
`result` subsequently reached `storyFinished: success` with no page exceptions
|
||||
following the explicit callback fix. These three cases are render checks, not save
|
||||
or backend-persistence tests. The UI Vitest project passed all 8,176 tests in 728
|
||||
files. The full `pnpm test:run` reported a 15-second timeout in the unchanged backend
|
||||
case `connects advertised Workspace gmail.read without mutating definitions in
|
||||
authenticated`. That exact case passed standalone without changing expectations
|
||||
or timeouts. The remaining broad run was stopped after this failure; a complete
|
||||
repository suite pass is not established.
|
||||
|
||||
Automated review found missing directly rendered subjects in the initial dependency
|
||||
list. Expanded the catalog across affected suites, including relative production
|
||||
imports, all direct non-primitive subjects in local wrappers, and the primitives
|
||||
that foundation stories demonstrate. Explanatory review guides keep their separate
|
||||
guide classification. This records change detection, not new parity
|
||||
acceptance. Added a real CSF parser regression for nested discovery, include/exclude
|
||||
rules, stable explicit IDs, and play counts.
|
||||
|
||||
## Feature organization follow-up — 2026-10-12
|
||||
|
||||
Source baseline: `75bd3c977cd828d5222823850339e8204f40eb47` (parent PR #16046).
|
||||
The 223 story files now live under their primary feature area in
|
||||
`ui/storybook/stories/`. The sidebar uses the feature map's section and feature
|
||||
labels in map order. Existing scenario groups remain below those labels.
|
||||
Overview and shared Foundations have dedicated homes. Areas without stories do
|
||||
not get empty sidebar groups; their gaps remain visible in the catalog.
|
||||
|
||||
Nineteen supporting files moved to `ui/storybook/support/`, including fixtures,
|
||||
shared wrappers, guide READMEs, an HTML fixture, and a fixture test. Relative imports,
|
||||
active documentation, catalog sources, and replacement references follow the
|
||||
moves. Classification and review scope did not change. The upstream feature map
|
||||
and its skill are unchanged.
|
||||
|
||||
Every suite now has an explicit meta ID, recorded as `stableId` in the catalog.
|
||||
The built index comparison preserved all 2,210 story IDs, the single docs ID, and
|
||||
all entry names. No story was removed or added. Catalog validation checks primary
|
||||
feature folders, sidebar prefixes, and stable meta IDs; its nine tests passed.
|
||||
|
||||
The Storybook build, UI typecheck, all 8,176 UI tests in 728 files, token gates,
|
||||
map checks, and the maintenance-skill validator passed. A source comparison found
|
||||
only changed meta titles/IDs, rebased relative references, and updated fixture
|
||||
path text in story files. The full repository suite was not repeated for these
|
||||
file moves; the prior full-suite limitation above still applies.
|
||||
|
||||
Local Chromium verified the sidebar's section/feature order, rendered the guide,
|
||||
searched `steering/queue`, and followed its link to the unchanged
|
||||
`composer-steering-and-queued-messages--queued-while-running` ID. The nine play
|
||||
cases listed above and `fast-responses-01-settings--empty` all reached
|
||||
`storyFinished: success` without page exceptions after relocation. This is a
|
||||
sample of interactions and rendering, not execution of all 2,210 stories.
|
||||
The fixture-server story and visual-baseline comparisons remain untested for the
|
||||
reasons below. The owned static preview was left running for the requested test-drive.
|
||||
|
||||
## Remaining review work
|
||||
|
||||
1. Review the 188 unreviewed suites by capability and production subject. Compare
|
||||
state transitions, payloads, errors, gates, and reset behavior before promoting
|
||||
a suite. Start with large route wrappers and shared fixture dependencies.
|
||||
2. Shared preview mocks can fall through to the original fetch; some route harnesses
|
||||
return empty arrays for unmatched APIs. These can hide missing fixtures. Audit
|
||||
affected endpoints per feature rather than treating a render as API coverage.
|
||||
3. The managed-accounts test-drive story needs the separately owned local API/DB
|
||||
fixture at port 4310. Its upstream providers are simulated. It was not exercised
|
||||
against an unknown existing service.
|
||||
4. Screenshot comparison is blocked: the existing baseline manifest has zero
|
||||
snapshots and no published archive. Keep using the established Linux baseline
|
||||
workflow when its baseline is published. Do not bless new baselines as part of
|
||||
catalog cleanup.
|
||||
5. Review fingerprints track declared sources, including feature recipes and local
|
||||
support; they do not traverse every production dependency. Add missing subjects
|
||||
when a review discovers them. Shared setup changes require reviewing callers.
|
||||
|
||||
Use `maintain-storybook` to correct drift and `review-storybook` to record separate
|
||||
source, render, interaction, visual-comparison, and production evidence. Both skills
|
||||
consume the feature map; neither changes its upstream contract.
|
||||
|
||||
## Native runtime prerequisite: scoped source follow-up — 2026-10-12
|
||||
|
||||
Source comparison: `9f59ff36cf2da963709ca19c06ab005510c835a6` against actual
|
||||
master `4b958ecbd8f33a7782fe6f29ec825f80f636b833`. The reviewed
|
||||
`maps/feature-map/runs-adapters.md` bytes have SHA-256
|
||||
`ca5aff86608b7d7987dc0ee814475a7b93e3faff1f99ce090429d2e932b7e16b`.
|
||||
|
||||
Twenty-one entries in Runs, harnesses, and model accounts and Task creation and
|
||||
lifecycle had review-fingerprint drift. Their 117 unique declared sources have
|
||||
one changed input: the runs-adapters feature recipe. All 21 story files and the
|
||||
other 116 declared production subjects, wrappers and fixture sources are
|
||||
unchanged from master. The recipe adds bounded native startup and registration
|
||||
retirement controls. It separates those provider-free controls from real daemon
|
||||
and installed-provider proof; it changes no represented UI or fixture contract.
|
||||
|
||||
Refreshed only those 21 reviewed fingerprints. No story, fixture, export, stable
|
||||
ID, title, capability reference or product/implementation/data classification
|
||||
changed. Existing mixed and unreviewed parity limitations remain. No fixture
|
||||
correction is needed for this scoped prerequisite; this does not establish full
|
||||
state parity for the affected suites.
|
||||
|
||||
This follow-up is source inspection only. Rendering, play assertions, visual
|
||||
comparisons and production provider acceptance were not run. Native lifecycle
|
||||
behavior remains with the linked transport controls and their existing hosted
|
||||
CI fixtures. Catalog validation proves structure and reviewed dependency hashes,
|
||||
not that these live journeys passed.
|
||||
|
||||
## Claude/Codex runner composition review — 2026-10-12
|
||||
|
||||
Source context: canonical runtime prerequisite
|
||||
`64c074fb8da1b31f8d6042c4fef48dc4164e759b` composed with the Codex dependency
|
||||
and local Claude behavior at `304e95c320`; the catalog/story changes in this
|
||||
checkpoint are recorded below. This pass covers changed source dependencies and
|
||||
six selected fixture interactions. It is not a full state-parity or Linux visual
|
||||
baseline comparison, and it does not qualify providers or default rollout.
|
||||
|
||||
The shared preview now supplies the production general-settings response and
|
||||
resolved runner-discovery fields required by the matching-discovery guard. Its
|
||||
Claude/Codex defaults explicitly simulate Legacy; the independent Codex creation
|
||||
fixture simulates a qualified native default. The native inventory is not added
|
||||
twice. Opus 5.5 joins the model metadata without replacing explicit older models.
|
||||
All fixtures remain isolated from live providers and production accounts.
|
||||
|
||||
Fifty-three affected entries retain their previous current/mixed/historical/
|
||||
unreviewed classifications. Source changes include shared runner controls,
|
||||
branding, model/effort/default discovery, and the associated recipes. Existing
|
||||
Select subjects remain intact while the shared module adds the runner popover;
|
||||
no new primitive coverage is inferred. Direct runner-control dependencies are
|
||||
listed where the rendered form/wizard uses them. The new Codex creation file is
|
||||
placed in the agents feature home with explicit stable ID
|
||||
`agents-codex-runner-creation`; all eight existing IDs survive. All 2,223 current
|
||||
story IDs match the pre-move inventory, and 224 files are accounted for.
|
||||
|
||||
An owned Storybook 10.6.0 dev server on port 6195 and the in-app browser executed
|
||||
these existing play functions. Each displayed `Story status: Pass`, with its
|
||||
observable result checked and no captured browser errors:
|
||||
|
||||
| Story ID | Observed result |
|
||||
| --- | --- |
|
||||
| `agents-codex-runner-creation--automatic-codex` | Runner shows Paperclip Runner as default with the old experimental gate disabled |
|
||||
| `agents-codex-runner-creation--explicit-legacy` | Runner remains Legacy |
|
||||
| `agents-codex-runner-creation--setup-failure` | Missing-runner failure is visible and the override stays available |
|
||||
| `agents-codex-runner-creation--task-ready` | Native fixture setup reaches the task-ready confirmation |
|
||||
| `onboarding-agent-arc--claude-api-key` | Claude API-key entry is visible; no live key is entered |
|
||||
| `onboarding-agent-arc--connect-with-saved-claude-subscription` | Simulated saved connection advances to Review |
|
||||
|
||||
Revisiting Automatic Codex after Task Ready restores the Connect step, its native
|
||||
default and a disabled Confirmation step; no hired-agent state leaks. This is
|
||||
fixture reset evidence, not persisted backend/session evidence. Other plays,
|
||||
full themes/mobile variants in this Storybook, accessibility grading and Linux
|
||||
baseline comparisons are not run. The retained product preview's separate mobile
|
||||
inspection remains bound to its earlier compiled source, and final installed
|
||||
product/provider checks remain pending. The catalog checker and nine checker
|
||||
controls pass; UI noemit, maps and token gates pass on the composed source.
|
||||
|
||||
## Task workspace reconciliation — 2026-10-12
|
||||
|
||||
Scope: the 26 declared-source entries affected by task-workspace work at
|
||||
`88b1d3a2`, compared with master `dabb8c5daf`, including subsequent comment-only
|
||||
cleanup and the fixture corrections below. This is a bounded source review,
|
||||
not a new review of all Storybook states. Reconciliation onto `b5046ec022`
|
||||
preserves its new feature folders, sidebar titles and explicit stable IDs, along
|
||||
with the existing exports, classification and simulation boundaries. Shared GitHub
|
||||
fixtures now live under `ui/storybook/support/github-bot-management/`.
|
||||
|
||||
Twenty-one entries changed only through the expanded chat/workspace recipes.
|
||||
Their setup, identity, browser, artifact, picker and service examples are retained;
|
||||
the new recipe requirements do not become covered merely because they reference
|
||||
the same capability. Five entries also depend on changed production subjects:
|
||||
|
||||
| Story file under `ui/storybook/stories/` | Source review and remaining scope |
|
||||
| --- | --- |
|
||||
| `chat-channels/chat-management/chat-management.stories.tsx` | Mounted endpoint includes connection/destination defaults. Added the missing selectable-workspace fixture response; existing endpoint PATCH and resource PUT retain defaults. No browser save, error, reload or inheritance proof in this pass. |
|
||||
| `chat-channels/github-bot-management/management.stories.tsx` | Mounted endpoint/repository editors include defaults. Fixed the endpoint mock to persist PATCH values instead of returning the original endpoint. Resource PUT already distinguishes omitted, null and concrete values. Project/workspace choices are intentionally empty fixtures. |
|
||||
| `chat-channels/imessage-photon.stories.tsx` | Existing scenarios mount setup/access and simulate task conversations. They do not exercise the newly added settings editor or its workspace-choice request. Kept unreviewed rather than claiming settings coverage. |
|
||||
| `projects/projects-goals-workspaces.stories.tsx` | Existing project-bound summaries still match the rendered components. New nullable project references and runtime invalidation branches have no projectless story scenario here. |
|
||||
| `workspaces/workspace-runtime-provisioning.stories.tsx` | The demonstrated status subcomponent is unchanged. Its local context row does not prove the full detail page's new projectless behavior. |
|
||||
|
||||
The three endpoint-management entries now declare `ChatExecutionDefaults` and its
|
||||
API clients as review dependencies. AgentMail settings still demonstrates only
|
||||
the inbox subsection, not the surrounding endpoint defaults. Historical GitHub
|
||||
designs remain historical; existing unreviewed entries remain unreviewed. None of
|
||||
these fixture examples establishes source authorization, retained file privacy,
|
||||
pending workspace selection, sandbox admission or existing-conversation continuity.
|
||||
|
||||
Executed: the GitHub fixture's two Vitest cases passed, including default save,
|
||||
subsequent GET, omitted-value preservation, explicit null clearing and fresh-mount
|
||||
reset. After the folder rebase, both fixture tests and all nine catalog checker
|
||||
tests passed again; token gates passed before the path-only reconciliation. After the final
|
||||
source freeze, only the 26 reviewed fingerprints were refreshed; catalog validation
|
||||
passed for all 223 files and all 2,210 source-parsed story IDs were unchanged.
|
||||
All 223 upstream file paths, explicit stable IDs and sidebar titles were preserved.
|
||||
Not run in this pass: Storybook build, browser rendering or `play`, screenshot
|
||||
comparisons, provider calls and live production acceptance. No new visual
|
||||
baselines were accepted. Fixture tests are boundary simulations, not server
|
||||
persistence or permission tests.
|
||||
|
||||
## Workspace safety recipe follow-up — 2026-10-12
|
||||
|
||||
Reviewed the twelve entries that depend on the workspace feature recipe: browser-use activity/footer/page, the three HTML-artifact suites, project execution strategy and project workspace summaries, searchable selection, workspace files, runtime provisioning and service controls. Their production subjects, fixtures, feature folders, sidebar titles and stable IDs are unchanged. The recipe now requires prospective child boundary checks, safe low-trust reopening, and coherent returned checkpoint ancestry. These backend safety contracts are not exercised by those fixtures. Each entry remains unreviewed for full production parity. Only the reviewed recipe fingerprints were refreshed; no browser render, play, screenshot baseline or production acceptance was run for this follow-up.
|
||||
|
||||
|
||||
## Remote provisioning recipe follow-up — 2026-10-13
|
||||
|
||||
Reviewed the same twelve workspace-recipe-dependent entries after extending the controller-provisioning boundary to standard-trust sandbox and SSH selections. Their components, fixtures and stable IDs are unchanged. Project strategy stories demonstrate configuration fields with environment selection disabled; runtime provisioning stories demonstrate status values with a no-operation log handler. Browser, artifact, file and service-control fixtures do not execute source scripts or prove admission placement. The new recipe requires controller marker denial independent of source write grants while copying and dispatch remain available, including local copy-only selections, retained deny-only metadata and closed-worktree reopening. Implicit trusted local defaults remain separate positive controls. All twelve entries retain their unreviewed production classification. Refreshed only these recipe fingerprints after this source review; no browser render, play, screenshot, Storybook build or live runtime qualification is claimed.
|
||||
|
||||
## Default-source recipe follow-up — 2026-10-13
|
||||
|
||||
Reviewed the twelve unchanged workspace recipe subjects and fixtures after correcting implicit default selection. Task creation and controller classification now share configured-policy, primary, creation-time and ID precedence. Explicit choices and retained denial markers still suppress controller hooks. Project strategy fixtures show configuration, while runtime status and file/browser/artifact/service fixtures do not execute source scripts or prove this backend ordering. Refreshed only their reviewed recipe fingerprints and retained all classifications and stable IDs. No browser render, play, screenshot, Storybook build or live runtime acceptance was performed.
|
||||
|
||||
|
||||
## Inherited activity, inbox and recovery recipes — 2026-10-12
|
||||
|
||||
Source comparison: master `e168512f7bdbb6af6ea01954c6d7ed80b91e903e`
|
||||
against previous master `f329b24ee12496e710ad17377ec7716e0eee22ef`,
|
||||
while reconciling the native-runtime prerequisite. All 25 affected catalog
|
||||
entries are identical to e168 master; their stale fingerprints were inherited.
|
||||
|
||||
The 101 unique declared inputs have three changed feature recipes. The remaining 98 inputs, including all 25 story files, are unchanged
|
||||
between those masters and the merged worktree. They include 92 non-map
|
||||
story, subject, wrapper and fixture sources and six unchanged map files. The reviewed recipe
|
||||
bytes have these SHA-256 identities:
|
||||
|
||||
- `maps/feature-map/activity.md`: `3867cc392c031cc5ca9ec61bfc4211d685da37e39fb36e9b152497b7cf970caf`.
|
||||
- `maps/feature-map/inbox-search.md`: `8ff5431ddfe54c0c288eecffb785f864d8bfeb38be50c66615999ffbbfba6863`.
|
||||
- `maps/feature-map/recovery.md`: `46fee5940f23a6d1483697e0b07817a78d993d4748b51121d2e113dd2a96173b`.
|
||||
|
||||
The activity addition names issue-scoped activity authorization and sandbox
|
||||
bridge controls; company audit/display fixtures do not establish live sandbox
|
||||
agent access. The inbox recipe excludes automatic historical read cleanup from
|
||||
user participation while retaining explicit decisions; static inbox/decision
|
||||
examples do not execute that query or the newly required user/company journey.
|
||||
The recovery recipe retains native workspace-owner holds across task completion
|
||||
and repeated reads until exact operator retirement; recovery display fixtures
|
||||
do not establish ownership, copyback denial, action identity or live operator
|
||||
recovery. These backend acceptance requirements remain separate gaps.
|
||||
|
||||
The proposed maintenance changes only those 25 reviewed dependency fingerprints.
|
||||
Retain the existing 24 unreviewed and one current classification, simulation
|
||||
boundaries, story exports, titles and stable IDs. No fixture or story correction
|
||||
is indicated by this declared-source comparison. This does not promote full
|
||||
state parity or coverage for the added backend requirements.
|
||||
|
||||
Source inspection only: no browser rendering, play, visual baseline, provider
|
||||
run or live production acceptance was performed for this reconciliation. The
|
||||
existing catalog checker must run on the actual merged tree after synchronization;
|
||||
its result verifies structure and declared hashes, not these live journeys.
|
||||
|
||||
### Claude composition with canonical dae808fe — 2026-10-12
|
||||
|
||||
Two catalog conflicts combine already reviewed Claude display/fixture sources
|
||||
with the canonical activity and recovery map changes described above:
|
||||
`task-credential-access-02-task-page` and `product-data-visualization-misc`.
|
||||
The added map recipes cover issue-scoped activity authorization and retained
|
||||
native workspace ownership. They do not change the stories' display contracts.
|
||||
Recomputed only these two combined fingerprints after inspecting those map
|
||||
diffs; existing sources, notes, statuses and stable IDs remain intact. The
|
||||
catalog checker passes with 224 files and 2,223 stories. No new rendering, play,
|
||||
provider execution or backend acceptance is claimed by this conflict resolution.
|
||||
|
||||
|
||||
## Claude managed setup source review — 2026-10-13
|
||||
|
||||
Reviewed the six affected entries: activity/data-viz-misc,
|
||||
chat-channels/github-bot-management/management, onboarding/onboarding-agent-arc,
|
||||
onboarding/onboarding-character, onboarding/onboarding-connect-model and
|
||||
agents/codex-runner-creation. Four declare the shipped wizard or creation setup;
|
||||
their sources now include the Claude qualification helper. The other two depend
|
||||
on the updated onboarding recipe. Existing subjects, mocks, exports, stable IDs
|
||||
and classifications are retained.
|
||||
|
||||
The shipped setup qualifies new Auto Claude on an explicit immutable sandbox
|
||||
image at Connect, refreshes scoped discovery and uses the measured runner for
|
||||
testing and saving. Permission failures and stale company/environment/settings
|
||||
results stop setup. Wizard discovery is cached after the operation to avoid
|
||||
cancelling its own measured default transition. Existing local and sandbox
|
||||
fixtures without an immutable image do not exercise this new boundary. Mounted
|
||||
unit tests simulate it separately; they do not establish provider execution,
|
||||
permissions in a real instance or sandbox allocation/cleanup.
|
||||
|
||||
Refreshed only these reviewed source fingerprints. This review adds no browser
|
||||
rendering, play execution, screenshot baselines, Storybook build or live managed
|
||||
acceptance. Full parity remains unreviewed for five entries; the older model
|
||||
connection preview remains historical.
|
||||
|
||||
|
||||
## Actual merged-master reconciliation — 2026-10-13
|
||||
|
||||
Compared behavior d1a945229e503347023224e3f9e8976865f85457 with its
|
||||
actual-master composition 3f442729a4f1253771e5693724142efb58f9c006. Master
|
||||
contains merged prerequisite d67e3507b23041212fa26302ce6de078c5ebcc05.
|
||||
The inherited delta changes nine declared sources across 61 entries. Reviewed
|
||||
all nine changed inputs: the task handoff recipe, chat identity response type,
|
||||
three thread/composer subjects, TaskChatComposer, IssueDetail, ChatEndpointDetail
|
||||
and its existing chat-management story. The scope and each before/after hash are
|
||||
retained in /private/tmp/claude-d67-catalog-source-review.json.
|
||||
|
||||
Composer sources now retain manual assignee drafts across suggestions and use
|
||||
assignment activity after a current-user handoff. Existing callbacks and API
|
||||
fixtures do not establish authoritative transfer, outgoing-run completion or
|
||||
cancellation. The task recipe adds that separate live requirement. Linked-user
|
||||
access rows use the returned image or initials. The inherited Access play checks
|
||||
image loading and alignment with the existing asset; it was inspected, not run.
|
||||
Added the directly used avatar/initials sources to three endpoint entries and
|
||||
the imported existing avatar asset to chat-management's review sources.
|
||||
|
||||
Retained every export, title, stable ID and classification: seven current,
|
||||
50 unreviewed, two mixed and two historical entries. Current classifications
|
||||
retain their named prior scope; none is promoted to live handoff or avatar proof.
|
||||
No source changes to the other declared fixtures are claimed. Refreshed only
|
||||
the 61 reviewed fingerprints and regenerated the index. Catalog validation and
|
||||
all nine checker controls pass: 224 files, 2,223 story IDs. This is a source
|
||||
reconciliation with no new rendering, play, visual baseline or live acceptance.
|
||||
File diff suppressed because it is too large.
Load diff
Reference in new issue
Block a user