Repository navigation
V2 shared conversations: mention pills, agent activity lines, generated documents and media (0.261.255) - #1652
Merged
Paul Lizer (paullizer) merged 3 commits intoOct 6, 2026
Conversation
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.
…a conversation produced V2 shared conversations: - Mentions show as pills above a message and as removable chips in the composer. The @name text is left out of what is shown, including reply quotes; the stored text keeps it, so the server, the classic client and the assistant read mentions as before. - Every running AI request shows as one slim activity line for all participants: which agent, who asked, the elapsed time and what it is doing in plain words. It replaces the large Thinking bubble in shared conversations. - The Documents drawer lists the documents agents generated in the conversation (Markdown preview, download only where the workspace's rules allow it) and every image, video and audio clip in the thread. Version 0.261.255.
The list and download routes returned a PermissionError's text with their 403. They now return a fixed message and log the reason on the server, which resolves CodeQL py/stack-trace-exposure alerts 4012 and 4013. A test checks that no error response from either route carries a caught exception.
Paul Lizer (paullizer)
merged commit Oct 6, 2026
6154f95
into
microsoft:paullizer-react-v2-ui
11 checks passed
Paul Lizer (paullizer)
added a commit
to paullizer/simplechat
that referenced
this pull request
Oct 6, 2026
microsoft#1652 merged into paullizer-react-v2-ui as 0.261.255, above the 0.261.254 this branch had taken, so this fix moves one above it again. 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
to paullizer/simplechat
that referenced
this pull request
Oct 6, 2026
…icator Bring in origin/paullizer-react-v2-ui at 6154f95, the merge of microsoft#1652 (0.261.255), which went above the 0.261.254 this branch had taken; the previous commit renumbers this fix to 0.261.256. Only two files conflicted: - config.py keeps VERSION = "0.261.256", one above V2. - MessageList.tsx: both sides changed the top of StreamingBubble. The resolution keeps this branch's store read (orchestrationSurface, activeConversationId) and adds V2's collaborative selector, so every hook still runs before either early return. Both early returns stay: a run shown on its plan card, and a shared conversation whose activity line stands in for the bubble. Orchestration routes only accept personal conversations, so the two cannot apply at once. chatStore.ts merged cleanly; V2's change adds no new streaming writes. For MessageList.tsx and chatStore.ts the merge adds exactly V2's change to this branch and exactly this branch's change to V2. The release notes did not conflict: microsoft#1652 left them alone, so this PR's v0.261.256 section still sits directly above V2's v0.261.253 section. Every other file matches the side that changed it. No earlier recorded resolution was applied. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
This was referenced Oct 6, 2026
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>
Paul Lizer (paullizer)
added a commit
to paullizer/simplechat
that referenced
this pull request
Oct 6, 2026
…esign to 0.261.256 The base moved to 0.261.255, and open PRs microsoft#1654 and microsoft#1638 both hold 0.261.254, so this branch takes the next free number. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
@Namein the sentence. A name used to address someone takes its comma with it, so "Sam Smoot (@sam), start with the route." reads "Start with the route." Picking from the@menu adds removable chips above the message box: any number of people, and one model or agent (a second agent replaces the first). The names are still sent in front of the message, so the server, the classic client and the assistant read mentions exactly as before. Reply quotes read the same way and drop markdown markers.Server side:
CollaborationAiActivity(route_backend_collaboration.py) publishescollaboration.ai.started,progressandfinishedon the conversation's event stream.finishedalways fires, from afinallyblock, and publishing never raises.functions_collaboration_ai_activity.pydescribes each step in plain words. Two new routes for accepted participants list and download generated documents (functions_collaboration_generated_documents.py): a group document needs Owner, Admin or DocumentManager plus the group's download settings, and a personal document only its owner.Stacked on #1637. The Media list skips messages that a workflow reply replaced (
isSupersededByWorkflowReply, added in #1637), so this branch is built on it. Until #1637 merges, its commit shows here as well.Exercised on a SimpleChat POC deployment: four people and twelve agent requests in one shared conversation.
Linked issue
None.
Release Notes & Latest Features
Is this visible to end users?
Is this admin-facing (Admin Settings, governance, deployment, config)?
Should this become a Latest Feature card?
Screenshot needed for the card?
Version bump
application/single_app/config.pyVERSIONthird segment bumped: 0.261.255, after Show a workflow's reply once in the conversation it created (0.261.253) #1637's 0.261.253 and Shared map server core: persistent, phase-tagged maps for agents (Phase 1, 0.261.254) #1638's 0.261.254. Renumber on merge if the order changes.deployers/version.txtnot needed;deployers/was not changedTesting / validation
python functional_tests/test_collaboration_ai_activity_events.py(6),test_collaboration_generated_documents.py(4),test_workflow_reply_replaces_agent_posted_message.py(10)node functional_tests/test_v2_collaboration_mention_pills_logic.mjs(9),test_v2_collaboration_ai_activity_logic.mjs(6),test_v2_drawer_media_logic.mjs,test_v2_shared_conversation_logic.mjs(51)test_v2_prompt_attachment_persistence.py(84),test_v2_prompt_composer_card.py(11),test_v2_prompts_workbench.py(22)test_docs_site_quality.py(6),test_docs_app_surface_coverage.py(7), andscripts/check_broken_access_control.pyon the changed Python filesnpm --prefix application/v2_ui run build(type check and build)ui_tests/test_v2_collaboration_ux.py(4) and the 19 other V2 UI test files that mount the message list, composer or drawer: 255 passed in one session. Three files hit Playwright's "Sync API inside the asyncio loop" only when run in that same session and pass on their own (56, 33, 5).test_v2_orchestration_composer.pyandtest_v2_orchestration_pending_approval_resume.pypass through their own runners (6/6, 5/5).Documentation
docs/explanation/features/V2_COLLABORATION_UX.md,docs/reference/chat-controls.mdSecurity checklist
@swagger_route(security=get_auth_security())sanitize_settings_for_user()(the new routes send no settings)