Skip to content

Update roadmap status: Phase 7's 7a design, and container-only results and self-authored Run as - #1633

Merged
Paul Lizer (paullizer) merged 2 commits into
microsoft:paullizer-react-v2-uifrom
paullizer:paullizer-orchestration-workflows-capability
Oct 3, 2026
Merged

Paul Lizer (paullizer) merged 2 commits into
microsoft:paullizer-react-v2-uifrom
paullizer:paullizer-orchestration-workflows-capability

Conversation

@paullizer

Copy link
Copy Markdown
Contributor

Summary

This PR updates docs/explanation/features/CHAT_ORCHESTRATION_WORKFLOWS_ROADMAP.md to match paullizer-react-v2-ui at 0.261.232 (e1e6949). Docs only, one file, +60/−14, in two commits. Each commit can be taken or dropped on its own.

37c4b9a: status, Phase 7 and two follow-ups

  • Status line and row 7. The status line now reads 0.261.232. Row 7 names 7a's setting, enable_chat_orchestration_workflow_handoff (off by default), and points to §6 for its design.
  • Phase 7 (§6). A new "7a in progress" block lists what 7a's approved plan settles. 7a's PR will record anything that changes:
    • the gate: the new setting plus Chat Orchestration, personal workflows, Propose Workflows From Chat, Run Workflows From Chat and Use Workflow Results In Chat; WorkflowUser role; the user's own private chats only
    • the workflow_handoff step: a v3 For each blueprint over up to 25 named # documents, or a keyword workspace query over scopes the turn already authorized. Its tasks run on a model or a local agent.
    • two approvals: the plan always waits (manual floor), then the hand-off card. The step isn't a deliverable; the server adds a fixed note to the reply.
    • accept creates the workflow disabled, with a deterministic ID and a one-time origin marker, and queues exactly one durable run that 6b-1 posts back. Chat's workflow_run won't start it again.
    • a rolling 24-hour hand-off limit (default 5, range 1–100) instead of Phase 4's cap of 20
    • at most 2,000 loop items (or the admin's lower loop limit), because each item uses two of a run's 5,000 execution admissions. A query that matches more pauses the run before any item is reviewed; the user can only cancel it.
    • a narrow 6a reader branch for a hand-off run's v3 report. Other v3 runs still answer workflow_result_unsupported.
  • §9 row 7. Decided for 7a: the workflow is created disabled, with a one-time marker, and is never archived or deleted automatically.
  • Two new repository follow-ups, found while reviewing 6b-2 and 7a:
    • Cancelling a durable run answers 500 on a runtime conflict or outage. All four cancel routes catch only LookupError and WorkflowCancellationConflictError, but the runtime raises WorkflowRuntimeConflict and RuntimeUnavailable, which subclass RuntimeError.
    • A v3 For each loop can allow up to 5,000 items, but a run admits only 5,000 executions. A one-task loop pauses with execution_budget_exceeded after about 2,500 items, after doing that work, and nothing checks this at save.
  • The stale release-notes count is now 168 at 0.261.232.

c0af9a5: align with merged #1621 and #1630

The screening stack (#1628 with #1629 and #1631, then #1632) and #1630 are merged. The roadmap still said some things V2 no longer does, so this commit updates them:

  • §7. Reads and deliveries re-check the chat, workflow and run that hold a result. Since 0.261.231, the documents a run's tasks read are provenance only and aren't re-checked.
  • Gotcha 36. Delivery no longer withholds a result over a source document the requester can't read.
  • 6a. "Lost access" in its Done when now means access to the workflow or run.
  • Gotchas 4 and 15. Since 0.261.229, a revision the Run as user saved, assistant edits included, runs as them without a separate approval. A change someone else saves, or a later change by someone else to an agent or action it uses, still asks again.
  • The intro paragraph names both changes.
  • §5's original design text and the shipped Phase 3 notes stay as history. Ask for M365 Run as approval only when someone else authored the revision #1630 already updated the feature docs they describe.

Sources checked

  • 7a's approved plan
  • M365_RUN_AS_SELF_AUTHORED_APPROVAL.md
  • WORKFLOW_SAVED_RESULT_SOURCE_RECHECK_FIX.md
  • CHAT_WORKFLOW_RESULTS_FOLLOW_UP.md and CHAT_WORKFLOW_RESULT_DELIVERY.md as changed by Stop re-checking saved workflow results against their source documents (screening layer 3a) #1631
  • the release-note headings for .229–.232
  • the follow-ups were checked in code at e1e6949:
    • the cancel routes and _request_workflow_run_cancellation in route_backend_workflows.py
    • the journal admission check in functions_workflow_journal.py
    • the run limits in functions_workflow_flow.py and functions_workflow_limits.py

Linked issue

Refs #1543 #1546 #1549 #1621

Release Notes & Latest Features

  • New Feature
  • Bug Fix
  • UI Enhancement
  • Breaking Change
  • Internal only

Is this visible to end users?

  • Yes
  • No

Is this admin-facing (Admin Settings, governance, deployment, config)?

  • Yes
  • No

Should this become a Latest Feature card?

  • Yes
  • No
  • Already added

Screenshot needed for the card?

  • Yes
  • No
  • Attached

Version bump

  • application/single_app/config.py VERSION third segment bumped, or not needed because this is docs-only
  • deployers/version.txt bumped, or not needed because deployers/ was not changed

Testing / validation

I ran each test through its __main__ at c0af9a5 with PYTHONPATH=application/single_app;functional_tests. Each result matches unmodified e1e6949:

  • python functional_tests/test_docs_app_surface_coverage.py: passed, 7/7.
  • python functional_tests/test_docs_site_quality.py: passed, 6/6.
  • python functional_tests/test_docs_link_integrity.py: 2/5, the same as the base. The 11 broken links are on other pages. None is in this file, and the new link to M365_RUN_AS_SELF_AUTHORED_APPROVAL.md resolves.
  • python functional_tests/test_docs_release_notes_integrity.py: 0/1, the same as the base. 168 releases at 0.261.232 aren't on any generated page; the follow-up line now gives that number.
  • Outside table rows, no added line is longer than 118 columns. The file is still CRLF throughout.
  • scripts/build_docs_inventory.py isn't needed: no application surface changed.
  • I re-fetched paullizer-react-v2-ui before opening this PR. It's at e1e6949, the base of both commits.

Documentation

  • Release notes updated, or not needed
  • Feature documentation updated, or not needed
  • Fix documentation updated, or not needed

Security checklist

  • New Flask routes include @swagger_route(security=get_auth_security()): none added
  • Settings sent to non-admin frontends use sanitize_settings_for_user(): not applicable
  • Browser JavaScript is served from local SimpleChat static assets only; no CDN-hosted JS: not applicable
  • No secrets, keys, connection strings, or local-only artifacts are included

Paul Lizer (paullizer) and others added 2 commits October 3, 2026 14:52
Record V2 at 0.261.232, row 7's hand-off setting, and the design that 7a's
approved plan settles: the six settings gate, the workflow_handoff step and its
blueprint, the two approvals, the disabled one-time workflow with exactly one
durable run, the 24-hour limit, the 2,000-item loop bound and its pause, and
the reader branch. §9 row 7 is decided for 7a (created disabled, never archived
automatically).

Add two repository follow-ups found while reviewing 6b-2 and 7a: durable run
cancellation answering 500 on runtime conflicts or outages, and v3 For each
loops that allow more items than a run's 5,000 execution admissions. The stale
release-notes count is now 168 at 0.261.232.

Refs microsoft#1543 microsoft#1549

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
… Run as

The microsoft#1621 screening changes (microsoft#1628, microsoft#1631, microsoft#1632) and microsoft#1630 have landed on
paullizer-react-v2-ui, so the roadmap no longer describes V2 where it says a
result is withheld when a source document becomes unreadable, or that every
material edit needs Run as approval again.

- §7: reads and deliveries re-check the chat, workflow and run that hold a
  result; since 0.261.231 the documents a run's tasks read are provenance only.
- Gotcha 36: delivery no longer withholds a result over an unreadable source.
- 6a: "lost access" in its Done when now means access to the workflow or run.
- Gotchas 4 and 15: since 0.261.229 a revision the Run as user saved, assistant
  edits included, runs as them without a separate approval; changes saved by
  someone else still ask again.
- The intro names both changes.

Docs only; the original plan text in §5 and the shipped Phase 3 notes are left
as history.

Refs microsoft#1543 microsoft#1546 microsoft#1621

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@paullizer
Paul Lizer (paullizer) merged commit f1aeef1 into microsoft:paullizer-react-v2-ui Oct 3, 2026
7 checks passed
Paul Lizer (paullizer) added a commit to paullizer/simplechat that referenced this pull request Oct 3, 2026
The base now ships its own v0.261.233 release-notes section (microsoft#1626, microsoft#1633),
so this branch's entry moves to a new v0.261.234 section above it. The base
section is kept verbatim. config.py merged cleanly because both sides set
0.261.233; the renumbering follows in the next commit.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Paul Lizer (paullizer) added a commit to paullizer/simplechat that referenced this pull request Oct 6, 2026
While this branch was being synced, paullizer-react-v2-ui merged microsoft#1626
and microsoft#1633 and published v0.261.233, which this branch had just taken for
its first merge phase.

The integration branch's sections are kept exactly as published. This
branch's eight sections shift up one, to v0.261.234 through v0.261.241,
and config.py becomes 0.261.241. Every file only this branch changed is
checked to equal its previous content with those versions shifted, and
the release notes are the integration branch's file plus this branch's
eight sections.

functions_structured_file_renderers.py conflicted on imports only: the
exact-tabular profiles import from this branch and the scratch directory
import from the integration branch are both kept.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Paul Lizer (paullizer) added a commit that referenced this pull request Oct 6, 2026
Brings in #1626 (orchestration file render permission fix, released as
0.261.233) and #1633 (roadmap updates). The only conflict was the top of
release_notes.md, where both sides added a v0.261.233 section; both are
kept intact under their own headings. 6b-2 is renumbered to 0.261.234 in
the next commit.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant