Skip to content

Move repeat scheduling to the message action bar - #1768

Merged
Paul Lizer (paullizer) merged 1 commit into
paullizer-react-v2-uifrom
paullizer-schedule-action-placement
Oct 15, 2026
Merged

Paul Lizer (paullizer) merged 1 commit into
paullizer-react-v2-uifrom
paullizer-schedule-action-placement

Conversation

@paullizer

Copy link
Copy Markdown
Contributor

Summary

  • Remove the permanently visible "Repeat on a schedule" button from completed AI answers. Offer scheduling as a calendar icon alongside Copy and Retry in the existing hover/keyboard-focus message action bar.
  • Clicking the calendar expands the existing scheduling form below the answer. Collapse restores focus to the icon; masking or changing the run closes the panel without reusing another run's preview.
  • Preserve feature switches, private-conversation eligibility, workflow exclusions, preview/save contracts, and scheduling defaults. Keep action groups usable on narrow screens and add focused regression coverage.

Linked issue

N/A. The user chose not to create an issue for this change.

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

Application version: 0.261.337 -> 0.261.338. No deployer changes.

Testing / validation

  • npm --prefix .\application\v2_ui run build -- --outDir ..\..\ui_tests\artifacts\orchestration-plan-editor - passed, including TypeScript compilation. Vite reports its existing large-chunk warning.
  • .\.venv\Scripts\python.exe -m pytest .\ui_tests\test_v2_workflow_plan_replay_card.py -q --tb=short - passed, 27 tests. Covers real components with production CSS, desktop/light and mobile/dark layouts, hover/keyboard reveal, placement, collapse/reopen, eligibility, stale-run/masking changes, errors, and existing save/refusal behavior.
  • .\.venv\Scripts\python.exe -m pytest .\functional_tests\test_v2_message_actions.py -q -k 'not retry_and_edit_are_two_step_flows' --tb=short - passed, 7 tests; 1 existing test excluded as described below.
  • node --test .\functional_tests\test_v2_workflow_plan_replay_client.mjs - passed, 9 tests.
  • python .\scripts\build_docs_inventory.py - passed; generated inventory content is unchanged.
  • python .\functional_tests\test_docs_app_surface_coverage.py - passed, 7 checks.
  • python .\functional_tests\test_docs_site_quality.py - passed, 6 checks.
  • git -c core.whitespace=blank-at-eol,blank-at-eof,space-before-tab,cr-at-eol diff --check - passed.
  • Inspected desktop and mobile browser screenshots: the calendar sits beside Retry, and the expanded form is outside the answer bubble. Local-only test artifacts are not committed.

Known pre-existing test failure: test_retry_and_edit_are_two_step_flows expects the source literal 'chat_request': chat_request, but the existing route returns 'chat_request': body. The unchanged test from HEAD reproduced the same assertion failure. This PR leaves the unrelated assertion and production Retry behavior unchanged rather than treating the failure as a pass.

Documentation

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

Updated the workflow plan replay feature documentation, chat-control reference, and workflow creation guide. Added docs/explanation/fixes/PLAN_REPLAY_MESSAGE_ACTION_FIX.md with behavior, version, coverage, and validation details. Release notes were not updated in this change.

Security checklist

  • New Flask routes include @swagger_route(security=get_auth_security())
  • Settings sent to non-admin frontends use sanitize_settings_for_user()
  • 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

No Flask routes, authorization boundaries, or settings-response handling changed. The calendar uses the existing locally bundled Lucide icon. Existing replay eligibility and inert hostile-text browser coverage are retained.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@paullizer
Paul Lizer (paullizer) merged commit dcfedf0 into paullizer-react-v2-ui Oct 15, 2026
12 checks passed
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