Skip to content

Add guided follow-up questions and safe local-agent continuation - #1894

Merged
Paul Lizer (paullizer) merged 2 commits into
microsoft:paullizer-react-v2-uifrom
paullizer:paullizer-guided-agent-questions
Nov 6, 2026
Merged

Paul Lizer (paullizer) merged 2 commits into
microsoft:paullizer-react-v2-uifrom
paullizer:paullizer-guided-agent-questions

Conversation

@paullizer

@paullizer Paul Lizer (paullizer) commented Nov 5, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Replace the empty-editor-first follow-up experience with the selected Focus flow: useful single/multi-select choices, custom answers for open questions, Back/Next navigation, and one reviewed submission for the complete question set.
  • Reuse the existing flat elicitation contract and shared form across orchestration, plan editing, and interactive local agents. Closed enums and resource identities remain constrained; answering a question does not approve external actions.
  • Add actor-scoped, conditional input claims and retained SK tool-history continuation. Completed tool actions are not replayed; late sign-in responses are discarded, and Stop targets the saved standalone request, including blocked provider waits.
  • Scope this to V2 and tool-capable local agents. Foundry agents, classic chat, and unattended workflows retain their existing behavior. Reuse existing private interaction storage without a new admin toggle or deployment resource.

Local component previews with synthetic data, not a deployed environment:

Focus flow desktop component preview

Mobile dark component preview

Linked issue

N/A - no associated issue.

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

Release notes and the Latest Feature card decision are deferred; this PR does not add either.

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.410 -> 0.261.412. Deployers are unchanged. The review follow-up makes every question-recovery response a consistent three-element tuple with Cache-Control: no-store, including 404 and 503 responses.

Testing / validation

  • npm --prefix .\application\v2_ui run build - passed, including TypeScript compilation and the production Vite build.
  • python -m pytest .\functional_tests\test_guided_user_input.py .\functional_tests\test_guided_user_input_routes.py .\functional_tests\test_guided_user_input_orchestration.py .\functional_tests\test_v2_elicitation_answers.py -q --disable-warnings --tb=short - 22 passed, including all four question-recovery response branches.
  • python -m pytest .\ui_tests\test_v2_guided_user_input.py .\ui_tests\test_v2_orchestration_plan_editor.py .\ui_tests\test_v2_orchestration_elicitation_backend.py -q --disable-warnings --tb=short - 44 passed. Desktop/mobile, review, custom input, actor changes, saved-request Stop, shared form reuse, and real planner continuation are covered.
  • python .\scripts\check_cosmos_response_boundaries.py - passed with zero review gaps. All 211 reviewed SDK evidence selectors from 93 files also passed in three isolated pytest batches with -p test_support.cosmos_network_guard; no selectors were dropped.
  • python .\functional_tests\test_docs_app_surface_coverage.py - 7/7 checks passed; python .\functional_tests\test_docs_site_quality.py - 6/6 checks passed.
  • python .\functional_tests\route_tests\test_route_blueprint_policy_inventory.py - 15/15 passed; python .\functional_tests\route_tests\test_route_unauthenticated_policy_contract.py - 10/10 passed; python .\functional_tests\route_tests\test_route_policy_test_coverage.py - 3/3 passed.
  • Manual visual inspection of local desktop light and mobile dark component previews found no horizontal overflow. Existing credential UI and the ordinary chat Stop browser regression also passed.

Existing verification limits, not counted as passes: the legacy backend-editor UI fixture cannot initialize its mock cosmos_settings_container; one AST-only prompt test omits STORAGE_FAILURE_CODE; the old static Stop wiring test hardcodes version 0.250.070. These fixture/version issues predate this change and were not repaired as unrelated work.

Documentation

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

Added the guided-input feature explanation, user guide, and tool reference; updated agent/orchestration guides and chat controls, and regenerated the surface and storage inventories. Separate fix documentation is N/A for this feature. Release notes remain deferred.

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 settings/configuration payload is added to browser responses. Input requests use server-owned schemas, actor/conversation authorization, session CSRF, revision/submission identities, and conditional state transitions. The actor stamp is a client display-scope guard, not an authorization input. Local plans, mockup files, previews, logs, and the temporary SDK runner are not committed.

Comment thread ui_tests/test_v2_guided_user_input.py Resolved
@paullizer
Paul Lizer (paullizer) merged commit bc3d258 into microsoft:paullizer-react-v2-ui Nov 6, 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.

2 participants