Skip to content

Use document access index across V2 discovery and search - #1890

Merged
Paul Lizer (paullizer) merged 2 commits into
paullizer-react-v2-uifrom
paullizer-v2-index-coverage
Nov 5, 2026
Merged

Paul Lizer (paullizer) merged 2 commits into
paullizer-react-v2-uifrom
paullizer-v2-index-coverage

Conversation

@paullizer

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

Copy link
Copy Markdown
Contributor

Summary

  • V2 discovery and search-cache setup still enumerated source containers even when the maintained document access index (DAI) could serve them. Build on the restored DAI-first source picker and extend indexed discovery to named group/public browsers and Assigned Knowledge, preserving scoped source fallback, current authorization, screening, and pending-publication checks.
  • Carry file size and legacy/XSD identity through the projection, qualify revision families by their owner, and remove the editor's 1,000-document display cap from runtime Assigned Knowledge resolution. Inventory responses disclose bounded display counts.
  • Read all-revision cache fingerprints from usable DAI partitions, skip fingerprinting when result caching is disabled, and check valid cache hits before repeated revision repair. Reuse existing generation invalidation rather than adding a new freshness/completeness system.
  • Orchestration planning and document-search execution already share this backend, so no separate DAI layer is added. Restore the Document Search action's missing service import and add real-owner/SDK regression coverage and documentation.

Linked issue

N/A. No GitHub issue was requested 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

Only the existing DAI maintenance/backfill workflow is affected; no new setting or container is introduced.

Should this become a Latest Feature card?

  • Yes
  • No
  • Already added

Screenshot needed for the card?

  • Yes
  • No
  • Attached

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 is 0.261.407, following the base branch's 0.261.406. The existing 0.261.404 source-menu fix is now in the base. This PR adds no deployer-file changes relative to that base.

Rollout: DAI projection schema advances to 4. Existing scoped source queries remain the fallback until the normal backfill/repair workflow makes the updated projection ready. Healthy empty index results are trusted; there is no full-source verification scan or rebuild-on-read.

Testing / validation

Network-blocked runs used the application and functional-test directories on PYTHONPATH, with the pinned tokenizer assets prepared as in the existing Cosmos CI workflow.

After synchronizing base 860c27c84:

  • python -m pytest -q --disable-warnings --tb=short -p test_support.cosmos_network_guard functional_tests\test_v2_document_index_coverage.py functional_tests\test_v2_document_source_selection.py functional_tests\test_v2_document_source_discovery_imports.py functional_tests\test_v2_document_source_runtime.py functional_tests\test_orchestration_context_picker.py functional_tests\test_orchestration_search_result_integrity.py - 95 passed.
  • python -m pytest -q --disable-warnings --tb=short -p test_support.cosmos_network_guard functional_tests\test_action_credentials_bootstrap.py functional_tests\test_stale_active_group_recovery.py functional_tests\test_m365_cosmos_sdk_contract.py::test_real_sdk_point_documents_are_wrapped_but_nested_json_and_query_rows_are_plain - 16 passed.
  • python .\scripts\check_cosmos_response_boundaries.py - 11 inherited base review errors remain across nine untouched owners in functions_settings.py and deployers/bicep/postconfig.py. The base itself already has 39 stale owner reviews. The combined chat module's 30 reviews were renewed after checking identical storage-function ASTs and point/query/batch consumers against both parents, preserving real-owner runtime evidence. The unrelated settings/postconfiguration reviews and missing runtime evidence were not repaired or exempted in this PR.
  • python .\functional_tests\test_docs_app_surface_coverage.py - 7/7 passed, including inventory freshness.
  • python .\functional_tests\test_docs_site_quality.py - 6/6 passed.

Original implementation validation, before base synchronization:

  • python -m pytest -q --disable-warnings --tb=short -p test_support.cosmos_network_guard functional_tests\test_v2_document_index_coverage.py functional_tests\test_cosmos_wave5a_document_access_read_switch.py functional_tests\test_cosmos_wave6_document_access_cache.py functional_tests\test_group_document_read_apis.py functional_tests\test_public_document_read_apis.py functional_tests\test_v2_document_source_selection.py functional_tests\test_v2_document_source_discovery_imports.py - 427 passed.
  • python -m pytest -q --disable-warnings --tb=short -p test_support.cosmos_network_guard functional_tests\test_orchestration_internal_analysis.py functional_tests\test_orchestration_retained_analysis_publication.py functional_tests\test_orchestration_search_result_integrity.py - 101 passed.
  • python -m pytest -q --disable-warnings --tb=short -p test_support.cosmos_network_guard functional_tests\test_orchestration_context_picker.py functional_tests\test_v2_chat_context_picker.py - 22 passed.
  • python .\scripts\check_cosmos_response_boundaries.py --run-contracts - 0 review gaps; 1,934 tests and 431 subtests passed, with 14 initial Analyze fixture setup errors. The missing get_cache_settings test seam was then corrected; all 14 cases pass in the clean 101-test follow-up above. The complete sweep was not rerun after that fixture-only correction.
  • git -c core.whitespace=blank-at-eol,blank-at-eof,space-before-tab,cr-at-eol --no-pager diff HEAD --check - passed, including after base synchronization.

A wider Analyze-fixture selection recorded 563 passed and seven unrelated failures. All seven reproduce on an isolated, unchanged b6c1c8acd snapshot: six saved-analysis report tests patch a removed token-limit helper, and one workflow retry test omits completeness_policy from its extracted namespace. Those pre-existing harness issues were not changed. Details and base-sync validation are recorded in docs/explanation/fixes/V2_DOCUMENT_ACCESS_INDEX_COVERAGE_FIX.md.

No live Azure RU or latency benchmark was performed.

Documentation

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

Release notes were offered but deferred without approval. The source-picker, group/public read and browsing, Assigned Knowledge, and fix documentation reflect the implemented behavior and rollout.

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 new Flask routes, settings exports, or browser assets are introduced. DAI is a discovery/read model, not an authorization grant; current scoped source hydration and final response checks remain in place.

Use maintained index candidates and revision fingerprints with scoped source fallback, preserve authorization, and fix metadata sorting, revision-family grouping, runtime inventory limits, and the Document Search service binding.

Co-authored-by: Copilot App <[email protected]>
Resolve application and test-header version collisions as 0.261.407, preserve upstream Web IQ and conversation-menu changes, and renew combined chat-module SDK reviews after checking both parent storage contracts. Document inherited base SDK inventory gaps without changing unrelated settings or deployment code.

Co-authored-by: Copilot App <[email protected]>
@paullizer
Paul Lizer (paullizer) merged commit 513be9d into paullizer-react-v2-ui Nov 5, 2026
11 of 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