Skip to content

Show a workflow's reply once in the conversation it created (0.261.253) - #1637

Merged
Paul Lizer (paullizer) merged 1 commit into
microsoft:paullizer-react-v2-uifrom
paullizer:paullizer-workflow-reply-replaces-seed
Oct 6, 2026
Merged

Paul Lizer (paullizer) merged 1 commit into
microsoft:paullizer-react-v2-uifrom
paullizer:paullizer-workflow-reply-replaces-seed

Conversation

@paullizer

@paullizer Paul Lizer (paullizer) commented Oct 4, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • When an agent workflow creates a conversation and posts its opening message there through the Simple Chat action, the run's full reply (maps and sources included) is later mirrored into the same conversation. The conversation then showed the same findings twice, the first copy labelled "posted through an agent" as though the workflow's user had written it. Now, once the reply is mirrored, the run's own post is marked metadata.superseded_by_workflow_reply and V2 and both classic message loops leave it out of the thread. It stays stored, stays in the conversation's AI history, and still resolves when a reply quotes it.
  • The workflow's own conversation, Workflow: name, is hidden from the chat list the first time a run delivers into a conversation it created (recorded once as workflow_delivery_hidden_at, with a conversation cache bump). It still records every run and opens from the alert's Show more links or the "show hidden conversations" toggle. Someone who shows it again is not overruled by later runs.
  • Only posts the run made through the agent action are hidden (posted_via: agent_action, read from its own successful create_*_conversation seed and add_conversation_message results). Messages people write and agent posts made outside a workflow run are untouched. Both steps are best effort: a failure logs a warning and never undoes the mirror.

Linked issue

None.

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

This takes 0.261.253, after the branch's 0.261.252. Rebased on 2026-10-06 onto paullizer-react-v2-ui at #1647; 0.261.235 went to #1636. Renumber on merge if the order changes.

Testing / validation

  • python -m pytest functional_tests/test_workflow_reply_replaces_agent_posted_message.py: 10 passed. Compiles the real runner functions against in-memory stores: group and personal deliveries, which messages are hidden, a created conversation without a post of its own, a run that creates nothing, the one-time hide of the workflow conversation, a retried mirror, a failed hide, and the classic message loops.
  • python -m pytest ui_tests/test_chat_workflow_results.py: 26 passed, including the new test_a_runs_own_post_gives_way_to_its_mirrored_reply (only the reply shows; an agent post without the mark still shows).
  • python -m pytest functional_tests/test_docs_site_quality.py functional_tests/test_docs_app_surface_coverage.py: 13 passed.
  • npm --prefix application/v2_ui run typecheck and run build: pass.
  • Verified on a SimpleChat POC deployment: an alert-triage workflow created a group conversation and a personal conversation. Each opened with the mirrored reply only, maps and sources included; the run's posts carried the superseded mark; and the workflow conversation left the chat list after the first delivery.

Documentation

  • Release notes updated, or not needed (v0.261.253, Bug Fixes)
  • Feature documentation updated, or not needed (V2_INLINE_MEDIA_AND_AGENT_MESSAGES.md)
  • Fix documentation updated, or not needed (new WORKFLOW_REPLY_REPLACES_AGENT_POSTED_MESSAGE_FIX.md; "Later changes" in WORKFLOW_VISUALIZATION_CONVERSATION_MIRROR_FIX.md)

The workflow guide (docs/guides/create-a-workflow.md) gains "Read results in a conversation the workflow creates".

Security checklist

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

Paul Lizer (paullizer) added a commit that referenced this pull request Oct 5, 2026
V2 reached 0.261.238 when #1644 merged, so this branch moves one above it.
Sets config.py VERSION to 0.261.239 and moves this branch's own 0.261.238
lines to 0.261.239: the hand-off modules' and tests' Version, Implemented in,
MINIMUM_VERSION and assert_app_version_at_least literals, the two route-test
coverage notes, the run adapter test's hand-off refusal note, the two
hand-off rows in docs/admin/orchestration.md, the feature doc and this
branch's release-notes header. #1644's own 0.261.238 lines (its schema
docstring, its Microsoft 365 section and troubleshooting row in
orchestration.md, its fix docs and its release-notes section) are unchanged.
The open V2 PRs claim 0.261.234 (#1639), 0.261.235 (#1637), 0.261.236
(#1638) and 0.261.246 (#1641), none of them 0.261.239.

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
V2 is still at 0.261.233. microsoft#1635, microsoft#1636, microsoft#1637 and microsoft#1638 claim .234 to .236,
so this branch takes .237. Every 0.261.234 reference moves to 0.261.237:
config.py, the release notes header, the feature docs, the chat-controls
reference and the test headers.

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
Sets config.py VERSION to 0.261.238, one above the versions claimed by the open V2 PRs (microsoft#1636 0.261.234, microsoft#1637 0.261.235, microsoft#1638 0.261.236, 6b-2 next), and moves the hand-off modules' and tests' Version, Implemented in, MINIMUM_VERSION and assert_app_version_at_least literals to it. The off-golden fixture keeps its factual capture note (f1aeef1, 0.261.233).

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Hide the run's own post once its full reply is mirrored into the created conversation, and hide the workflow conversation from the chat list after the first delivery.
@paullizer
Paul Lizer (paullizer) force-pushed the paullizer-workflow-reply-replaces-seed branch from 3a67aaa to bf714a8 Compare October 6, 2026 13:39
@paullizer Paul Lizer (paullizer) changed the title Show a workflow's reply once in the conversation it created (0.261.235) Show a workflow's reply once in the conversation it created (0.261.253) Oct 6, 2026
@paullizer
Paul Lizer (paullizer) merged commit ea0d359 into microsoft:paullizer-react-v2-ui Oct 6, 2026
11 checks passed
Paul Lizer (paullizer) added a commit that referenced this pull request Oct 6, 2026
#1637 merged into paullizer-react-v2-ui as 0.261.253, the version this
branch also claimed, so this fix moves one above it. Only version
references change: config.py, the release notes heading, the fix and
feature docs, and the version headers of the tests this branch added or
updated. No behaviour changes.

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
Bring in origin/paullizer-react-v2-ui at ea0d359, the merge of #1637
(0.261.253), which this branch had also numbered 0.261.253 before it was
renumbered.

Only two files conflicted:
- config.py keeps VERSION = "0.261.254", one above V2.
- release_notes.md keeps the v0.261.254 section directly above V2's
  v0.261.253 section, with every section byte-exact.

MessageList.tsx merged cleanly: V2's superseded-workflow-reply filter
changes the thread list, and this branch changes StreamingBubble.

Every other file matches the side that changed it.

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
…masked

Brings in the five commits from #1637 and #1652. Conflicts resolved:

- config.py: the base moved to 0.261.255, so this fix takes 0.261.256.
- release_notes.md: the base's v0.261.253 section stays as it is, and this
  fix's entries move to a new v0.261.256 section at the top.

The new shared-conversation generated-documents routes read messages through
list_collaboration_messages, which already leaves out soft-deleted copies.

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