Skip to content

Integrate React V2 into Development (v0.261.419) - #1903

Merged
Paul Lizer (paullizer) merged 2236 commits into
Developmentfrom
paullizer-react-v2-integration
Nov 7, 2026
Merged

Paul Lizer (paullizer) merged 2236 commits into
Developmentfrom
paullizer-react-v2-integration

Conversation

@paullizer

Copy link
Copy Markdown
Contributor

Summary

  • Integrate paullizer-react-v2-ui into Development through a history-preserving merge, carrying forward the React V2 interface and its orchestration, workspace, document, and administration capabilities without changing interface rollout defaults.
  • Preserve Development's fixes through their newer V2 implementations. Resolve 69 conflicted files and reconcile automatic-merge duplicates, historical OneNote rollback coverage, and both release-note streams.
  • Fix restored waiting-run composer ownership, enforce safe configured-navigation URLs at the browser boundary, and update regression fixtures for current guided-input, plan-revision, and quiet-progress contracts.
  • Keep GitHub's default branch main, retain the React source branch, and leave Staging/main promotion outside this PR. Retarget the two pending React PRs only after this integration lands.

Integration commit: 783153c1af61b52cb7236a63066be1a422abd3de.
Its parents are React 34df8404ab9e20e51ffaf9d98ea40d75a18570e8 and Development f4e186401b58e284ee9b626aa84c903f69ea100b; both ancestry checks passed.

Linked issue

N/A - this integration PR is the tracking item, as requested.

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

The integration preserves the source branch's feature catalog rather than adding a second promotion-only card.

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: 0.261.418 -> 0.261.419. The integrated deployer changes already carry 1.0.37 versus Development's 1.0.32; reconciliation adds no deployer changes relative to the React input.

Testing / validation

  • Local validation used Python 3.12, OpenAI 1.109.1, and Cosmos 4.9.0. In the SDK-dependent commands below, $python was .\.test-artifacts\integration-venv\Scripts\python.exe; that task-local environment was removed after validation.
  • The overlay environment inherited PyYAML 6.0.3 and test-only Uvicorn 0.52.0, rather than the declared 6.0.2 and 0.50.2. Clean pinned CI is required before merge. The shared host SDK was not changed.
Command Result
npm --prefix .\application\v2_ui run build Passed, including TypeScript; existing large-bundle advisory remains
npm --prefix .\application\v2_ui run build -- --outDir ..\..\ui_tests\artifacts\orchestration-plan-editor Passed
python -m compileall -q .\application\single_app Passed
node --check .\application\single_app\static\js\chat\chat-export.js Passed
node --check .\application\single_app\static\js\chat\chat-inline-diagrams.js 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
python .\scripts\build_docs_inventory.py Passed; committed inventory is current
python .\functional_tests\test_docs_app_surface_coverage.py 7/7 passed
python .\functional_tests\test_docs_site_quality.py 6/6 passed
python .\scripts\build_release_notes_pages.py --check Passed; 313 sections in 14 generated pages
& $python .\functional_tests\test_chat_inline_diagram_rendering.py 5/5 passed, including real local Chromium rendering
& $python .\functional_tests\test_export_mermaid_browser_rasterizer.py 3/3 passed
node .\functional_tests\test_v2_navigation_groups_logic.mjs 12/12 passed
git diff --check HEAD^1 HEAD Passed
SDK, backend, and browser selections: exact commands and results

The SDK matrix ran with PYTHONPATH set to the application and functional-test directories, warmed tokenizer assets, and the repository's network guard:

& $python -u -c "import pathlib,runpy,tempfile; tempfile.tempdir=str(pathlib.Path('.test-artifacts').resolve()); runpy.run_path('scripts/check_cosmos_response_boundaries.py',run_name='__main__')" --run-contracts

Result: 2,005 passed; 431 subtests passed. Inventory: 1,094 owners, 425 doubles, zero review gaps.

& $python -m pytest -q 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_orchestration_document_planning_recovery.py functional_tests\test_orchestration_planning_persistence.py functional_tests\test_task_completeness_engine.py functional_tests\test_task_completeness_runtime.py functional_tests\test_orchestration_available_information.py functional_tests\test_orchestration_attachment_native_evidence.py functional_tests\test_orchestration_native_citation_delivery.py functional_tests\test_saved_analysis_cleanup.py functional_tests\test_saved_analysis_cleanup_http.py --disable-warnings --tb=short --maxfail=3

Result: 262 passed.

& $python -m pytest -q functional_tests\test_react_v2_development_integration.py functional_tests\test_chat_retry_edit_model_endpoint_replay.py functional_tests\test_chat_retry_request_contract.py functional_tests\test_onenote_upload_dispatch.py functional_tests\test_onenote_workspace_ingestion.py functional_tests\test_onenote_extractor_runtime.py functional_tests\test_v2_onenote_uploads.py functional_tests\test_xss_guardrails_checker.py functional_tests\test_v2_bootstrap_branding_and_navigation.py functional_tests\test_document_provenance_origin.py --disable-warnings --tb=short --maxfail=3

Result: 175 passed; 57 subtests passed.

& $python -m pytest -q functional_tests\test_tabular_model_http_diagnostics.py functional_tests\test_tabular_tool_error_retry_and_thoughts.py functional_tests\test_workflow_instruction_drafting.py functional_tests\test_deployer_key_vault_secret_permissions.py functional_tests\test_v2_user_settings_audio_voice_retention.py functional_tests\test_app_settings_import_boundaries.py functional_tests\test_chat_retry_attempt_lifecycle.py --disable-warnings --tb=short --maxfail=3

Result: 77 passed; 33 subtests passed.

& $python -m pytest -q ui_tests\test_v2_chat_attachment_isolation.py ui_tests\test_v2_new_chat_reset.py ui_tests\test_v2_guided_user_input.py ui_tests\test_v2_orchestration_planning_persistence.py ui_tests\test_v2_orchestration_quiet_activity.py ui_tests\test_v2_orchestration_recovery.py ui_tests\test_task_completeness_ui.py ui_tests\test_v2_stream_citation_delivery.py ui_tests\test_v2_excel_citation_inspection.py ui_tests\test_v2_mobile_navigation.py --disable-warnings --tb=short

Result: 184 passed.

node --test .\functional_tests\test_native_workbook_citation_parser.mjs .\functional_tests\test_v2_chat_attachment_isolation.mjs .\functional_tests\test_v2_orchestration_progress_lane.mjs .\functional_tests\test_v2_orchestration_run_progress_status.mjs .\functional_tests\test_v2_stream_citation_delivery.mjs .\functional_tests\test_v2_web_iq_citations.mjs

Result: 43 passed.

Committed-head guardrail CLI commands

The actual committed head, not the pre-merge source head, was checked. The file arrays were generated from the complete application diff and converted to Windows paths:

$baseSha = git rev-parse origin/Development
$headSha = git rev-parse HEAD
$files = @(git diff --name-only --diff-filter=ACMR $baseSha $headSha -- application |
    ForEach-Object { $_.Replace('/', '\') })
$pythonFiles = @($files | Where-Object { $_ -like '*.py' -and (Test-Path -LiteralPath $_) })
$browserFiles = @($files | Where-Object {
    $_ -match '\.(js|html|py|ts|tsx|jsx|mjs)$' -and (Test-Path -LiteralPath $_)
})
function Invoke-Guardrail([string]$script, [string[]]$paths, [string[]]$options) {
    for ($offset = 0; $offset -lt $paths.Count; $offset += 64) {
        $batch = @($paths | Select-Object -Skip $offset -First 64)
        $output = & python $script @options @batch 2>&1
        if ($LASTEXITCODE -ne 0) { $output | Write-Output; throw "$script failed" }
    }
}
Invoke-Guardrail '.\scripts\check_swagger_routes.py' $pythonFiles @()
Invoke-Guardrail '.\scripts\check_broken_access_control.py' $pythonFiles @('--base-sha', $baseSha, '--head-sha', $headSha)
Invoke-Guardrail '.\scripts\check_xss_sinks.py' $browserFiles @('--base-sha', $baseSha, '--head-sha', $headSha)

Results: Swagger passed for 562 paths, access-control passed for 562 paths, and XSS passed for 1,460 paths, against base f4e186401b58e284ee9b626aa84c903f69ea100b and head 783153c1af61b52cb7236a63066be1a422abd3de.

Not run: a live authenticated Azure deployment smoke test, private/native OneNote executable fixtures, or a full native/container build. Local component/HTTP fixtures are not a claim of deployment validation. No resources were provisioned or independently deployed.

Documentation

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

See docs/explanation/fixes/REACT_V2_DEVELOPMENT_INTEGRATION_FIX.md, the 0.261.419 release entry, chat-control and waiting-run guidance, and the preserved historical fix notes.

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

The pinned classic Mermaid distribution uses the existing vendor boundary; first-party wrappers remain scanned. Narrow annotations document reviewed sanitizer, generated-blob, fixed-route, and intentionally hostile fixture boundaries rather than globally disabling first-party checks.

Paul Lizer (paullizer) and others added 30 commits October 19, 2026 20:06
Preserve both the upload status fix and the base branch's saved-memory resolution changes. Refresh this fix's version references and verify the combined regressions, browser workflows and storage inventory.

Co-authored-by: Copilot App <[email protected]>
Preserve the base memory-resolution changes and both sets of reviewed Cosmos boundaries. Resolve the application version conflict at 0.261.351 and align connector test/documentation headers. Post-merge checks passed: 219 Python tests, 5 subtests, 37 client checks, and 26 browser cases.

Co-authored-by: Copilot App <[email protected]>
…stigation

Add shared credential-safe SQL connection diagnostics
Preserve incoming SQL diagnostics alongside document status classification and refresh the fix's version references and integration evidence.

Co-authored-by: Copilot App <[email protected]>
Retain the upstream SQL diagnostics and both branches of owner-runtime regression evidence for the unchanged plugin storage owners. Reconcile the shared module fingerprint and version 0.261.354. Combined validation passed 275 Python tests, 37 client checks, and 26 browser cases; inventory review has zero gaps.

Co-authored-by: Copilot App <[email protected]>
Request JSON for shared V2 and classic chat uploads, and honor JSON negotiation for idle-expired sessions. Preserve authorization, idle activity semantics, drafts, and explicit-only retries. Add functional and browser regressions, documentation, and version 0.261.351.

Co-authored-by: Copilot App <[email protected]>
Resolve the application version conflict at 0.261.354 and align upload regression and fix documentation versions.

Co-authored-by: Copilot App <[email protected]>
Fix credential-clear intent in OpenAPI and MCP action tests
…stigation

Fix document status classification across uploads and workspaces
Fix multipart upload authentication response negotiation
Synchronize recovery conversation identity before preflight so delayed React cleanup cannot cancel a valid first send. Preserve stale-context protections and add runtime and browser regressions.

Co-authored-by: Copilot App <[email protected]>
Save independently encrypted chat credentials, preserve source grants across access-token expiry, and add confirmed chat disconnect without changing workflow access. Document the one-time reconnect migration and bump the application to 0.261.355.

Co-authored-by: Copilot App <[email protected]>
…igation

Fix V2 first-agent-message context race
Persist Microsoft 365 chat connections across sign-ins
Resolve placeholder inline source labels from exact message-scoped citation IDs, retain document citation metadata at React stream completion, and cover saved and streamed answers in both clients.

Co-authored-by: Copilot App <[email protected]>
Persist active status on creation and apply missing-only compatibility defaults to directory and membership response rows. Preserve explicit restrictions and saved visibility choices, add regression coverage, refresh storage contract evidence, and bump to 0.261.355.

Co-authored-by: Copilot App <[email protected]>
…estigation

Fix public workspace missing-status chat visibility
Keep action preflight bound to its send's own conversation adoption while rejecting genuinely stale contexts and preserving unsent drafts without replay. Add credential-safe connection context and UI correlation references without changing SQL authentication or retry policy.

Co-authored-by: Copilot App <[email protected]>
Provide authorized attachment identities and bounded spreadsheet schemas to planning, repair contradictory source-content questions, and fence native execution against changed source revisions. Add complete-source export, analysis, chart and clarification regressions and documentation for v0.261.355.

Co-authored-by: Copilot App <[email protected]>
Keep the incoming synchronous conversation subscription and delegate it to the full recovery context owner. Preserve fail-closed selected-agent creation cancellation, unsent draft restoration, and already-admitted background behavior. Align the overlapping regression with the approved preflight contract and advance the application to 0.261.356.

Co-authored-by: Copilot App <[email protected]>
Resolve the UUID factory through its module at context creation, cover post-import factory changes with a scoped regression, and retain Playwright fixtures through explicit module exports. Record validation and advance the application to 0.261.357.

Co-authored-by: Copilot App <[email protected]>
Preserve pytest's name-based fixture discovery while making shared fixture exports explicit to static analysis. Bump the application patch version and document the review follow-up.

Co-authored-by: Copilot App <[email protected]>
…estigation

Use matching filenames for untitled document citations
Merge origin/paullizer-react-v2-ui at d8dd6c1, preserving the selected-source planning changes and newer application version 0.261.356.

Validation: V2 production build, 111 focused regressions, 137 browser tests and zero-gap Cosmos inventory passed. The broader Python selection reproduced one existing M365 notification-fixture import failure with test and application dependencies identical to base; no tests were skipped or weakened.

Co-authored-by: Copilot App <[email protected]>
Fix V2 chat preflight ownership and extend safe SQL diagnostics
Merge origin/paullizer-react-v2-ui at 7ecd3bf. Retain the newer incoming application version 0.261.357 and align selected-source test/documentation headers without changing the feature's original implementation version.

Validation: 253 Python tests, 58 incoming browser tests, V2 production build, direct Node recovery-owner contracts, syntax/whitespace checks and zero-gap Cosmos inventory passed. Four broader new-chat fixture teardown errors were reproduced with all V2 source and UI tests identical to base; no assertions or tests were weakened.

Co-authored-by: Copilot App <[email protected]>
Supply the SDK-required backup intent through the shared Azure Files client and report credential-safe provider failures across connection tests, browsing, and sync. Add real-SDK regressions and document access semantics.

Co-authored-by: Copilot App <[email protected]>
Preserve both SQL and Azure Files diagnostic references and advance the application and Azure Files fix metadata to 0.261.358.

Co-authored-by: Copilot App <[email protected]>
…ation-investigation

Fix selected-source context across orchestration planning
Use the shared document citation pipeline to preserve evidence references through orchestration composition, persistence, and reload. Add backend and V2 browser regressions and bump the application to 0.261.356.

Co-authored-by: Copilot App <[email protected]>
Paul Lizer (paullizer) and others added 24 commits November 5, 2026 11:45
…ction

Fix Excel comment content and add scalable table-aware inspection
Route native Foundry models through their supported inference APIs while preserving discovery endpoints and Custom gateway contracts. Preconfigure canonical model identity from built-in selections, add MAI request and authentication compatibility, and cover mixed-model clients and metadata consumers.

Co-authored-by: Copilot App <[email protected]>
Integrate the latest base document-index, Excel inspection and conversation-menu changes while retaining automatic Foundry model routing. Combine release notes and tabular test metadata, and align the pending feature release at 0.261.410.

Co-authored-by: Copilot App <[email protected]>
…tions

Add automatic Foundry routing and Microsoft MAI support
Add guided follow-up questions and safe local-agent continuation
Align Analyze option contracts, retain selected sources through bounded plan correction, and add privacy-safe debug diagnostics while preserving Analyze and pre-plan inspection. Update documentation and application version to 0.261.411.

Co-authored-by: Copilot App <[email protected]>
Resolve the application version overlap at 0.261.413 and align recovery test/documentation headers. Preserve guided-question support and verify the combined document-planning and guided-input behavior.

Co-authored-by: Copilot App <[email protected]>
…failure

Fix picked-document orchestration planning and debug diagnostics
Keep pending attachments scoped to their original conversation, reject stale async updates and sends, and restore document filenames. Include regression coverage, documentation, and application version 0.261.411.

Co-authored-by: Copilot App <[email protected]>
Resolve the application version conflict at 0.261.414, preserve incoming guided-question support and document planning recovery, and synchronize the strict shared API fixture with current pending-question read contracts.

Co-authored-by: Copilot App <[email protected]>
…ment-isolation

Fix V2 attachment leakage between conversations
Persist accepted questions before planning, continue authorized Auto work server-side, and restore turn state after navigation or reload.

Fixes #1893

Co-authored-by: Copilot App <[email protected]>
Preserve guided questions, selected-document planning recovery, and conversation attachment isolation alongside durable planning. Reconcile runtime-backed SDK inventory reviews, align integration fixtures, and advance VERSION to 0.261.415.

Co-authored-by: Copilot App <[email protected]>
…ersistence

Fix lost orchestration turns after navigation and refresh
Keep end-user progress quiet, collapse answered questions, separate preparation from checking, and apply feedback-informed corrections. Preserve authorized image and native workbook evidence with safe retained-check recovery and regression coverage.

Co-authored-by: Copilot App <[email protected]>
…experience

Improve orchestration UX and semantic answer checking
Keep confirmed task progress distinct from transport uncertainty, resolve native annotation citations against retained authorized evidence, and correct the thought cleanup call contract. Add regression coverage and related documentation for version 0.261.417.

Co-authored-by: Copilot App <[email protected]>
Fix orchestration progress, workbook citations, and message cleanup
Stabilize application-owned review obligations, ground checking in the original message, and add narrowly scoped Auto recovery for checker errors. Preserve strict content, source-access and required-output gates, show truthful plan validation outcomes, and update coverage and documentation for version 0.261.417.

Co-authored-by: Copilot App <[email protected]>
Resolve the shared UI-test version header, retain upstream task/phase progress and native-citation changes, and align review recovery with application version 0.261.418. Verified 196 functional tests and 111 UI tests plus typecheck, builds, documentation and SDK inventory checks.

Co-authored-by: Copilot App <[email protected]>
…w-failure

Fix orchestration review contracts and context-only recovery
Preserve both branch histories and their fixes, resolve the integration conflicts, and validate the combined application at version 0.261.419.

Co-authored-by: Copilot App <[email protected]>

@github-advanced-security github-advanced-security AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CodeQL found more than 20 potential problems in the proposed changes. Check the Files changed tab for more details.

Preserve late admin conflict protection, rebuild recovery editor routes with encoded identifiers, and remove unused bindings. Add focused regression coverage and document the remaining broader validation gaps.

Co-authored-by: Copilot App <[email protected]>
Pin the frontend manifest to existing resolved versions and keep lockfile
changes limited to its root declarations. Represent screening joiners with
visible source escapes while retaining exact runtime values and coverage.
Add focused regressions and version 0.261.421 fix/release documentation.
Keep the mixed CodeQL findings and broader V2 validation gaps for human review.

Refs PR #1903.

Co-authored-by: Copilot App <[email protected]>
Correct the proven PR-introduced CodeQL side-effect cluster in one group-agent
contract module. Execute all HTTP requests before assertions while preserving
all 153 checks, request methods, arguments, and expected comparisons.
Add normal/optimized cold-process regressions covering 12 scenarios and
49 request/status checks per mode, plus version 0.261.422 documentation.
Preserve the published static-security and review-comment fixes.

Refs PR #1903 and CodeQL check run 128260505956.

Co-authored-by: Copilot App <[email protected]>
@paullizer
Paul Lizer (paullizer) merged commit 4dd6d80 into Development Nov 7, 2026
12 of 13 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