stagent 0.10.0 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (170) hide show
  1. package/README.md +15 -2
  2. package/dist/cli.js +24 -0
  3. package/docs/.coverage-gaps.json +154 -24
  4. package/docs/.last-generated +1 -1
  5. package/docs/features/agent-intelligence.md +12 -2
  6. package/docs/features/chat.md +40 -5
  7. package/docs/features/cost-usage.md +1 -1
  8. package/docs/features/documents.md +5 -2
  9. package/docs/features/inbox-notifications.md +10 -2
  10. package/docs/features/keyboard-navigation.md +12 -3
  11. package/docs/features/provider-runtimes.md +16 -2
  12. package/docs/features/settings.md +2 -2
  13. package/docs/features/shared-components.md +7 -3
  14. package/docs/features/tables.md +3 -1
  15. package/docs/features/tool-permissions.md +6 -2
  16. package/docs/features/workflows.md +6 -2
  17. package/docs/index.md +1 -1
  18. package/docs/journeys/developer.md +25 -2
  19. package/docs/journeys/personal-use.md +12 -5
  20. package/docs/journeys/power-user.md +45 -14
  21. package/docs/journeys/work-use.md +17 -8
  22. package/docs/manifest.json +15 -15
  23. package/docs/superpowers/plans/2026-04-14-chat-command-namespace-refactor.md +1390 -0
  24. package/docs/superpowers/plans/2026-04-14-chat-environment-integration.md +1561 -0
  25. package/docs/superpowers/plans/2026-04-14-chat-polish-bundle-v1.md +1219 -0
  26. package/docs/superpowers/plans/2026-04-14-chat-session-persistence-provider-closeout.md +399 -0
  27. package/next.config.mjs +1 -0
  28. package/package.json +1 -1
  29. package/src/app/api/chat/conversations/[id]/skills/__tests__/activate.test.ts +141 -0
  30. package/src/app/api/chat/conversations/[id]/skills/activate/route.ts +74 -0
  31. package/src/app/api/chat/conversations/[id]/skills/deactivate/route.ts +33 -0
  32. package/src/app/api/chat/export/route.ts +52 -0
  33. package/src/app/api/chat/files/search/route.ts +50 -0
  34. package/src/app/api/environment/rescan-if-stale/__tests__/route.test.ts +45 -0
  35. package/src/app/api/environment/rescan-if-stale/route.ts +23 -0
  36. package/src/app/api/environment/skills/route.ts +13 -0
  37. package/src/app/api/schedules/[id]/execute/route.ts +2 -2
  38. package/src/app/api/settings/chat/pins/route.ts +94 -0
  39. package/src/app/api/settings/chat/saved-searches/__tests__/route.test.ts +119 -0
  40. package/src/app/api/settings/chat/saved-searches/route.ts +79 -0
  41. package/src/app/api/settings/environment/route.ts +26 -0
  42. package/src/app/api/tasks/[id]/execute/route.ts +52 -12
  43. package/src/app/api/tasks/[id]/respond/route.ts +31 -15
  44. package/src/app/api/tasks/[id]/resume/route.ts +24 -3
  45. package/src/app/documents/page.tsx +4 -1
  46. package/src/app/settings/page.tsx +2 -0
  47. package/src/components/chat/__tests__/capability-banner.test.tsx +38 -0
  48. package/src/components/chat/__tests__/chat-session-provider.test.tsx +166 -1
  49. package/src/components/chat/__tests__/skill-row.test.tsx +91 -0
  50. package/src/components/chat/capability-banner.tsx +68 -0
  51. package/src/components/chat/chat-command-popover.tsx +668 -47
  52. package/src/components/chat/chat-input.tsx +103 -8
  53. package/src/components/chat/chat-message.tsx +12 -3
  54. package/src/components/chat/chat-session-provider.tsx +73 -3
  55. package/src/components/chat/chat-shell.tsx +62 -3
  56. package/src/components/chat/command-tab-bar.tsx +68 -0
  57. package/src/components/chat/conversation-template-picker.tsx +421 -0
  58. package/src/components/chat/help-dialog.tsx +39 -0
  59. package/src/components/chat/skill-composition-conflict-dialog.tsx +96 -0
  60. package/src/components/chat/skill-row.tsx +147 -0
  61. package/src/components/documents/document-browser.tsx +37 -19
  62. package/src/components/notifications/__tests__/permission-response-actions.test.tsx +70 -0
  63. package/src/components/notifications/permission-response-actions.tsx +155 -1
  64. package/src/components/settings/environment-section.tsx +102 -0
  65. package/src/components/shared/__tests__/filter-hint.test.tsx +40 -0
  66. package/src/components/shared/__tests__/saved-searches-manager.test.tsx +147 -0
  67. package/src/components/shared/command-palette.tsx +262 -2
  68. package/src/components/shared/filter-hint.tsx +70 -0
  69. package/src/components/shared/filter-input.tsx +59 -0
  70. package/src/components/shared/saved-searches-manager.tsx +199 -0
  71. package/src/components/tasks/task-bento-grid.tsx +12 -2
  72. package/src/components/tasks/task-card.tsx +3 -0
  73. package/src/components/tasks/task-chip-bar.tsx +30 -1
  74. package/src/hooks/__tests__/use-chat-autocomplete-tabs.test.ts +47 -0
  75. package/src/hooks/__tests__/use-saved-searches.test.ts +70 -0
  76. package/src/hooks/use-active-skills.ts +110 -0
  77. package/src/hooks/use-chat-autocomplete.ts +120 -7
  78. package/src/hooks/use-enriched-skills.ts +19 -0
  79. package/src/hooks/use-pinned-entries.ts +104 -0
  80. package/src/hooks/use-recent-user-messages.ts +19 -0
  81. package/src/hooks/use-saved-searches.ts +142 -0
  82. package/src/lib/agents/__tests__/claude-agent-sdk-options.test.ts +56 -0
  83. package/src/lib/agents/__tests__/claude-agent.test.ts +17 -4
  84. package/src/lib/agents/__tests__/task-dispatch.test.ts +166 -0
  85. package/src/lib/agents/__tests__/tool-permissions.test.ts +60 -0
  86. package/src/lib/agents/claude-agent.ts +105 -46
  87. package/src/lib/agents/handoff/bus.ts +2 -2
  88. package/src/lib/agents/profiles/__tests__/list-fused-profiles.test.ts +110 -0
  89. package/src/lib/agents/profiles/__tests__/registry.test.ts +47 -0
  90. package/src/lib/agents/profiles/builtins/upgrade-assistant/SKILL.md +30 -3
  91. package/src/lib/agents/profiles/builtins/upgrade-assistant/profile.yaml +6 -2
  92. package/src/lib/agents/profiles/list-fused-profiles.ts +104 -0
  93. package/src/lib/agents/profiles/registry.ts +18 -0
  94. package/src/lib/agents/profiles/types.ts +7 -1
  95. package/src/lib/agents/router.ts +3 -6
  96. package/src/lib/agents/runtime/__tests__/catalog.test.ts +130 -0
  97. package/src/lib/agents/runtime/__tests__/execution-target.test.ts +183 -0
  98. package/src/lib/agents/runtime/anthropic-direct.ts +8 -0
  99. package/src/lib/agents/runtime/catalog.ts +121 -0
  100. package/src/lib/agents/runtime/claude-sdk.ts +32 -0
  101. package/src/lib/agents/runtime/execution-target.ts +456 -0
  102. package/src/lib/agents/runtime/index.ts +4 -0
  103. package/src/lib/agents/runtime/launch-failure.ts +101 -0
  104. package/src/lib/agents/runtime/openai-codex.ts +35 -0
  105. package/src/lib/agents/runtime/openai-direct.ts +8 -0
  106. package/src/lib/agents/task-dispatch.ts +220 -0
  107. package/src/lib/agents/tool-permissions.ts +16 -1
  108. package/src/lib/chat/__tests__/active-skill-injection.test.ts +261 -0
  109. package/src/lib/chat/__tests__/clean-filter-input.test.ts +68 -0
  110. package/src/lib/chat/__tests__/command-tabs.test.ts +68 -0
  111. package/src/lib/chat/__tests__/context-builder-files.test.ts +112 -0
  112. package/src/lib/chat/__tests__/dismissals.test.ts +65 -0
  113. package/src/lib/chat/__tests__/engine-sdk-options.test.ts +117 -0
  114. package/src/lib/chat/__tests__/skill-conflict.test.ts +35 -0
  115. package/src/lib/chat/__tests__/types.test.ts +28 -0
  116. package/src/lib/chat/active-skills.ts +31 -0
  117. package/src/lib/chat/clean-filter-input.ts +30 -0
  118. package/src/lib/chat/codex-engine.ts +30 -7
  119. package/src/lib/chat/command-tabs.ts +61 -0
  120. package/src/lib/chat/context-builder.ts +141 -1
  121. package/src/lib/chat/dismissals.ts +73 -0
  122. package/src/lib/chat/engine.ts +109 -15
  123. package/src/lib/chat/files/__tests__/search.test.ts +135 -0
  124. package/src/lib/chat/files/expand-mention.ts +76 -0
  125. package/src/lib/chat/files/search.ts +99 -0
  126. package/src/lib/chat/skill-composition.ts +210 -0
  127. package/src/lib/chat/skill-conflict.ts +105 -0
  128. package/src/lib/chat/stagent-tools.ts +6 -19
  129. package/src/lib/chat/stream-telemetry.ts +9 -4
  130. package/src/lib/chat/system-prompt.ts +22 -0
  131. package/src/lib/chat/tool-catalog.ts +33 -3
  132. package/src/lib/chat/tools/__tests__/profile-tools.test.ts +51 -0
  133. package/src/lib/chat/tools/__tests__/settings-tools.test.ts +294 -0
  134. package/src/lib/chat/tools/__tests__/skill-tools.test.ts +474 -0
  135. package/src/lib/chat/tools/__tests__/task-tools.test.ts +47 -0
  136. package/src/lib/chat/tools/__tests__/workflow-tools-dedup.test.ts +134 -0
  137. package/src/lib/chat/tools/blueprint-tools.ts +190 -0
  138. package/src/lib/chat/tools/helpers.ts +2 -0
  139. package/src/lib/chat/tools/profile-tools.ts +120 -23
  140. package/src/lib/chat/tools/skill-tools.ts +183 -0
  141. package/src/lib/chat/tools/task-tools.ts +6 -2
  142. package/src/lib/chat/tools/workflow-tools.ts +61 -20
  143. package/src/lib/chat/types.ts +15 -0
  144. package/src/lib/constants/settings.ts +2 -0
  145. package/src/lib/data/clear.ts +2 -6
  146. package/src/lib/db/bootstrap.ts +17 -0
  147. package/src/lib/db/schema.ts +26 -0
  148. package/src/lib/environment/__tests__/auto-promote.test.ts +132 -0
  149. package/src/lib/environment/__tests__/list-skills-enriched.test.ts +55 -0
  150. package/src/lib/environment/__tests__/skill-enrichment.test.ts +129 -0
  151. package/src/lib/environment/__tests__/skill-recommendations.test.ts +87 -0
  152. package/src/lib/environment/data.ts +9 -0
  153. package/src/lib/environment/list-skills.ts +176 -0
  154. package/src/lib/environment/parsers/__tests__/skill.test.ts +54 -0
  155. package/src/lib/environment/parsers/skill.ts +26 -5
  156. package/src/lib/environment/profile-generator.ts +54 -0
  157. package/src/lib/environment/skill-enrichment.ts +106 -0
  158. package/src/lib/environment/skill-recommendations.ts +66 -0
  159. package/src/lib/filters/__tests__/parse.quoted.test.ts +40 -0
  160. package/src/lib/filters/__tests__/parse.test.ts +135 -0
  161. package/src/lib/filters/parse.ts +86 -0
  162. package/src/lib/instance/__tests__/upgrade-poller.test.ts +50 -0
  163. package/src/lib/instance/fingerprint.ts +7 -9
  164. package/src/lib/instance/upgrade-poller.ts +53 -1
  165. package/src/lib/schedules/scheduler.ts +4 -4
  166. package/src/lib/workflows/blueprints/__tests__/render-prompt.test.ts +124 -0
  167. package/src/lib/workflows/blueprints/render-prompt.ts +71 -0
  168. package/src/lib/workflows/blueprints/types.ts +6 -0
  169. package/src/lib/workflows/engine.ts +5 -3
  170. package/src/test/setup.ts +10 -0
@@ -4,9 +4,9 @@ category: "feature-reference"
4
4
  section: "workflows"
5
5
  route: "/workflows"
6
6
  tags: [workflows, patterns, sequence, parallel, swarm, autonomous, templates, multi-step, blueprints, delays, drip]
7
- features: ["workflow-engine", "workflow-blueprints", "ai-assist-workflow-creation", "workflow-context-batching", "business-function-profiles", "workflow-step-delays"]
7
+ features: ["workflow-engine", "workflow-blueprints", "ai-assist-workflow-creation", "workflow-context-batching", "business-function-profiles", "workflow-step-delays", "chat-conversation-templates", "workflow-run-history"]
8
8
  screengrabCount: 4
9
- lastUpdated: "2026-04-08"
9
+ lastUpdated: "2026-04-15"
10
10
  ---
11
11
 
12
12
  # Workflows
@@ -48,6 +48,10 @@ The blueprint gallery offers pre-built workflow templates for common patterns:
48
48
 
49
49
  Click any blueprint to preview its steps, then create a workflow pre-populated with the template configuration. Customize steps, profiles, and runtimes to match your specific process.
50
50
 
51
+ ### Blueprints as Chat Templates
52
+
53
+ Blueprints also double as **conversation templates** for the Chat surface. A blueprint can declare an optional `chatPrompt` field that provides a purpose-built opening prompt for chat use; if it is not set, the chat launcher falls back to `steps[0].promptTemplate`. This means the same blueprint asset powers three entry points — the Workflows gallery, the Chat empty-state picker, and the `/new-from-template` slash command — without requiring parallel definitions. See the [Chat](./chat.md) feature doc for the conversation-side flow.
54
+
51
55
  ### Tabs: All, Templates, Runs
52
56
  The workflow page organizes content into three tabs. "All" shows every workflow. "Templates" shows reusable patterns you can instantiate. "Runs" shows active and historical executions with their current status.
53
57
 
package/docs/index.md CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "Stagent Documentation"
3
3
  category: "index"
4
- lastUpdated: "2026-04-03"
4
+ lastUpdated: "2026-04-15"
5
5
  ---
6
6
 
7
7
  # Stagent Documentation
@@ -6,7 +6,7 @@ difficulty: "advanced"
6
6
  estimatedTime: "30 minutes"
7
7
  sections: ["settings", "environment", "chat", "monitoring", "profiles", "workflows", "tables", "schedules", "delivery-channels"]
8
8
  tags: ["advanced", "developer", "settings", "environment", "cli", "api", "monitoring", "profiles", "ollama", "channels", "handoffs", "memory", "tables"]
9
- lastUpdated: "2026-04-08"
9
+ lastUpdated: "2026-04-16"
10
10
  ---
11
11
 
12
12
  # Developer Guide
@@ -55,7 +55,7 @@ Riley sets up Ollama as the fifth runtime adapter for private, zero-cost executi
55
55
 
56
56
  Riley sets up Slack and Telegram as delivery channels for schedule notifications and bidirectional chat.
57
57
 
58
- ![Settings data management section](../screengrabs/settings-data.png)
58
+ ![Settings Delivery Channels section](../screengrabs/settings-channels.png)
59
59
 
60
60
  1. Scroll to **Delivery Channels** in Settings
61
61
  2. Click **+ Add Channel** and select **Slack**
@@ -218,6 +218,29 @@ Riley builds the CLI for scripted operations and CI/CD integration.
218
218
  3. Test CRUD operations: `node dist/cli.js projects list`, `node dist/cli.js tasks create --title "CLI test"`
219
219
  4. Verify CLI-created entities appear in the web UI (shared SQLite database)
220
220
 
221
+ ### Step 14a: Understand the Runtime Capability Matrix
222
+
223
+ Riley wants to know why some features show up on one runtime but not another. The answer lives in the runtime capability matrix.
224
+
225
+ 1. Open `src/lib/agents/runtime/catalog.ts` — each runtime adapter declares flags like `supportsSkillComposition`, `maxActiveSkills`, `hasNativeSkills`, `stagentInjectsSkills`, and `autoLoadsInstructions`
226
+ 2. The Chat Skills tab reads `supportsSkillComposition` to decide whether to enable multi-skill activation and "N of M active" reporting
227
+ 3. The SKILL.md injector reads `stagentInjectsSkills` to avoid duplicating context on runtimes (like Codex App Server and Claude Agent SDK) that load instructions natively
228
+ 4. When you wire a new feature that touches system prompts or skills, consult the matrix before deciding whether Stagent should inject something or trust the runtime to do so
229
+
230
+ > **Tip:** The MCP task-tools boundary also validates the runtime ID now (runtime-validation-hardening). Malformed `runtimeId` values are rejected at the boundary with a clean error, rather than crashing the dispatcher.
231
+
232
+ ### Step 14b: Observe the Upgrade Detection Poller
233
+
234
+ ![Instance section showing dev mode status and upgrade detection gate](../screengrabs/settings-instance.png)
235
+
236
+ 1. Scroll to the **Instance** section in Settings to see the dev mode status and upgrade detection gate
237
+ 2. The hourly scheduler runs `git fetch` against the upstream remote and compares `HEAD` to `origin/main`
238
+ 3. When upstream is ahead, the sidebar shows an **Upgrade available** badge and the Instance card reports the commits-behind count
239
+ 4. Three consecutive poll failures escalate to a persistent inbox notification (three-strike dedup prevents notification floods)
240
+ 5. The upgrade session uses the `upgrade-assistant` profile, which allowlists **AskUserQuestion** — the assistant can ask direct questions mid-merge without hitting a generic permission prompt
241
+
242
+ > **Tip:** The Instance card also shows bootstrap status. In dev mode (indicated by `STAGENT_DEV_MODE=true` or the `.git/stagent-dev-mode` sentinel), auto-upgrade machinery is skipped to avoid interfering with contributor workflows.
243
+
221
244
  ### Step 15: Verify Platform Health
222
245
 
223
246
  Riley performs a final platform health check.
@@ -6,7 +6,7 @@ difficulty: "beginner"
6
6
  estimatedTime: "30 minutes"
7
7
  sections: ["home-workspace", "dashboard-kanban", "projects", "chat", "tables", "schedules", "user-guide", "book"]
8
8
  tags: ["beginner", "solo", "tasks", "kanban", "chat", "tables", "schedules", "delivery-channels", "book"]
9
- lastUpdated: "2026-04-08"
9
+ lastUpdated: "2026-04-16"
10
10
  ---
11
11
 
12
12
  # Personal Use Guide
@@ -69,9 +69,13 @@ Before setting up a formal project, Alex tries the Chat feature to brainstorm id
69
69
  2. Notice the **Tool Catalog** with a welcoming hero heading and suggested prompt categories (Explore, Create, Debug, Automate)
70
70
  3. Browse the **Smart Picks** row for personalized suggestions
71
71
  4. Type a question like "What pages should a developer portfolio website include?" and press Enter
72
- 5. Review the AI response
72
+ 5. Review the AI response -- notice how Chat keeps a clean conversation thread, deduplicating similar messages so the history stays readable
73
+ 6. Try typing **@** in the composer to open the mentions popover -- you can reference tasks, projects, documents, profiles, and workflows inline to give the AI richer context
74
+ 7. Next time, try **Start from template** on the empty-state hero (or type `/new-from-template` in the composer) to open a conversation pre-primed with a blueprint like "Research a topic" or "Draft a plan"
73
75
 
74
- > **Tip:** Chat is perfect for quick brainstorming sessions. You do not need to create a project first -- just ask a question. The conversation history stays in the sidebar so you can return to it later.
76
+ ![@ mentions popover showing pinned entities, tasks, projects, and documents](../screengrabs/chat-mentions-popover.png)
77
+
78
+ > **Tip:** Chat is perfect for quick brainstorming sessions. You do not need to create a project first -- just ask a question. The conversation history stays in the sidebar so you can return to it later. Pin useful filter + search combinations as **saved searches** (available from the `⌘K` palette under the **Saved** group) so you can jump back to them later.
75
79
 
76
80
  ### Step 5: Create a New Project
77
81
 
@@ -122,7 +126,10 @@ Alex creates the first task for the portfolio project.
122
126
  3. Write a **Description** with detail about requirements
123
127
  4. Assign the task to the **Portfolio Website** project
124
128
  5. Set **Priority** to High and leave **Status** as Planned
125
- 6. Click **Create** to add the task to the board
129
+ 6. Open the **/** popover in the composer to browse available tools (create_task, execute_task, read_file) and entities -- these are the same capabilities the AI uses when running tasks
130
+ 7. Click **Create** to add the task to the board
131
+
132
+ ![/ popover Tools tab showing available runtime tools](../screengrabs/chat-tools-tab.png)
126
133
 
127
134
  > **Tip:** Write task descriptions as if you are briefing a colleague. The more specific you are, the better the AI agent results will be.
128
135
 
@@ -181,7 +188,7 @@ Alex wants Stagent to proactively check on the portfolio project every morning.
181
188
 
182
189
  Alex wants to receive schedule results on the go. Setting up a Telegram delivery channel takes less than two minutes.
183
190
 
184
- ![Settings page showing provider and runtime configuration](../screengrabs/settings-auth.png)
191
+ ![Settings page showing Delivery Channels configuration](../screengrabs/settings-channels.png)
185
192
 
186
193
  1. Open **Settings** from the sidebar under **Configure**
187
194
  2. Scroll to the **Delivery Channels** section
@@ -6,7 +6,7 @@ difficulty: "advanced"
6
6
  estimatedTime: "30 minutes"
7
7
  sections: ["dashboard-kanban", "profiles", "chat", "workflows", "tables", "schedules", "monitoring", "settings"]
8
8
  tags: ["advanced", "automation", "workflows", "profiles", "tables", "schedules", "monitoring", "bulk-operations", "ollama", "episodic-memory", "nlp-scheduling"]
9
- lastUpdated: "2026-04-03"
9
+ lastUpdated: "2026-04-16"
10
10
  ---
11
11
 
12
12
  # Power User Guide
@@ -88,14 +88,16 @@ Sam wants to run privacy-sensitive tasks on local models with zero API cost.
88
88
 
89
89
  Sam creates schedules by describing them in plain English instead of writing cron expressions.
90
90
 
91
- ![Schedules list with active and heartbeat schedules](../screengrabs/schedules-list.png)
91
+ ![New schedule form filled — Daily Standup Summary with weekday 9am cron](../screengrabs/schedules-create-form-filled.png)
92
92
 
93
93
  1. Navigate to **Schedules** and click **Create Schedule**
94
94
  2. In the interval field, type natural language: "every weekday at 10pm," "every 6 hours during business hours," or "twice daily at 9am and 5pm"
95
95
  3. A **preview** appears showing exactly how the system parsed the input
96
96
  4. Select **Heartbeat** type to add intelligence -- the agent evaluates a checklist before acting
97
97
  5. Add checklist items specific to your automation needs
98
- 6. Save the schedule
98
+ 6. Save the schedule and click on it to open the **detail sheet** -- review firing history, next run time, and pause/resume controls
99
+
100
+ ![Schedule detail sheet with firing history and autonomous loop controls](../screengrabs/schedules-detail.png)
99
101
 
100
102
  > **Tip:** NLP scheduling removes the friction of cron syntax. If the preview does not match your intent, rephrase and it re-parses instantly.
101
103
 
@@ -103,10 +105,10 @@ Sam creates schedules by describing them in plain English instead of writing cro
103
105
 
104
106
  Sam customizes a workflow for a "Deploy & Verify" pipeline with specialized profiles at each step.
105
107
 
106
- ![Workflows list showing existing workflow definitions](../screengrabs/workflows-list.png)
108
+ ![New workflow form with delay step — ML Pipeline Orchestrator with 3-step sequence](../screengrabs/workflows-create-form-delay.png)
107
109
 
108
110
  1. From the Workflows page, click **Create Workflow** (or customize a blueprint)
109
- 2. Configure steps with different agent profiles at each stage
111
+ 2. Add steps with different agent profiles at each stage -- notice the **delay step** option for inserting timed pauses between steps (e.g., a 2-hour cooldown between deploy and verification)
110
112
  3. Use the business-function profiles for non-technical steps (e.g., Content Creator for documentation, Operations Coordinator for runbook updates)
111
113
  4. Save the workflow
112
114
 
@@ -146,7 +148,27 @@ Sam connects a table to the workflow engine so that row changes automatically ki
146
148
 
147
149
  > **Tip:** Table triggers turn spreadsheets into event-driven automation surfaces. Sam uses them to auto-run incident postmortems whenever an incident row status changes to "Resolved."
148
150
 
149
- ### Step 11: Batch-Manage Tasks on the Kanban
151
+ ### Step 11: Create Tasks with AI Assist
152
+
153
+ Sam uses AI Assist to turn a rough task idea into a fully specified, workflow-ready plan.
154
+
155
+ ![AI Assist returned — improved description, complexity analysis, and Swarm pattern recommendation](../screengrabs/dashboard-create-form-ai-assist.png)
156
+
157
+ 1. From the Dashboard, click **Create Task**
158
+ 2. Enter a rough title and description -- for example, "API Security Audit" with a one-line description
159
+ 3. Click **AI Assist** -- the system analyzes the task and returns an improved description, complexity rating, recommended execution pattern (e.g., Swarm), and a checkpoint flag
160
+ 4. Review the **breakdown** -- for complex tasks, AI Assist generates a multi-step workflow with per-step descriptions
161
+
162
+ ![AI Assist breakdown — 6-step security audit workflow with per-step descriptions](../screengrabs/dashboard-create-form-ai-breakdown.png)
163
+
164
+ 5. Click **Apply** to replace the original description with the AI-improved version, or **Convert to Workflow** to generate a full workflow from the breakdown
165
+ 6. The resulting workflow lands on the confirmation page, ready for review and customization
166
+
167
+ ![Task form after clicking Apply — improved description replaces original](../screengrabs/dashboard-create-form-ai-applied.png)
168
+
169
+ > **Tip:** AI Assist is the bridge between "I have a vague idea" and "I have a production-ready plan." For complex tasks, it recommends the Swarm pattern where multiple agents tackle sub-steps in parallel -- this is how multi-agent swarm execution works in practice.
170
+
171
+ ### Step 12: Batch-Manage Tasks on the Kanban
150
172
 
151
173
  Sam cleans up the task board using bulk select mode.
152
174
 
@@ -160,7 +182,7 @@ Sam cleans up the task board using bulk select mode.
160
182
 
161
183
  > **Tip:** After a weekend of autonomous heartbeat runs, Sam's first Monday task is always a bulk cleanup.
162
184
 
163
- ### Step 12: Schedule Automated Prompt Loops
185
+ ### Step 13: Schedule Automated Prompt Loops
164
186
 
165
187
  ![Schedules list showing active schedules and firing status](../screengrabs/schedules-list.png)
166
188
 
@@ -170,7 +192,7 @@ Sam cleans up the task board using bulk select mode.
170
192
  4. Verify stop conditions and delivery channels
171
193
  5. Toggle **Pause/Resume** as needed
172
194
 
173
- ### Step 13: Leverage Episodic Memory
195
+ ### Step 14: Leverage Episodic Memory
174
196
 
175
197
  Sam notices agents are re-researching the same topics. Episodic memory lets agents retain factual knowledge across executions.
176
198
 
@@ -184,7 +206,7 @@ Sam notices agents are re-researching the same topics. Episodic memory lets agen
184
206
 
185
207
  > **Tip:** Episodic memory means a Financial Analyst profile that researches a company once can recall that research in future tasks without re-doing the work. It builds institutional knowledge automatically.
186
208
 
187
- ### Step 14: Watch Agent Execution in Real-Time
209
+ ### Step 15: Watch Agent Execution in Real-Time
188
210
 
189
211
  ![Agent monitoring dashboard showing real-time execution logs](../screengrabs/monitor-list.png)
190
212
 
@@ -196,16 +218,25 @@ Sam notices agents are re-researching the same topics. Episodic memory lets agen
196
218
 
197
219
  > **Tip:** The Monitor is Sam's operational dashboard. When something goes wrong in an autonomous loop at 3am, the execution traces are the fastest path to diagnosis.
198
220
 
199
- ### Step 15: Use Chat Suggested Prompts
221
+ ### Step 16: Use Chat Suggested Prompts and Skill Composition
200
222
 
201
- ![Chat interface with suggested prompt categories](../screengrabs/chat-list.png)
223
+ ![/ popover Skills tab with composition status indicator](../screengrabs/chat-skills-tab.png)
202
224
 
203
225
  1. Navigate to **Chat** and notice the **suggested prompt tabs** (Explore, Create, Debug, Automate)
204
226
  2. Click the **Create** tab to see prompts for creating tasks, workflows, and schedules
205
227
  3. Click a suggested prompt to populate the input
206
- 4. Edit and send -- these prompts are optimized for the best agent responses
228
+ 4. Type **/** to open the slash popover -- browse four tabs: **Actions**, **Skills**, **Tools**, and **Entities**
229
+
230
+ ![/ popover with four tabs: Actions, Skills, Tools, Entities](../screengrabs/chat-slash-popover.png)
231
+
232
+ 5. Switch to the **Skills** tab — click **+ Add** to stack a second skill onto the conversation (e.g., a research skill plus a code-review skill running concurrently)
233
+ 6. If the new skill clashes with an active one, review the **conflict dialog** and decide which to keep — the engine's heuristic surfaces overlapping tools or contradictory instructions
234
+ 7. Watch the "N of M active" indicator; once you approach the runtime's `maxActiveSkills` cap, prompt-budget eviction automatically trims the oldest low-priority skill
235
+ 8. For a faster start, try **Start from template** or `/new-from-template` to open a conversation pre-primed from a workflow blueprint — the blueprint's optional `chatPrompt` provides the opening context
236
+
237
+ > **Tip:** Skill composition only engages on runtimes where `supportsSkillComposition` is true. On other runtimes the Skills tab stays read-only with a hint, and the chat behaves as a single-skill session.
207
238
 
208
- ### Step 16: Chain Everything Together
239
+ ### Step 17: Chain Everything Together
209
240
 
210
241
  Sam connects the dots: profiles define *how*, workflows define *what*, schedules define *when*, Ollama handles the *cheap stuff*, episodic memory provides the *knowledge*, and delivery channels deliver the *results*.
211
242
 
@@ -221,7 +252,7 @@ Sam connects the dots: profiles define *how*, workflows define *what*, schedules
221
252
 
222
253
  > **Tip:** Sam's automation philosophy: start small, observe, then expand. Run a workflow manually three times before scheduling it. Trust builds incrementally -- and so should autonomy.
223
254
 
224
- ### Step 17: What's Next
255
+ ### Step 18: What's Next
225
256
 
226
257
  Sam's workspace is a fully autonomous operations engine. The next step is going deeper into the platform layer.
227
258
 
@@ -6,7 +6,7 @@ difficulty: "intermediate"
6
6
  estimatedTime: "30 minutes"
7
7
  sections: ["projects", "chat", "documents", "tables", "workflows", "schedules", "cost-usage", "inbox-notifications", "delivery-channels"]
8
8
  tags: ["intermediate", "team", "documents", "tables", "workflows", "schedules", "costs", "inbox", "channels", "handoffs"]
9
- lastUpdated: "2026-04-03"
9
+ lastUpdated: "2026-04-16"
10
10
  ---
11
11
 
12
12
  # Work Use Guide
@@ -56,6 +56,9 @@ Rather than clicking through every page, Jordan asks Chat for a quick status upd
56
56
  2. Type a question such as "What is the status of the Q2 planning project?"
57
57
  3. Review the response -- notice **Quick Access pills** linking to specific items
58
58
  4. Click a pill to jump directly to the referenced entity
59
+ 5. Use **@** mentions to pull specific entities into the conversation -- type `@` to browse tasks, projects, documents, and workflows without leaving the composer
60
+
61
+ ![@ mentions popover for referencing workspace entities in chat](../screengrabs/chat-mentions-popover.png)
59
62
 
60
63
  > **Tip:** Chat is the fastest way to get a cross-cutting status overview. Ask one question and follow the entity links.
61
64
 
@@ -107,6 +110,9 @@ Jordan has a CSV export from the previous quarter's performance review. Importin
107
110
  3. Review the column mapping -- Stagent auto-detects column types from the data
108
111
  4. Assign the table to the relevant project
109
112
  5. Click **Create** to import the data into a fully editable spreadsheet view
113
+ 6. Click into the table to open the **Data tab** with a spreadsheet-style editor -- edit cells inline, add rows, and review content
114
+
115
+ ![Table detail Data tab with spreadsheet editor and row content](../screengrabs/tables-detail.png)
110
116
 
111
117
  > **Tip:** Imported tables retain all their data as editable rows. You can add formula columns, charts, and workflow triggers on top of imported data.
112
118
 
@@ -150,7 +156,7 @@ Jordan schedules a weekly status summary using plain English instead of cron syn
150
156
 
151
157
  ### Step 11: Monitor Spending and Budgets
152
158
 
153
- ![Cost and Usage dashboard showing spend metrics and budget gauges](../screengrabs/cost-usage-list.png)
159
+ ![Cost and Usage dashboard showing spend metrics and budget gauges](../screengrabs/costs-list.png)
154
160
 
155
161
  1. Click **Cost & Usage** in the sidebar
156
162
  2. Review **total spend** for the current billing period
@@ -188,12 +194,14 @@ Jordan's agents have been running in the background. Some have generated handoff
188
194
  2. For permission requests, review the tool name, arguments, and reason
189
195
  3. Choose **Approve**, **Deny**, or **Always Allow**
190
196
  4. For handoffs, approve to let the receiving agent begin work
197
+ 5. If an agent sends an **AskUserQuestion** notification, type your answer in the inline reply field — there is no approve/deny, just a short response that lets the agent resume
198
+ 6. Watch for **upgrade available** notifications and the occasional upgrade-failure alert (raised only after three consecutive poller failures, so these should be rare)
191
199
 
192
200
  ### Step 15: Configure Multi-Channel Notifications
193
201
 
194
202
  Jordan sets up Slack so the entire team receives schedule results and important alerts.
195
203
 
196
- ![Settings page showing provider and runtime configuration](../screengrabs/settings-auth.png)
204
+ ![Settings page showing Delivery Channels configuration](../screengrabs/settings-channels.png)
197
205
 
198
206
  1. Open **Settings** and scroll to **Delivery Channels**
199
207
  2. Click **+ Add Channel** and select **Slack**
@@ -205,13 +213,14 @@ Jordan sets up Slack so the entire team receives schedule results and important
205
213
 
206
214
  ### Step 16: Manage Schedules
207
215
 
208
- ![Schedules list with status indicators and next run timestamps](../screengrabs/schedules-list.png)
216
+ ![Schedule detail sheet showing firing history and pause/resume controls](../screengrabs/schedules-detail.png)
209
217
 
210
218
  1. Return to **Schedules**
211
- 2. Locate the "Weekly Status Report" schedule
212
- 3. Check **Last Run** and **Next Run** timestamps
213
- 4. Click to review firing history and generated tasks
214
- 5. Edit or pause as needed
219
+ 2. Locate the "Weekly Status Report" schedule and click to open its **detail sheet**
220
+ 3. Review the **firing history** with timestamps and outcomes -- suppressed heartbeat runs appear dimmed
221
+ 4. Check **Next Run** to confirm the cadence
222
+ 5. Use the **Pause/Resume** toggle when you need to temporarily silence a schedule during quiet periods
223
+ 6. Edit or delete as needed
215
224
 
216
225
  ### Step 17: What's Next
217
226
 
@@ -1,6 +1,6 @@
1
1
  {
2
- "generated": "2026-04-03T22:00:00Z",
3
- "version": 3,
2
+ "generated": "2026-04-15T15:30:00Z",
3
+ "version": 4,
4
4
  "sections": [
5
5
  {
6
6
  "slug": "home-workspace",
@@ -29,7 +29,7 @@
29
29
  "path": "features/inbox-notifications.md",
30
30
  "route": "/inbox",
31
31
  "tags": ["inbox", "approvals", "notifications", "human-in-the-loop", "handoffs"],
32
- "features": ["inbox-notifications", "ambient-approval-toast", "agent-async-handoffs"],
32
+ "features": ["inbox-notifications", "ambient-approval-toast", "agent-async-handoffs", "upgrade-detection", "upgrade-session"],
33
33
  "screengrabCount": 2
34
34
  },
35
35
  {
@@ -38,8 +38,8 @@
38
38
  "category": "feature-reference",
39
39
  "path": "features/chat.md",
40
40
  "route": "/chat",
41
- "tags": ["chat", "conversations", "ai", "tool-catalog", "mentions", "model-selection", "channels"],
42
- "features": ["chat-data-layer", "chat-engine", "chat-api-routes", "chat-ui-shell", "chat-message-rendering", "chat-input-composer", "bidirectional-channel-chat"],
41
+ "tags": ["chat", "conversations", "ai", "tool-catalog", "mentions", "model-selection", "channels", "skills", "templates", "filters", "saved-searches"],
42
+ "features": ["chat-data-layer", "chat-engine", "chat-api-routes", "chat-ui-shell", "chat-message-rendering", "chat-input-composer", "bidirectional-channel-chat", "chat-skill-composition", "chat-composition-ui-v1", "chat-conversation-templates", "chat-filter-namespace", "chat-pinned-saved-searches", "saved-search-polish-v1"],
43
43
  "screengrabCount": 4
44
44
  },
45
45
  {
@@ -59,7 +59,7 @@
59
59
  "path": "features/workflows.md",
60
60
  "route": "/workflows",
61
61
  "tags": ["workflows", "orchestration", "blueprints", "parallel", "swarm", "step-builder", "business-blueprints"],
62
- "features": ["workflow-engine", "workflow-blueprints", "parallel-research-fork-join", "multi-agent-swarm", "autonomous-loop-execution", "workflow-ux-overhaul", "business-function-profiles"],
62
+ "features": ["workflow-engine", "workflow-blueprints", "parallel-research-fork-join", "multi-agent-swarm", "autonomous-loop-execution", "workflow-ux-overhaul", "business-function-profiles", "chat-conversation-templates", "workflow-run-history"],
63
63
  "screengrabCount": 3
64
64
  },
65
65
  {
@@ -69,7 +69,7 @@
69
69
  "path": "features/documents.md",
70
70
  "route": "/documents",
71
71
  "tags": ["documents", "upload", "preprocessing", "agent-context", "extraction"],
72
- "features": ["document-manager", "file-attachment-data-layer", "document-preprocessing", "agent-document-context", "document-output-generation"],
72
+ "features": ["document-manager", "file-attachment-data-layer", "document-preprocessing", "agent-document-context", "document-output-generation", "chat-filter-namespace", "chat-pinned-saved-searches"],
73
73
  "screengrabCount": 2
74
74
  },
75
75
  {
@@ -129,7 +129,7 @@
129
129
  "path": "features/settings.md",
130
130
  "route": "/settings",
131
131
  "tags": ["settings", "authentication", "permissions", "presets", "budgets", "browser-tools", "ollama", "channels", "snapshots"],
132
- "features": ["session-management", "tool-permission-persistence", "tool-permission-presets", "browser-use", "spend-budget-guardrails", "ollama-runtime-provider", "multi-channel-delivery", "bidirectional-channel-chat", "database-snapshot-backup"],
132
+ "features": ["session-management", "tool-permission-persistence", "tool-permission-presets", "browser-use", "spend-budget-guardrails", "ollama-runtime-provider", "multi-channel-delivery", "bidirectional-channel-chat", "database-snapshot-backup", "upgrade-detection", "upgrade-session"],
133
133
  "screengrabCount": 9
134
134
  },
135
135
  {
@@ -159,7 +159,7 @@
159
159
  "path": "features/provider-runtimes.md",
160
160
  "route": "cross-cutting",
161
161
  "tags": ["runtimes", "claude", "openai", "codex", "ollama", "providers", "architecture", "smart-router"],
162
- "features": ["provider-runtime-abstraction", "openai-codex-app-server", "agent-integration", "ollama-runtime-provider", "anthropic-direct-runtime", "openai-direct-runtime", "smart-runtime-router"],
162
+ "features": ["provider-runtime-abstraction", "openai-codex-app-server", "agent-integration", "ollama-runtime-provider", "anthropic-direct-runtime", "openai-direct-runtime", "smart-runtime-router", "runtime-validation-hardening", "runtime-capability-matrix"],
163
163
  "screengrabCount": 2
164
164
  },
165
165
  {
@@ -169,7 +169,7 @@
169
169
  "path": "features/agent-intelligence.md",
170
170
  "route": "cross-cutting",
171
171
  "tags": ["ai", "routing", "loops", "swarm", "self-improvement", "ai-assist", "episodic-memory", "handoffs"],
172
- "features": ["multi-agent-routing", "autonomous-loop-execution", "multi-agent-swarm", "agent-self-improvement", "workflow-context-batching", "ai-assist-workflow-creation", "agent-episodic-memory", "agent-async-handoffs"],
172
+ "features": ["multi-agent-routing", "autonomous-loop-execution", "multi-agent-swarm", "agent-self-improvement", "workflow-context-batching", "ai-assist-workflow-creation", "agent-episodic-memory", "agent-async-handoffs", "chat-skill-composition"],
173
173
  "screengrabCount": 0
174
174
  },
175
175
  {
@@ -179,7 +179,7 @@
179
179
  "path": "features/tool-permissions.md",
180
180
  "route": "cross-cutting",
181
181
  "tags": ["permissions", "approvals", "presets", "governance", "trust-tiers"],
182
- "features": ["tool-permission-persistence", "tool-permission-presets", "ambient-approval-toast"],
182
+ "features": ["tool-permission-persistence", "tool-permission-presets", "ambient-approval-toast", "upgrade-session"],
183
183
  "screengrabCount": 1
184
184
  },
185
185
  {
@@ -199,7 +199,7 @@
199
199
  "path": "features/keyboard-navigation.md",
200
200
  "route": "cross-cutting",
201
201
  "tags": ["keyboard", "navigation", "command-palette", "accessibility", "shortcuts"],
202
- "features": ["command-palette", "keyboard-shortcuts", "focus-management"],
202
+ "features": ["command-palette", "keyboard-shortcuts", "focus-management", "chat-conversation-templates", "chat-pinned-saved-searches", "saved-search-polish-v1"],
203
203
  "screengrabCount": 2
204
204
  },
205
205
  {
@@ -209,7 +209,7 @@
209
209
  "path": "features/shared-components.md",
210
210
  "route": "cross-cutting",
211
211
  "tags": ["components", "reusable", "page-shell", "detail-pane", "status-chip", "data-table"],
212
- "features": ["page-shell", "detail-pane", "status-chip", "data-table", "empty-state", "error-state"],
212
+ "features": ["page-shell", "detail-pane", "status-chip", "data-table", "empty-state", "error-state", "filter-input", "chat-filter-namespace"],
213
213
  "screengrabCount": 0
214
214
  }
215
215
  ],
@@ -275,8 +275,8 @@
275
275
  ],
276
276
  "metadata": {
277
277
  "totalDocs": 30,
278
- "totalScreengrabs": 48,
279
- "featuresCovered": 82,
278
+ "totalScreengrabs": 42,
279
+ "featuresCovered": 95,
280
280
  "appSections": 16
281
281
  }
282
282
  }