From 67419771351c58b2e28a27269b4b36f863828729 Mon Sep 17 00:00:00 2001 From: Paul Lizer Date: Fri, 2 Oct 2026 21:59:33 -0400 Subject: [PATCH 1/2] Update roadmap status: #1607 and 6b-1 done, 6b-2 and 7a started Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- .../CHAT_ORCHESTRATION_WORKFLOWS_ROADMAP.md | 50 ++++++++++++++----- 1 file changed, 38 insertions(+), 12 deletions(-) diff --git a/docs/explanation/features/CHAT_ORCHESTRATION_WORKFLOWS_ROADMAP.md b/docs/explanation/features/CHAT_ORCHESTRATION_WORKFLOWS_ROADMAP.md index 556008f10..17bbc42c1 100644 --- a/docs/explanation/features/CHAT_ORCHESTRATION_WORKFLOWS_ROADMAP.md +++ b/docs/explanation/features/CHAT_ORCHESTRATION_WORKFLOWS_ROADMAP.md @@ -7,7 +7,7 @@ doesn't change the version. Each phase records the version it ships in. 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 @@ -29,8 +29,8 @@ Dependencies: V2 chat orchestration (`functions_orchestration*.py`), durable wor | 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 | +| 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 | | 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 | @@ -40,12 +40,13 @@ Dependencies: V2 chat orchestration (`functions_orchestration*.py`), durable wor | — | `#` 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: @@ -1191,11 +1192,17 @@ chat later (decision #11). Nothing stays connected, and closing the browser does - The chip reads the run through `GET /api/user/workflows//runs//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 + 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 +status route. **6b-2**, the V2 part, is in progress; it branches from `paullizer-react-v2-ui` now that #1610 has +merged. **Server** @@ -1237,6 +1244,25 @@ chat later (decision #11). Nothing stays connected, and closing the browser does - 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 + 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` + 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. + - The workflow's own alert rules still fire for the same run (gotcha 55). **V2** @@ -1491,7 +1517,7 @@ chat later (decision #11). Nothing stays connected, and closing the browser does | 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 | From ec5f463d1251a3866e4fc176d9ae87211488ee7b Mon Sep 17 00:00:00 2001 From: Paul Lizer Date: Fri, 2 Oct 2026 22:00:59 -0400 Subject: [PATCH 2/2] Update the stale release-notes count in the roadmap (164 at 0.261.228) Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- .../features/CHAT_ORCHESTRATION_WORKFLOWS_ROADMAP.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/explanation/features/CHAT_ORCHESTRATION_WORKFLOWS_ROADMAP.md b/docs/explanation/features/CHAT_ORCHESTRATION_WORKFLOWS_ROADMAP.md index 17bbc42c1..d87849418 100644 --- a/docs/explanation/features/CHAT_ORCHESTRATION_WORKFLOWS_ROADMAP.md +++ b/docs/explanation/features/CHAT_ORCHESTRATION_WORKFLOWS_ROADMAP.md @@ -51,7 +51,7 @@ 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