From fa7eb73d18b734ce7e0f9cd52d5a9884f07027cb Mon Sep 17 00:00:00 2001 From: Paul Lizer Date: Thu, 15 Oct 2026 09:09:22 -0500 Subject: [PATCH] Move plan replay scheduling into message actions Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- application/single_app/config.py | 2 +- .../src/components/chat/MessageActions.tsx | 33 ++- .../v2_ui/src/components/chat/MessageList.tsx | 47 +++- .../components/chat/PlanReplaySaveCard.tsx | 28 ++- .../features/WORKFLOW_PLAN_REPLAY.md | 20 +- .../fixes/PLAN_REPLAY_MESSAGE_ACTION_FIX.md | 96 ++++++++ docs/guides/create-a-workflow.md | 10 +- docs/reference/chat-controls.md | 10 +- functional_tests/test_v2_message_actions.py | 27 ++- ui_tests/test_v2_workflow_plan_replay_card.py | 208 +++++++++++++++++- 10 files changed, 438 insertions(+), 43 deletions(-) create mode 100644 docs/explanation/fixes/PLAN_REPLAY_MESSAGE_ACTION_FIX.md diff --git a/application/single_app/config.py b/application/single_app/config.py index 276949d40..028a6ea81 100644 --- a/application/single_app/config.py +++ b/application/single_app/config.py @@ -101,7 +101,7 @@ EXECUTOR_TYPE = 'thread' EXECUTOR_MAX_WORKERS = 30 SESSION_TYPE = 'filesystem' -VERSION = "0.261.337" +VERSION = "0.261.338" IS_DEVELOPMENT = is_development_env_enabled() # Opt-out for deployments where App Service Easy Auth is active but the platform diff --git a/application/v2_ui/src/components/chat/MessageActions.tsx b/application/v2_ui/src/components/chat/MessageActions.tsx index 9f4b8aa31..90ed03459 100644 --- a/application/v2_ui/src/components/chat/MessageActions.tsx +++ b/application/v2_ui/src/components/chat/MessageActions.tsx @@ -11,6 +11,7 @@ import { BookmarkPlus, BookOpen, Brain, + CalendarClock, ChevronLeft, ChevronRight, Clipboard, @@ -70,20 +71,29 @@ export function IconButton({ children, active = false, disabled = false, + expanded, + controls, + buttonRef, }: { label: string; onClick: () => void; children: React.ReactNode; active?: boolean; disabled?: boolean; + expanded?: boolean; + controls?: string; + buttonRef?: React.Ref; }) { return (