Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 39 additions & 13 deletions docs/explanation/features/CHAT_ORCHESTRATION_WORKFLOWS_ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

Planning branch: `paullizer-orchestration-workflows-capability`.

Status updated: **2026-10-01**, with `paullizer-react-v2-ui` at 0.261.216. The PRs for this work target that branch
Status updated: **2026-10-03**, with `paullizer-react-v2-ui` at 0.261.228. The PRs for this work target that branch
(§10).

This is the master plan for letting chat orchestration propose, create, run and hand off saved workflows. It's the
Expand All @@ -29,8 +29,8 @@
| 3 | AI workflow assistant (Score-style assisted editing in the V2 editor) | [#1548](https://github.com/microsoft/simplechat/issues/1548) | 3a: — · 3b: 2, A2 · 3c: 3a, 3b, A1 | **3a done**: [#1569](https://github.com/microsoft/simplechat/pull/1569), v0.261.203. **3b done**: [#1577](https://github.com/microsoft/simplechat/pull/1577), v0.261.208. **3c done**: [#1593](https://github.com/microsoft/simplechat/pull/1593), v0.261.213. Phase 3 is complete. Follow-up [#1596](https://github.com/microsoft/simplechat/pull/1596), v0.261.215, makes personal **Draft Workflow Instructions** follow the assistant setting |
| 4 | Orchestration proposes workflows (`workflow_propose` + Approve / Deny / Edit card) | [#1547](https://github.com/microsoft/simplechat/issues/1547) | 2 | **Done**: [#1580](https://github.com/microsoft/simplechat/pull/1580), v0.261.207, behind **Propose Workflows From Chat** (off by default). It includes personal File Sync authoring in the V2 editor (gotcha 58) |
| 5 | Orchestration runs existing workflows (`workflow_run`, start-and-link) | [#1551](https://github.com/microsoft/simplechat/issues/1551) | 4 | **Done**: [#1594](https://github.com/microsoft/simplechat/pull/1594), v0.261.212, behind **Run Workflows From Chat** (off by default) |
| 6 | Results back in chat: 6a results reader + **Follow up**; 6b post-back delivery, run card and chat-list indicator; 6c in-plan wait (later) | [#1546](https://github.com/microsoft/simplechat/issues/1546) | 6a: 4 · 6b: 5, 6a, N1 | **6a done**: [#1592](https://github.com/microsoft/simplechat/pull/1592), v0.261.214, behind **Use Workflow Results In Chat** (off by default). **In progress**: the `workflow_results` planner capability, and 6b as two stacked PRs, 6b-1 (server delivery and status route) and 6b-2 (V2 run card, tracker and chat-list indicator). 6c not started |
| 7 | Hand-off of big one-time jobs | [#1549](https://github.com/microsoft/simplechat/issues/1549) | 4, 6b | Not started |
| 6 | Results back in chat: 6a results reader + **Follow up**; 6b post-back delivery, run card and chat-list indicator; 6c in-plan wait (later) | [#1546](https://github.com/microsoft/simplechat/issues/1546) | 6a: 4 · 6b: 5, 6a, N1 | **6a done**: [#1592](https://github.com/microsoft/simplechat/pull/1592), v0.261.214, behind **Use Workflow Results In Chat** (off by default). **The `workflow_results` planner capability is done**: [#1607](https://github.com/microsoft/simplechat/pull/1607), v0.261.217, under the same setting. **6b-1 done**: [#1610](https://github.com/microsoft/simplechat/pull/1610), v0.261.227 (server delivery and the status route). **In progress**: 6b-2 (V2 run card, tracker and chat-list indicator). 6c not started |

Check warning on line 32 in docs/explanation/features/CHAT_ORCHESTRATION_WORKFLOWS_ROADMAP.md

View workflow job for this annotation

GitHub Actions / malicious-pr-security-review

Important - Changed line contains external connection or remote asset marker. Recommendation%3A Review whether changed code can send prompts, files, credentials, cookies, settings, logs, or user data to a new sink.
| 7 | Hand-off of big one-time jobs | [#1549](https://github.com/microsoft/simplechat/issues/1549) | 4, 6b | **In progress**: 7a, the server part of the hand-off. 7b, the V2 part, follows |

Check warning on line 33 in docs/explanation/features/CHAT_ORCHESTRATION_WORKFLOWS_ROADMAP.md

View workflow job for this annotation

GitHub Actions / malicious-pr-security-review

Important - Changed line contains external connection or remote asset marker. Recommendation%3A Review whether changed code can send prompts, files, credentials, cookies, settings, logs, or user data to a new sink.
| 8 | Follow-ons: group workflows, #1347 parity, plan-replay task | [#1550](https://github.com/microsoft/simplechat/issues/1550) | 4+ | Not started |
| A1 | Shared AI-assist thread: immediate send, Cancel/Retry, one component for every assist editor | [#1552](https://github.com/microsoft/simplechat/issues/1552) | — | **Done**: [#1564](https://github.com/microsoft/simplechat/pull/1564), v0.261.200 |
| A2 | `#` document references in AI-assist inputs: plan editor now, workflow assistant via Phase 3. Not the artifact editors (Mermaid, chart, image) | [#1556](https://github.com/microsoft/simplechat/issues/1556) | A1 | **Done**: [#1568](https://github.com/microsoft/simplechat/pull/1568), v0.261.201. It merged into A1's branch and landed with #1564 |
Expand All @@ -40,17 +40,18 @@
| — | `#` references + document search in the orchestration question card | — | — | **Already done** (`7c355534f`). No new work; A1's Playwright run includes a regression check |

Track A (AI-assist UX) is independent of the workflow phases, and both of its parts have landed (#1564). Phase 3
shipped as three PRs: 3a (change tracking), 3b (the assist endpoint) and 3c (the **Ask AI** tab, which also works on
a proposal opened with **Edit**). Phase 5 (#1594) lets a plan start a saved workflow and link to the run, and 6a
(#1592) lets chat answer from a finished run's stored result, with **Follow up**. The `workflow_results` planner
capability and 6b, split into a server PR and a stacked V2 PR, are in progress. Tracks N (V2 notifications) and P
(document provenance) are independent too, and all three of their items have landed, so 6b can rely on the V2 bell for
undeliverable results.
shipped as three PRs: 3a (change tracking), 3b (the assist endpoint) and 3c (the **Ask AI** tab, which also works on a
proposal opened with **Edit**). Phase 5 (#1594) lets a plan start a saved workflow and link to the run, and 6a (#1592)
lets chat answer from a finished run's stored result, with **Follow up**. The `workflow_results` planner capability
(#1607) lets a plan read a finished run, and 6b-1 (#1610) posts a run's results back into the private chat that
started it. 6b-2 (the V2 run card, tracker and chat-list indicator) and 7a (the server part of Phase 7's hand-off) are
in progress. Tracks N (V2 notifications) and P (document provenance) are independent too, and all three of their items
have landed, so 6b can rely on the V2 bell for undeliverable results.

Repository follow-ups found along the way, not tied to one phase:

- The generated release-notes pages under `docs/explanation/release-notes/` are stale, so
`test_docs_release_notes_integrity.py` fails on the base, with 152 stale releases at 0.261.216. The PRs above leave
`test_docs_release_notes_integrity.py` fails on the base, with 164 stale releases at 0.261.228. The PRs above leave
them alone; regenerate them once, in a docs-only change, after the in-flight PRs land.
- Other docs pages have pre-existing broken relative links (`test_docs_link_integrity.py`).
- **Fixed in [#1576](https://github.com/microsoft/simplechat/pull/1576)** (#1571): the PR guardrail workflows (broken
Expand Down Expand Up @@ -1191,11 +1192,17 @@
- The chip reads the run through `GET /api/user/workflows/<workflow_id>/runs/<run_id>/result-context`, which only
finds the signed-in person's own runs.
- Retry and Edit of a Follow up turn are refused (gotcha 63).
- The `workflow_results` planner capability is in progress as a separate PR, under the same setting.
- The `workflow_results` planner capability is **done** in
[#1607](https://github.com/microsoft/simplechat/pull/1607), v0.261.217, under the same setting. One read-only

Check warning on line 1196 in docs/explanation/features/CHAT_ORCHESTRATION_WORKFLOWS_ROADMAP.md

View workflow job for this annotation

GitHub Actions / malicious-pr-security-review

Important - Changed line contains external connection or remote asset marker. Recommendation%3A Review whether changed code can send prompts, files, credentials, cookies, settings, logs, or user data to a new sink.
Gather step reads one finished run, either the workflow's latest or the one that finished on a named day in the
user's local time. The server picks the run, the result reaches the compose step as fenced, untrusted notes (never
evidence), and the answer names each run it read (`CHAT_ORCHESTRATION_WORKFLOW_RESULTS.md`).

#### 6b — Post-back delivery, run card and chat-list indicator

**In progress** as two stacked PRs: 6b-1 is the server part, and 6b-2, branched from it, is the V2 part.
**6b-1 done** in [#1610](https://github.com/microsoft/simplechat/pull/1610), v0.261.227: the server delivery and the

Check warning on line 1203 in docs/explanation/features/CHAT_ORCHESTRATION_WORKFLOWS_ROADMAP.md

View workflow job for this annotation

GitHub Actions / malicious-pr-security-review

Important - Changed line contains external connection or remote asset marker. Recommendation%3A Review whether changed code can send prompts, files, credentials, cookies, settings, logs, or user data to a new sink.
status route. **6b-2**, the V2 part, is in progress; it branches from `paullizer-react-v2-ui` now that #1610 has
merged.

**Server**

Expand Down Expand Up @@ -1237,6 +1244,25 @@
- delivery state and the delivered message ID
- a sanitized error
- the workflow's scope, for the run link
- **6b-1 done** in [#1610](https://github.com/microsoft/simplechat/pull/1610), v0.261.227, under **Use Workflow

Check warning on line 1247 in docs/explanation/features/CHAT_ORCHESTRATION_WORKFLOWS_ROADMAP.md

View workflow job for this annotation

GitHub Actions / malicious-pr-security-review

Important - Changed line contains external connection or remote asset marker. Recommendation%3A Review whether changed code can send prompts, files, credentials, cookies, settings, logs, or user data to a new sink.
Results In Chat** (no new setting; `CHAT_WORKFLOW_RESULT_DELIVERY.md`). Where it differs from, or settles, the plan
above:
- The message ID is `assistant_workflow_delivery_` plus the first 40 hex characters of a SHA-256 over the run, the
chat and the delivery generation (the runtime control's `version` when the run ended), so a resumed run posts its
own answer.
- Delivery reopens only when a durable resume (`/runtime/resume` with `{expected_version, request_id}`) raises that
version. `/resume-failed` isn't a trigger: it answers 409 for durable runs. Expired records never reopen.
- A bounded in-process hint queue (256) prompts delivery, and a sweep under the lock `workflow_chat_delivery_sweep`

Check warning on line 1255 in docs/explanation/features/CHAT_ORCHESTRATION_WORKFLOWS_ROADMAP.md

View workflow job for this annotation

GitHub Actions / malicious-pr-security-review

Important - Changed line contains AI, plugin, agent, or workspace boundary marker. Recommendation%3A Check whether prompts, chat history, uploaded documents, embeddings, citations, settings, or identity can cross a new boundary.
is the backstop. At most 8 attempts, with backoff from 30 s to 15 min. Delivery gives up at `expires_at`, the
runtime deadline plus 24 hours.
- The chat is marked unread before the message is created.
- A delivered result uses the normal chat-response ("AI responded") notice, `Results from "X" are in your chat`. An
undeliverable or expired one gets a `workflow_chat_delivery` notice that links to the classic `/workflow-activity`
page for now; the V2 bell labels it a generic "Notification" until 6b-2.
- A deleted workflow or a missing runtime control closes the delivery silently, with no notice.
- Classic Retry and Edit refuse any message a workflow run posted.
- The status route is `GET /api/v2/orchestration/workflow-runs/status[?conversation_id=]`, owner-only.

Check warning on line 1264 in docs/explanation/features/CHAT_ORCHESTRATION_WORKFLOWS_ROADMAP.md

View workflow job for this annotation

GitHub Actions / malicious-pr-security-review

Important - Changed line contains AI, plugin, agent, or workspace boundary marker. Recommendation%3A Check whether prompts, chat history, uploaded documents, embeddings, citations, settings, or identity can cross a new boundary.
- The workflow's own alert rules still fire for the same run (gotcha 55).

**V2**

Expand Down Expand Up @@ -1491,7 +1517,7 @@
| 3 | Inline word diff for long text: a local helper or a bundled npm package? | **Deferred in #1569**: long text shows its previous value under **Previously**. When the word diff is added, start with a small local helper. |
| 4 | Proposal expiry; where Deny state persists | **Settled in #1580**: proposals expire 14 days after they're created, and every decision, Deny included, is stored on the producing run's document. |
| 6a | How long run results stay available for Follow up | **Settled in #1592**: until the run is deleted. There's no retention setting yet. |
| 6b | How long to keep trying to deliver | The durable deadline plus 24 hours, then the undeliverable notice |
| 6b | How long to keep trying to deliver | **Settled in #1610**: until `expires_at`, the runtime deadline plus 24 hours. After that the delivery closes as expired, and the bell gets one notice that links to the run. |
| 6b | Run deep-link route | **Decided for 6b-2**: reuse P's query form (`?workflow_id=…&run_id=…` on the personal or group workflows page) through one scope-aware helper that both `v2WorkflowRunPath` (`lib/notificationLinks.ts`, after the checks in gotcha 61) and `workflowRunHref` (`lib/workflowRunLink.ts`) use. No separate run page. |
| 6c | Add an in-plan wait? | Only if planners need a workflow's output later in the same plan |
| N1 | Where the bell sits in the sidebar | **Settled in #1563**: beside the brand mark in the header row, with a dot when collapsed |
Expand Down
Loading