Skip to content

Move saved analysis into Sources and fix empty-inventory warnings - #1909

Merged
Paul Lizer (paullizer) merged 1 commit into
microsoft:Developmentfrom
paullizer:paullizer-document-analysis-clutter
Nov 9, 2026
Merged

Paul Lizer (paullizer) merged 1 commit into
microsoft:Developmentfrom
paullizer:paullizer-document-analysis-clutter

Conversation

@paullizer

Copy link
Copy Markdown
Collaborator

Summary

  • Keep the answer and inline citations primary in classic and V2 chat. Saved Analyze cards previously created a second apparent verdict beneath the answer; complete findings, evidence, diagnostics, and follow-up selection now live in the existing Sources disclosure.
  • Treat verified complete empty native Word/Excel comment inventories as evidence of absence, not missing document evidence. Preserve actual annotation counts, partial/unavailable outcomes, and separate Search evidence gaps.
  • Preserve downloads and Plan details, keep Sources reachable for unavailable and zero-record results, retain stale-result explanations across disclosure changes, and prevent classic answer HTML from being mistaken for application-owned controls.

Historical saved warnings are not rewritten or dismissed based on citation presence. This changes presentation and retained-result status projection, not document extraction, authorization, storage, or source re-analysis.

Linked issue

N/A - no associated issue was created for this work.

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 were left unchanged pending maintainer confirmation. This is an existing-chat refinement, not a new Latest Feature 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 version: 0.261.423 -> 0.261.424. No deployer files changed.

Testing / validation

Python test commands used this repository-root import setup:

$env:PYTHONPATH = "$PWD\application\single_app;$PWD\functional_tests;$PWD"
  • python -m pytest .\functional_tests\test_orchestration_attachment_native_evidence.py .\functional_tests\test_orchestration_search_citations.py .\functional_tests\test_evidence_status.py -q --tb=short --junitxml=.\ui_tests\artifacts\saved-analysis\functional-results.xml - 116 passed.
  • python -m pytest .\ui_tests\test_chat_saved_analysis.py .\ui_tests\test_v2_evidence_status.py -q --tb=short --junitxml=.\ui_tests\artifacts\saved-analysis\ui-results.xml - 96 passed. The final classic-specific DOM ownership correction was subsequently covered by the rerun below; V2 and evidence rendering were unchanged.
  • python -m pytest .\ui_tests\test_chat_saved_analysis.py -k classic -q --tb=short --junitxml=.\ui_tests\artifacts\saved-analysis\classic-final-results.xml - 39 passed, including the additional answer-HTML ownership regression.
  • npm --prefix .\application\v2_ui run typecheck - passed.
  • npm --prefix .\application\v2_ui run build - passed.
  • npm --prefix .\application\v2_ui run build -- --outDir ..\..\ui_tests\artifacts\saved-analysis - passed.
  • node --check .\application\single_app\static\js\chat\chat-analysis-results.js and node --check .\application\single_app\static\js\chat\chat-messages.js - both passed after the final classic correction.
  • python .\functional_tests\test_docs_app_surface_coverage.py - 7/7 checks passed; the regenerated inventory was semantically unchanged.
  • python .\functional_tests\test_docs_site_quality.py - 6/6 checks passed.
  • python .\scripts\check_cosmos_response_boundaries.py - passed, zero review gaps.
  • git -c core.whitespace=blank-at-eol,blank-at-eof,space-before-tab,cr-at-eol --no-pager diff --check - passed.

The repository XSS scanner's inspect_file was also run on the actual uncommitted added-line ranges: 10 application files, zero findings. Browser fixture inspection covered desktop/mobile, light/dark, keyboard access, lazy pagination/evidence, stream/history reload, masking, and cancellation. Full-file design-detector matches were reviewed as unchanged typing-dot animation and guarded dynamic-image/comment matches; no unrelated styling or suppressions were added.

Validation uses the real retained-result readers and chat components with deterministic external transport. The signed-in live conversation and original file could not be independently inspected; this is not live Azure/model qualification.

Documentation

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

Updated the Analyze guide, chat-controls reference, saved-analysis feature documentation, and evidence-status documentation. Added docs/explanation/fixes/CHAT_ANALYSIS_PRESENTATION_AND_EVIDENCE_FIX.md with root cause, compatibility boundaries, and validation results. Release notes remain deferred as noted above.

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 first two checks are N/A: no Flask routes or settings serialization were added or changed. Existing source/conversation authorization and retained-result integrity checks remain enforced. Test screenshots, reports, build outputs, and session artifacts are not committed.

Move saved analysis browsing out of classic and V2 answers while preserving evidence, follow-up actions, and genuine limitations. Use retained native coverage to distinguish complete empty comment inventories from missing evidence.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@paullizer
Paul Lizer (paullizer) merged commit 0245fc6 into microsoft:Development Nov 9, 2026
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.

1 participant