5.8 KiB
status, created, owner, decision
| status | created | owner | decision |
|---|---|---|---|
| approved | 2026-08-08 | Kandev | ADR-2026-08-08-workspace-scoped-task-create-workflow-memory |
Task Create Workflow Memory
Why
Users who create tasks in workspaces with multiple workflows repeatedly have to choose the same workflow whenever Create Task opens from All Workflows or a different filter. The dialog should remember the workflow that actually created the previous task in each workspace without coupling task creation to the current board/list filter.
Broken behavior
The task-create preference records repository, branch, agent profile, and
executor profile but omits workflow. An unlocked dialog therefore uses the
current page context when it has one and otherwise remains empty when multiple
workflows exist. The selector's local lastUsedWorkflowId only reorders options
within one mounted component; it is not a durable default.
What
- The standard Create Task dialog remembers the workflow used by the most recent successful task creation separately for each workspace.
- A valid remembered workflow is selected even when the board or task list is currently filtered to another workflow.
- A workflow selected manually in the currently open dialog immediately becomes the effective selection for that submission.
- Feature-specific flows that explicitly lock a workflow keep their locked workflow and do not inherit the standard dialog's remembered default.
- Remembered workflow IDs are used only when they are visible choices in the current workspace. Missing, deleted, hidden, or cross-workspace IDs are ignored.
- Without a valid remembered workflow, the dialog falls back to a valid visible workflow supplied by its page context, then to the sole visible workflow.
- When exactly one visible workflow exists, that workflow is implicit and the workflow selector is omitted.
- When multiple visible workflows exist and neither remembered nor contextual defaults are valid, the selector remains visible and requires a choice.
- HTTP and WebSocket task creation record the effective workflow only after the task is created successfully.
- Cancelling a dialog or changing the selector without creating a task does not alter the remembered workflow.
- Desktop and mobile use the same workflow-resolution policy. The feature does not change dialog layout, navigation, scrolling, or touch behavior.
Data model
users.settings.task_create_last_used gains:
workflow_ids_by_workspace object<string, string>
key: workspace ID
value: workflow ID used by the latest successful task creation in that workspace
The map is optional for compatibility with existing settings rows. An absent or empty map means there is no remembered workflow. Updating one workspace entry must preserve all other entries and the existing repository, branch, agent profile, and executor profile fields.
Failure modes
- If user settings are unavailable, the dialog does not invent or persist a browser-local workflow default; it uses the valid contextual or sole-workflow fallback once available.
- If a remembered workflow no longer belongs to the current visible workflow set, the dialog ignores it and continues through the fallback order.
- Failure to record last-used settings does not roll back an otherwise successful task creation; it follows the existing warning-only task-create preference behavior.
Persistence guarantees
Workflow memory is a portable backend-owned user preference under ADR 0028, ADR 0041, and ADR-2026-08-08-workspace-scoped-task-create-workflow-memory. It survives backend restarts, browser changes, and workspace switches. The frontend's queued overlay is transient and only bridges the interval between a successful create response and the authoritative settings update.
Scenarios
- GIVEN workspace A remembers Dev and the board is filtered to PR Review, WHEN the user opens standard Create Task, THEN Dev is selected.
- GIVEN workspace A remembers Dev and workspace B remembers Support, WHEN the user switches between the workspaces and opens standard Create Task in each, THEN each workspace restores its own remembered workflow.
- GIVEN Dev is restored and the user manually chooses PR Review, WHEN the user successfully creates the task, THEN the task uses PR Review and the next standard Create Task in that workspace restores PR Review.
- GIVEN a feature-specific task-create flow locks Support, WHEN the workspace remembers Dev, THEN Support remains selected and locked.
- GIVEN a remembered workflow was deleted or hidden, WHEN standard Create Task opens from a valid visible workflow context, THEN the context workflow is selected.
- GIVEN exactly one visible workflow and no valid remembered workflow, WHEN standard Create Task opens, THEN the workflow is implicit and no workflow selector is rendered.
- GIVEN several visible workflows and no valid remembered or contextual workflow, WHEN standard Create Task opens, THEN the workflow selector is visible with no selected workflow.
- GIVEN the user changes the workflow and cancels Create Task, WHEN the dialog is opened again, THEN the previously successful workflow remains the remembered default.
Out of scope
- Changing the active board/list workflow filter when Create Task resolves a different remembered workflow.
- Remembering workflow choices from cancelled or failed task creation.
- Exposing workflow history in Settings.
- Changing hidden-workflow rules or feature-specific locked task-create flows.
- Changing the task-create dialog's desktop or mobile composition.