Skip to content

Fix orchestrated email review flow and Cosmos response contracts - #1751

Merged
Paul Lizer (paullizer) merged 1 commit into
microsoft:paullizer-react-v2-uifrom
paullizer:paullizer-email-review-flow
Oct 11, 2026
Merged

Paul Lizer (paullizer) merged 1 commit into
microsoft:paullizer-react-v2-uifrom
paullizer:paullizer-email-review-flow

Conversation

@paullizer

Copy link
Copy Markdown
Collaborator

Why

An orchestrated email request could create its Outlook draft and pending action, then report draft creation as failed because receipt persistence rejected a CosmosDict response. Missing orchestration-to-message linkage also placed the review card above the conversation, making preparation, review, and send outcomes confusing.

Approach

  • Normalize trusted Cosmos point responses before copying and strict receipt validation, preserving ETags and conditional updates. Actual post-effect persistence failures retain recovery-required semantics rather than making effects replayable.
  • Capture authoritative pending-action references inside each Microsoft 365 step bridge, persist minimal IDs on the run and final message, and resolve current authorized cards for creation events, terminal responses, and history.
  • Show new cards beside the originating turn, then beneath its saved reply. Successful preparation is ready for review, not sent; send acceptance does not claim recipient delivery. Preserve owner-only Send/Cancel and the retained Outlook draft warning.
  • Add a bootstrap-free normalizer, SDK-shaped point-response defaults, a reviewed inventory of 1,045 storage owners and 389 doubles/seams, and dedicated network-blocked Cosmos contract CI. Inventory evidence is representative owner coverage, not exhaustive branch coverage for every listed function.

Scope and compatibility

Version advances to 0.261.324. Existing conversations and pending actions are not migrated, relinked, rewritten, or replayed. Delivery policies and strict domain validators remain unchanged. No real mail was sent and no deployment was performed.

The branch includes React V2 base commit add94ccfe, pulled before implementation. The target advanced with mobile changes during validation; those later changes have not been merged into this branch.

Validation

  • .\.venv\pinned\Scripts\python.exe scripts\check_cosmos_response_boundaries.py --run-contracts: 567 passed plus 231 subtests, using pinned Cosmos 4.9.0 and Semantic Kernel 1.39.4 with network access blocked.
  • Affected eight-file backend integration rerun: 560 passed plus 112 subtests. The SDK-default lifecycle fixture failures were resolved by normalizing its repository callback boundary, without weakening production authorization.
  • node --experimental-strip-types --test --test-reporter=dot .\functional_tests\test_v2_m365_pending_actions_logic.mjs .\functional_tests\test_v2_m365_pending_actions_store.mjs .\functional_tests\test_v2_m365_pending_actions_stream.mjs .\functional_tests\test_v2_orchestration_streaming_surface.mjs: 119 passed.
  • .\.venv\Scripts\python.exe -m pytest .\ui_tests\test_v2_m365_pending_action_cards.py -q --tb=short: 14 passed, desktop/mobile and keyboard review with mocked sends.
  • .\.venv\Scripts\python.exe -m pytest .\functional_tests\test_v2_m365_pending_actions.py .\functional_tests\test_docs_app_surface_coverage.py .\functional_tests\test_docs_site_quality.py -q --tb=short: 27 passed.
  • npm --prefix application\v2_ui run build: passed; Vite reports its existing large-chunk advisory.
  • git diff --check: passed.

Wider optional workflow probes exposed existing cold-import and stale retry/edit expectations, reproduced independently of SDK-shaped defaults and documented in the Cosmos compatibility fix notes. These unrelated behaviors were not changed.

Normalize operation receipts before strict validation, preserve saved action linkage through orchestration, and present review/send outcomes inline. Add SDK-shaped storage doubles, a reviewed boundary inventory, and offline contract CI coverage.

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