@exaudeus/workrail 3.27.0 → 3.29.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 (160) hide show
  1. package/dist/console/assets/{index-FtTaDku8.js → index-BZ6HkxGf.js} +1 -1
  2. package/dist/console/index.html +1 -1
  3. package/dist/manifest.json +3 -3
  4. package/docs/README.md +57 -0
  5. package/docs/adrs/001-hybrid-storage-backend.md +38 -0
  6. package/docs/adrs/002-four-layer-context-classification.md +38 -0
  7. package/docs/adrs/003-checkpoint-trigger-strategy.md +35 -0
  8. package/docs/adrs/004-opt-in-encryption-strategy.md +36 -0
  9. package/docs/adrs/005-agent-first-workflow-execution-tokens.md +105 -0
  10. package/docs/adrs/006-append-only-session-run-event-log.md +76 -0
  11. package/docs/adrs/007-resume-and-checkpoint-only-sessions.md +51 -0
  12. package/docs/adrs/008-blocked-nodes-architectural-upgrade.md +178 -0
  13. package/docs/adrs/009-bridge-mode-single-instance-mcp.md +195 -0
  14. package/docs/adrs/010-release-pipeline.md +89 -0
  15. package/docs/architecture/README.md +7 -0
  16. package/docs/architecture/refactor-audit.md +364 -0
  17. package/docs/authoring-v2.md +527 -0
  18. package/docs/authoring.md +873 -0
  19. package/docs/changelog-recent.md +201 -0
  20. package/docs/configuration.md +505 -0
  21. package/docs/ctc-mcp-proposal.md +518 -0
  22. package/docs/design/README.md +22 -0
  23. package/docs/design/agent-cascade-protocol.md +96 -0
  24. package/docs/design/autonomous-console-design-candidates.md +253 -0
  25. package/docs/design/autonomous-console-design-review.md +111 -0
  26. package/docs/design/autonomous-platform-mvp-discovery.md +525 -0
  27. package/docs/design/claude-code-source-deep-dive.md +713 -0
  28. package/docs/design/console-cyberpunk-ui-discovery.md +504 -0
  29. package/docs/design/console-execution-trace-candidates-final.md +160 -0
  30. package/docs/design/console-execution-trace-candidates.md +211 -0
  31. package/docs/design/console-execution-trace-design-candidates-v2.md +113 -0
  32. package/docs/design/console-execution-trace-design-review.md +74 -0
  33. package/docs/design/console-execution-trace-discovery.md +394 -0
  34. package/docs/design/console-execution-trace-final-review.md +77 -0
  35. package/docs/design/console-execution-trace-review.md +92 -0
  36. package/docs/design/console-performance-discovery.md +415 -0
  37. package/docs/design/console-ui-backlog.md +280 -0
  38. package/docs/design/daemon-architecture-discovery.md +853 -0
  39. package/docs/design/daemon-design-candidates.md +318 -0
  40. package/docs/design/daemon-design-review-findings.md +119 -0
  41. package/docs/design/daemon-engine-design-candidates.md +210 -0
  42. package/docs/design/daemon-engine-design-review.md +131 -0
  43. package/docs/design/daemon-execution-engine-discovery.md +280 -0
  44. package/docs/design/daemon-gap-analysis.md +554 -0
  45. package/docs/design/daemon-owns-console-plan.md +168 -0
  46. package/docs/design/daemon-owns-console-review.md +91 -0
  47. package/docs/design/daemon-owns-console.md +195 -0
  48. package/docs/design/data-model-erd.md +11 -0
  49. package/docs/design/design-candidates-consolidate-dev-staleness.md +98 -0
  50. package/docs/design/design-candidates-walk-cache-depth-limit.md +80 -0
  51. package/docs/design/design-review-consolidate-dev-staleness.md +54 -0
  52. package/docs/design/design-review-walk-cache-depth-limit.md +48 -0
  53. package/docs/design/implementation-plan-consolidate-dev-staleness.md +142 -0
  54. package/docs/design/implementation-plan-walk-cache-depth-limit.md +141 -0
  55. package/docs/design/layer3b-ghost-nodes-design-candidates.md +229 -0
  56. package/docs/design/layer3b-ghost-nodes-design-review.md +93 -0
  57. package/docs/design/layer3b-ghost-nodes-implementation-plan.md +219 -0
  58. package/docs/design/list-workflows-latency-fix-plan.md +128 -0
  59. package/docs/design/list-workflows-latency-fix-review.md +55 -0
  60. package/docs/design/list-workflows-latency-fix.md +109 -0
  61. package/docs/design/native-context-management-api.md +11 -0
  62. package/docs/design/performance-sweep-2026-04.md +96 -0
  63. package/docs/design/routines-guide.md +219 -0
  64. package/docs/design/sequence-diagrams.md +11 -0
  65. package/docs/design/subagent-design-principles.md +220 -0
  66. package/docs/design/temporal-patterns-design-candidates.md +312 -0
  67. package/docs/design/temporal-patterns-design-review-findings.md +163 -0
  68. package/docs/design/test-isolation-from-config-file.md +335 -0
  69. package/docs/design/v2-core-design-locks.md +2746 -0
  70. package/docs/design/v2-lock-registry.json +734 -0
  71. package/docs/design/workflow-authoring-v2.md +1044 -0
  72. package/docs/design/workflow-docs-spec.md +218 -0
  73. package/docs/design/workflow-extension-points.md +687 -0
  74. package/docs/design/workrail-auto-trigger-system.md +359 -0
  75. package/docs/design/workrail-config-file-discovery.md +513 -0
  76. package/docs/docker.md +110 -0
  77. package/docs/generated/v2-lock-closure-plan.md +26 -0
  78. package/docs/generated/v2-lock-coverage.json +797 -0
  79. package/docs/generated/v2-lock-coverage.md +177 -0
  80. package/docs/ideas/backlog.md +3927 -0
  81. package/docs/ideas/design-candidates-mcp-resilience.md +208 -0
  82. package/docs/ideas/design-review-findings-mcp-resilience.md +119 -0
  83. package/docs/ideas/implementation_plan.md +249 -0
  84. package/docs/ideas/third-party-workflow-setup-design-thinking.md +1948 -0
  85. package/docs/implementation/02-architecture.md +316 -0
  86. package/docs/implementation/04-testing-strategy.md +124 -0
  87. package/docs/implementation/09-simple-workflow-guide.md +835 -0
  88. package/docs/implementation/13-advanced-validation-guide.md +874 -0
  89. package/docs/implementation/README.md +21 -0
  90. package/docs/integrations/claude-code.md +300 -0
  91. package/docs/integrations/firebender.md +315 -0
  92. package/docs/migration/v0.1.0.md +147 -0
  93. package/docs/naming-conventions.md +45 -0
  94. package/docs/planning/README.md +104 -0
  95. package/docs/planning/github-ticketing-playbook.md +195 -0
  96. package/docs/plans/README.md +24 -0
  97. package/docs/plans/agent-managed-ticketing-design.md +605 -0
  98. package/docs/plans/agentic-orchestration-roadmap.md +112 -0
  99. package/docs/plans/assessment-gates-engine-handoff.md +536 -0
  100. package/docs/plans/content-coherence-and-references.md +151 -0
  101. package/docs/plans/library-extraction-plan.md +340 -0
  102. package/docs/plans/mr-review-workflow-redesign.md +1451 -0
  103. package/docs/plans/native-context-management-epic.md +11 -0
  104. package/docs/plans/perf-fixes-design-candidates.md +225 -0
  105. package/docs/plans/perf-fixes-design-review-findings.md +61 -0
  106. package/docs/plans/perf-fixes-new-issues-candidates.md +264 -0
  107. package/docs/plans/perf-fixes-new-issues-review.md +110 -0
  108. package/docs/plans/prompt-fragments.md +53 -0
  109. package/docs/plans/ui-ux-workflow-design-candidates.md +120 -0
  110. package/docs/plans/ui-ux-workflow-discovery.md +100 -0
  111. package/docs/plans/ui-ux-workflow-review.md +48 -0
  112. package/docs/plans/v2-followup-enhancements.md +587 -0
  113. package/docs/plans/workflow-categories-candidates.md +105 -0
  114. package/docs/plans/workflow-categories-discovery.md +110 -0
  115. package/docs/plans/workflow-categories-review.md +51 -0
  116. package/docs/plans/workflow-discovery-model-candidates.md +94 -0
  117. package/docs/plans/workflow-discovery-model-discovery.md +74 -0
  118. package/docs/plans/workflow-discovery-model-review.md +48 -0
  119. package/docs/plans/workflow-source-setup-phase-1.md +245 -0
  120. package/docs/plans/workflow-source-setup-phase-2.md +361 -0
  121. package/docs/plans/workflow-staleness-detection-candidates.md +104 -0
  122. package/docs/plans/workflow-staleness-detection-review.md +58 -0
  123. package/docs/plans/workflow-staleness-detection.md +80 -0
  124. package/docs/plans/workflow-v2-design.md +69 -0
  125. package/docs/plans/workflow-v2-roadmap.md +74 -0
  126. package/docs/plans/workflow-validation-design.md +98 -0
  127. package/docs/plans/workflow-validation-roadmap.md +108 -0
  128. package/docs/plans/workrail-platform-vision.md +420 -0
  129. package/docs/reference/agent-context-cleaner-snippet.md +94 -0
  130. package/docs/reference/agent-context-guidance.md +140 -0
  131. package/docs/reference/context-optimization.md +284 -0
  132. package/docs/reference/example-workflow-repository-template/.github/workflows/validate.yml +125 -0
  133. package/docs/reference/example-workflow-repository-template/README.md +268 -0
  134. package/docs/reference/example-workflow-repository-template/workflows/example-workflow.json +80 -0
  135. package/docs/reference/external-workflow-repositories.md +916 -0
  136. package/docs/reference/feature-flags-architecture.md +472 -0
  137. package/docs/reference/feature-flags.md +349 -0
  138. package/docs/reference/god-tier-workflow-validation.md +272 -0
  139. package/docs/reference/loop-optimization.md +209 -0
  140. package/docs/reference/loop-validation.md +176 -0
  141. package/docs/reference/loops.md +465 -0
  142. package/docs/reference/mcp-platform-constraints.md +59 -0
  143. package/docs/reference/recovery.md +88 -0
  144. package/docs/reference/releases.md +177 -0
  145. package/docs/reference/troubleshooting.md +105 -0
  146. package/docs/reference/workflow-execution-contract.md +998 -0
  147. package/docs/roadmap/README.md +22 -0
  148. package/docs/roadmap/legacy-planning-status.md +103 -0
  149. package/docs/roadmap/now-next-later.md +70 -0
  150. package/docs/roadmap/open-work-inventory.md +389 -0
  151. package/docs/tickets/README.md +39 -0
  152. package/docs/tickets/next-up.md +76 -0
  153. package/docs/workflow-management.md +317 -0
  154. package/docs/workflow-templates.md +423 -0
  155. package/docs/workflow-validation.md +184 -0
  156. package/docs/workflows.md +254 -0
  157. package/package.json +3 -1
  158. package/spec/authoring-spec.json +61 -16
  159. package/workflows/workflow-for-workflows.json +252 -93
  160. package/workflows/workflow-for-workflows.v2.json +188 -77
@@ -0,0 +1,280 @@
1
+ ---
2
+ title: Console UI Backlog
3
+ scope: console
4
+ status: active
5
+ branch: main
6
+ last_updated: 2026-04-14
7
+ related:
8
+ - docs/design/console-cyberpunk-ui-discovery.md
9
+ - docs/roadmap/now-next-later.md
10
+ - docs/roadmap/open-work-inventory.md
11
+ - docs/tickets/next-up.md
12
+ ---
13
+
14
+ # Console UI Backlog
15
+
16
+ Tracks all open, in-progress, and recently shipped UI work for the WorkRail Console.
17
+ The active branch for this work is `feature/etienneb/console-ui-redesign`.
18
+
19
+ > **Agent maintenance instructions:**
20
+ > Before committing or opening a PR for any console UI change, update this file:
21
+ > - Move completed items from their current section to **Shipped** with a short note
22
+ > - Add any newly discovered work to the appropriate section
23
+ > - Update `last_updated` in the frontmatter
24
+ > After merging to main, also update `docs/roadmap/now-next-later.md` (move items to done)
25
+ > and `docs/roadmap/open-work-inventory.md` (remove or mark complete).
26
+
27
+ ---
28
+
29
+ ## In Progress
30
+
31
+ *(work that has been started and is actively being developed)*
32
+
33
+ None currently -- the branch is ahead of main awaiting PR.
34
+
35
+ ---
36
+
37
+ ## Up Next
38
+
39
+ *(groomed, ready to implement, ordered by priority)*
40
+
41
+ ### 1. Workflows tab inventory screen redesign
42
+
43
+ The workflow catalog should feel like a cyberpunk game inventory/loadout screen (CP2077, Deus Ex). Split-pane layout: scrollable item list on the left, persistent detail panel on the right. Arrow keys navigate the list, detail updates live. This replaces the current modal overlay approach.
44
+
45
+ **Agreed direction:** Run UX/UI design workflow first before touching code.
46
+
47
+ **Files:** `console/src/views/WorkflowsView.tsx`, `console/src/views/WorkflowDetail.tsx`
48
+
49
+ ---
50
+
51
+ ### 2. Equip / unequip workflows from the console
52
+
53
+ ---
54
+
55
+ ### 2. Workflow detail modal
56
+
57
+ Replace the current full-page navigation to `WorkflowDetail` with a glassmorphism modal
58
+ that materializes from below over the workflow card grid.
59
+
60
+ - Animation: `translateY(20px) scale(0.97) opacity-0` → `translateY(0) scale(1) opacity-1`, 250ms ease-out
61
+ - Modal: `CutCornerBox` (cut=24, amber border glow), `blur(20px)` glass background, ~80% content width, max ~900px
62
+ - Backdrop: subtle dark scrim, click-outside to dismiss
63
+ - Cyberpunk markdown styling inside:
64
+ - `# headers` → amber color, wide tracking
65
+ - `**bold**` → amber
66
+ - `` `code` `` → dark bg, cyan text
67
+ - `> blockquote` → amber left border
68
+ - List bullets → `//` prefix
69
+
70
+ **Files:** `console/src/views/WorkflowsView.tsx`, `console/src/views/WorkflowDetail.tsx`, `console/src/components/NodeDetailSection.tsx` (markdown styles)
71
+
72
+ ---
73
+
74
+ ### 3. Source filter pills in workflow catalog
75
+
76
+ Add source filter alongside existing tag pills: `All Sources | WorkRail | User Library | Project`.
77
+ Data already present on every workflow via `source.displayName`. Pure frontend change.
78
+
79
+ **Files:** `console/src/views/WorkflowsView.tsx`
80
+
81
+ ---
82
+
83
+ ### 4. Adopt new components everywhere
84
+
85
+ Sweep all views to consistently use the extracted primitives.
86
+ Currently only partially adopted.
87
+
88
+ | Component | Status |
89
+ |-----------|--------|
90
+ | `MonoLabel` | Used in `NodeDetailSection`, `RunLineageDag` -- NOT yet in views |
91
+ | `BracketBadge` | Used in `StatusBadge` -- NOT yet in title bar or modals |
92
+ | `ConsoleCard` | Used in `WorkflowsView` grid -- NOT in `SessionList` |
93
+ | `SectionHeader` | Used in `WorkflowsView` -- NOT in other views |
94
+ | `MetaChip` | Used in `SessionList.Chip` -- NOT in other views |
95
+
96
+ Priority: apply `ConsoleCard variant="list"` to `SessionCard` in `SessionList.tsx`.
97
+
98
+ **Files:** `console/src/views/SessionList.tsx`, `console/src/views/SessionDetail.tsx`, `console/src/AppShell.tsx`
99
+
100
+ ---
101
+
102
+ ### 5. WorkspaceView rethink
103
+
104
+ `repoRoot` was removed (2026-04-07). The WorkspaceView now sources repo context from
105
+ the worktree API (`process.cwd()`) only. Verify the view still makes sense without
106
+ per-session repo grouping, and redesign if needed.
107
+
108
+ Also: the WorkspaceView is largely unstyled in the cyberpunk theme -- it still uses
109
+ the old flat dark style.
110
+
111
+ **Files:** `console/src/views/WorkspaceView.tsx`, `console/src/views/workspace-types.ts`
112
+
113
+ ---
114
+
115
+ ## Parked / Ideas
116
+
117
+ *(worth keeping visible, not current delivery commitments)*
118
+
119
+
120
+ ### Custom cyberpunk overscroll effect
121
+
122
+ When scrolling past the limits of a scrollable container (modal, session list,
123
+ DAG), add a themed visual effect instead of the default OS rubber-band bounce.
124
+ Options: amber glow flash at the boundary, a brief scan-line flicker, or a
125
+ subtle "resistance" indicator. Requires custom scroll event handling + CSS.
126
+
127
+ **Files:** `console/src/index.css`, scroll container components
128
+
129
+ ---
130
+
131
+ ### Nicer hover animations
132
+
133
+ Current hover state: border brightens, top stripe goes full opacity, ambient glow appears.
134
+ Explore richer micro-interactions:
135
+ - Subtle `transform: translateY(-1px)` lift on card hover
136
+ - The ambient glow (`energy-card`) could animate in with a short fade (100ms) rather than being instant
137
+ - Active/pressed state: slight scale down (`scale(0.99)`)
138
+ - The `corner-brackets` CSS could animate in on hover with opacity + scale transition for a "locking on target" feel (currently removed from cards, but could be a hover-only effect on selected state)
139
+
140
+ **Files:** `console/src/index.css`, `console/src/components/ConsoleCard.tsx`
141
+
142
+ ---
143
+
144
+ ### Background spotlight movement by active tab
145
+
146
+ The ambient radial glows in the body background should shift position based on which
147
+ tab is currently active -- the "light source" follows the user's focus.
148
+
149
+ ```
150
+ Workspace tab (leftmost) → amber glow at ~20% from left, cyan at bottom-right
151
+ Workflows tab (middle) → amber glow centered (50%), cyan balanced
152
+ Performance tab (rightmost)→ amber glow at ~80% from left, cyan at bottom-left
153
+ ```
154
+
155
+ Implementation: CSS custom properties (`--spotlight-x`, `--spotlight-y`) on `body`,
156
+ updated via JavaScript when the active tab changes. The `radial-gradient` in `body`
157
+ background-image references these properties. Transition: `background-position`
158
+ doesn't transition, but the CSS properties can be transitioned via a wrapper element
159
+ or by lerping the values with a short JS animation.
160
+
161
+ Alternative: three separate keyframe states on `body` driven by a `data-active-tab`
162
+ attribute, with a CSS transition on `background-position`.
163
+
164
+ **Files:** `console/src/index.css`, `console/src/AppShell.tsx`
165
+
166
+ ---
167
+
168
+ ### Project-specific workflow loading
169
+
170
+ When browsing sessions from a specific project, the workflow catalog could show
171
+ workflows from that project's `workflows/` directory.
172
+
173
+ What's needed:
174
+ - `/api/v2/workflows?workspacePath=<path>` query parameter
175
+ - Backend instantiates storage with `projectPath: workspacePath/workflows`
176
+ - Frontend passes workspace context when browsing a specific project
177
+
178
+ **Blocker:** `repoRoot` was removed as unreliable. Need a different mechanism to
179
+ identify which project the user is currently browsing. `workspacePath` per-session
180
+ is not stored (it's ephemeral). `repo_root_hash` is kept for resume ranking but
181
+ not surfaced to the UI. Design needed.
182
+
183
+ ---
184
+
185
+ ### Execution trace UI
186
+
187
+ Sessions have `executionTraceSummary` on `ConsoleDagRun` (field reserved, no frontend
188
+ consumer yet). Surface the agent's decision trace -- why it chose each path, which
189
+ conditions evaluated, what context facts were used.
190
+
191
+ **See:** `console/src/api/types.ts` (`ConsoleExecutionTraceSummary`),
192
+ `src/v2/projections/run-execution-trace.ts`
193
+
194
+ ---
195
+
196
+ ## Shipped (this branch)
197
+
198
+ | Item | Commit(s) | Notes |
199
+ |------|-----------|-------|
200
+ | Lineage DAG overhaul | PR #248 | Side-branch alignment, cycle guards, no windowing, scroll overhang |
201
+ | Inline NodeDetailSection | PR #248 | Replaced floating NodeDetailPanel |
202
+ | Floating node detail panel | `47cbb67`+ | Fixed-position glassmorphism panel, CutCornerBox |
203
+ | Session metadata card + hint banner | `42b7500` | Replaces sparse h2 header |
204
+ | Cyberpunk amber/gold theme | `d03310b` | Ambient glows, glassmorphism, amber accent |
205
+ | Cyberpunk enhancements | `166f8a1` | Scanlines, `//` separators, `[ BADGE ]` status, wider tracking, corner brackets |
206
+ | Workflow catalog redesign | `cdc56ed`+ | Section headers, grid cards, count pills, copy CTA |
207
+ | ConsoleCard, MonoLabel, BracketBadge, SectionHeader, MetaChip | `be06fb5` | 5 shared components extracted |
208
+ | Source `displayName` fix | `fd8f6b8` | Backend now enriches source with displayName |
209
+ | `src: WorkRail` fix (resolution layer) | `7a89132` | Bundled workflows correctly tagged via resolution, not storage hack |
210
+ | Remove `repoRoot` | `7880373` | Unreliable field nuked; backward-compat preserved for old event logs |
211
+ | Fix `src:` in workflow detail | `bbc83b7` | Detail endpoint now enriches source with displayName |
212
+ | SessionList SORT_AXES refactor | merged | Typed axis objects, debounce, grouped pagination |
213
+ | Audit findings (MR + prod + arch) | `60cf743`+ | All 3 audit cycles addressed |
214
+ | Unit tests for lineage layout | `609c343` | 22 tests covering F1 regression, cycle safety, compression |
215
+ | WorkspaceView ops-center redesign | this PR | Repo-first layout, TreeLine component, amber page title, status bands, dormant threshold |
216
+ | Workflow detail themed title | this PR | Amber glow, monospace uppercase, `// Workflow` label |
217
+ | Workflow catalog enhancements | this PR | Source filter pills, Other tag pill, active card sync, directional modal slide |
218
+ | CRT scanline effect | this PR | Moiré interference, dual glitch bands, random position |
219
+ | Modal projection transparency | this PR | 50% panel opacity, minimal blur, see-through feel |
220
+ | PathBreadcrumb component | this PR | `// SEGMENT` style, reusable across views |
221
+ | TreeLine component | this PR | Dual amber lines with diagonal clip-path end, repo/branch hierarchy |
222
+ | SessionCard → ConsoleCard | this PR | SessionList uses ConsoleCard variant="list" |
223
+ | Dormant sessions logic | this PR | 1h threshold backend, hidden in Active scope, hint shortcut |
224
+ | Two-phase worktree scan | this PR | Fast branch list + background enrichment via SSE; fixes 79-worktree hang |
225
+ | Multi-repo discovery | this PR | Derives repo roots from remembered-roots.json |
226
+ | MVI architecture refactor | #332 | All 6 views: Repository → UseCases → Reducer → ViewModel → pure presenter; 290+ tests; console/CLAUDE.md |
227
+ | MCP server stability | #332 #335 | wireStdoutShutdown (EPIPE crash), clearIfStaleLock, HttpServer idempotent stop, port exhaustion graceful degradation |
228
+ | Dormant BranchGroup fix | #332 | Dormant sessions in multi-session branches demoted to history section in Active scope |
229
+
230
+ ---
231
+
232
+ ### Theme the back navigation element
233
+
234
+ The `← Workflows` / `← Workflows / CODING` back link in WorkflowDetail
235
+ is plain text. Should match the cyberpunk aesthetic:
236
+ - Use `←` replaced with `//` or `<` in monospace, e.g. `< WORKFLOWS // CODING`
237
+ - Amber color on hover, muted at rest
238
+ - Could use `BracketBadge` or a dedicated nav arrow component
239
+ - Consistent with the `//` separator language established elsewhere
240
+
241
+ **Files:** `console/src/views/WorkflowDetail.tsx`
242
+
243
+ ---
244
+
245
+ ### Workflow catalog as inventory screen
246
+
247
+ Aesthetic direction: the workflow catalog should feel like a cyberpunk game's inventory
248
+ or loadout screen (CP2077 cyberware, Deus Ex augmentations, Starfield ship modules).
249
+ Each workflow is an "item" you can inspect and equip. Visual ideas:
250
+
251
+ - Card hover shows a full stat readout (step count, tags, source, compatibility)
252
+ - "Equipped" workflows visually distinguished from unequipped (active border glow vs dim)
253
+ - Possible grid rearrangement / drag to reorder priority
254
+ - Category grouping by "slot type" (coding, review, investigation) mirrors equipment slots
255
+
256
+ **Depends on:** equip/unequip feature below.
257
+
258
+ ---
259
+
260
+ ### Equip / unequip workflows from the console
261
+
262
+ Allow users to toggle workflows active/inactive from the console UI. An "equipped"
263
+ workflow is enabled in the MCP tool list (`list_workflows` returns it); unequipped
264
+ workflows are hidden from agents but still browsable in the console.
265
+
266
+ This maps to the existing pinned-workflows / managed-sources infrastructure
267
+ (`src/infrastructure/storage/` + `PinnedWorkflowStorePortV2`).
268
+
269
+ Implementation direction:
270
+ - Add an equip/unequip button to each workflow card and the detail modal
271
+ - Equipped state shown as an amber `[ EQUIPPED ]` badge on the card
272
+ - Backend: toggle in the pinned workflow store via a new `/api/v2/workflows/:id/equip` endpoint
273
+ - The MCP `list_workflows` handler already filters by source -- extend to respect equipped state
274
+ - Equipped workflows get the full amber border treatment; unequipped are dimmed (50% opacity)
275
+
276
+ **Design note:** This is the most natural extension of the inventory metaphor. A player
277
+ "equips" the tools they want their agent to use for a session. Session-scoped or
278
+ persistent equip state TBD.
279
+
280
+ **Dependencies:** requires backend API + pinned workflow store changes.