Skip to content

Enable workflow chat capability parity and scoped results delivery - #1775

Merged
Paul Lizer (paullizer) merged 3 commits into
paullizer-react-v2-uifrom
paullizer-workflow-chat-capabilities
Oct 16, 2026
Merged

Paul Lizer (paullizer) merged 3 commits into
paullizer-react-v2-uifrom
paullizer-workflow-chat-capabilities

Conversation

@paullizer

Copy link
Copy Markdown
Contributor

Summary

  • Workflows previously exposed a core-only chat-capabilities switch that Ask AI could not configure, so requests for current web research could miss the actual search capability. Ordinary workflows now use the existing orchestration planner/harness under the workflow user's identity, with required capability selections, task inheritance/overrides, and durable continuation/cancellation.
  • Personal and group Ask AI can author the actual capability and Results fields through validated editor operations, including explicitly selected recipients or all current group members. Existing scope, source, admin and optional role policies remain in force; no new permission or approval system is introduced.
  • Each run gets separate audit history and can deliver its outcome, sources and generated artifacts into a normal personal/group/shared conversation that users can continue. Durable delivery receipts prevent duplicate publication; alerts open the delivered result. New titles include the run date/time and show Workflow as metadata rather than a title prefix.
  • Preserve legacy definitions, specialized frozen-plan replay, agent-controlled delivery and chat-origin post-back. Update the editor, regression coverage and documentation, and bump the application to 0.261.343. New ordinary workflows default to automatic orchestration when available and private-in-scope results delivery; existing workflows do not acquire those defaults implicitly.

Scope boundary: This is not deployed. It does not claim to fix the separately observed Foundry metadata HTTP 504 -> interrupted execution -> uncertain result commit / recovery_changed failure chain. Conversation delivery and normal follow-up coverage are included; provider/checkpoint recovery remains separate.

Linked issue

N/A. The user chose to keep this work in the session without an 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

The existing assistant setting now also governs authorized group-workflow authoring. No new admin feature flag or deployment service is added.

Should this become a Latest Feature card?

  • Yes
  • No
  • Already added

Screenshot needed for the card?

  • Yes
  • No
  • Attached

No Latest Feature card is included in this scope. Release notes remain unchanged pending user approval.

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.342 -> 0.261.343. No deployer changes.

Testing / validation

Python validation used a temporary .workflow-venv, with the application's pinned azure-cosmos==4.9.0 and missing Yamcs/protobuf dependencies restored locally. The environment has been removed; production dependency manifests were not changed. App/test module paths were supplied through PYTHONPATH. External providers were doubled; no live workflow was modified or deployed.

  • .\.workflow-venv\Scripts\python.exe .\scripts\check_cosmos_response_boundaries.py --run-contracts - passed: 1,047 tests and 244 subtests with network access blocked; 1,066 storage owners and 406 doubles, zero review gaps.
  • .\.workflow-venv\Scripts\python.exe -m pytest -q --tb=short --disable-warnings -p no:cacheprovider .\functional_tests\test_workflow_chat_execution.py .\functional_tests\test_workflow_configuration.py .\functional_tests\test_workflow_plan_replay_off_golden.py .\functional_tests\test_workflow_plan_replay_execution.py .\functional_tests\test_workflow_plan_replay_boundaries.py .\functional_tests\test_workflow_plan_replay_freeze.py - passed: 239 tests.
  • .\.workflow-venv\Scripts\python.exe -m pytest -q --tb=short --disable-warnings -p no:cacheprovider .\ui_tests\test_v2_workflow_chat_controls.py .\functional_tests\test_v2_workflow_ask_ai_parity.py - passed: 17 tests.
  • node --test .\functional_tests\test_v2_workflow_chat_controls.mjs - passed: 7 tests.
  • npm --prefix .\application\v2_ui run typecheck - passed.
  • npm --prefix .\application\v2_ui run build - passed; existing large-bundle warning remains.
  • .\.workflow-venv\Scripts\python.exe .\functional_tests\route_tests\test_route_blueprint_policy_inventory.py - passed: 15/15 checks.
  • .\.workflow-venv\Scripts\python.exe .\functional_tests\route_tests\test_route_unauthenticated_policy_contract.py - passed: 10/10 checks.
  • .\.workflow-venv\Scripts\python.exe .\functional_tests\route_tests\test_route_policy_test_coverage.py - passed: 3/3 checks.
  • python .\scripts\build_docs_inventory.py - passed; inventory regenerated with no semantic surface change.
  • python .\functional_tests\test_docs_app_surface_coverage.py - passed: 7/7 checks.
  • python .\functional_tests\test_docs_site_quality.py - passed: 6/6 checks.
  • git --no-pager diff --check - passed.

Coverage includes actual offline web-adapter acquisition/attestation and retained sources, stable child reuse, required-output failure semantics, renderer retry without another model call, repeated output polls without increasing attempts/admissions, workflow-child scheduler isolation, fresh-process normal/optimized bootstrap, recipient authorization, idempotent delivery, and ordinary follow-up context/history in personal/group/shared result conversations.

Unrelated baseline failure: .\.workflow-venv\Scripts\python.exe -m pytest -q --tb=short --disable-warnings -p no:cacheprovider .\functional_tests\test_orchestration_harness_scheduler.py::test_deleted_run_enrollment_discovers_committed_outputs_without_cleanup_pending .\functional_tests\test_orchestration_harness_execution.py::test_native_waiting_resumes_the_same_headless_attempt_without_resubmission returned 3 failed, 1 passed. The three cleanup-admission variants fail with output_cleanup_intent_invalid before scheduler execution. They reproduce with the changed orchestration owners loaded from HEAD; unrelated cleanup behavior was not modified.

Documentation

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

Updated the workflow creation guide, admin assistant setting, AI-assistant reference, generic workflow execution, frozen-replay distinction and saved-result follow-up distinction. Added WORKFLOW_CHAT_CAPABILITY_PARITY.md with versioned configuration, identity/lifecycle, delivery, coverage and limitations. No separate fix document is needed for this integrated feature. Release notes are intentionally pending approval, not silently marked complete.

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

Existing settings sanitization is preserved; new editor options are explicit display-only projections rather than raw settings. Group scope comes from the authorized endpoint, recipients use authorized canonical choices, and workflow principals restore only existing server-authored owner-bound capability grants. Shared results do not widen private audit access.

Integrate workflow-owned orchestration with durable continuations, personal and group Ask AI controls, and per-run audit/results conversations while preserving legacy definitions.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Comment thread application/single_app/functions_workflow_results_delivery.py
Comment thread application/single_app/functions_workflow_results_delivery.py
Comment thread application/single_app/functions_workflow_results_delivery.py
Comment thread application/single_app/functions_workflow_results_delivery.py
Comment thread application/single_app/functions_workflow_results_delivery.py
Comment thread application/single_app/functions_workflow_runner.py
Comment thread application/single_app/functions_workflow_runner.py
Comment thread functional_tests/test_workflow_assist_cosmos_response_contract.py Fixed
Comment thread functional_tests/test_workflow_chat_execution.py
Comment thread ui_tests/test_v2_workflow_chat_controls.py
Address CodeQL review 4299480714 on PR #1775 by using SimpleNamespace directly. Record the focused regression validation and bump the application version to 0.261.344.

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