Skip to content

Fix canonical plugin discovery for document orchestration - #1906

Merged
Paul Lizer (paullizer) merged 1 commit into
paullizer-react-v2-uifrom
paullizer-orchestration-stability
Nov 8, 2026
Merged

Paul Lizer (paullizer) merged 1 commit into
paullizer-react-v2-uifrom
paullizer-orchestration-stability

Conversation

@paullizer

Copy link
Copy Markdown
Collaborator

Summary

  • Fix selected-document orchestration failing before its first native read: discovery created a second DocumentSearchPlugin class that the canonical reader safety check correctly rejected.
  • Reuse canonical package imports while preserving permissions, selected-source/revision checks, separate plugin instance configuration, cancellation, and existing recovery policy.
  • Preserve safe initialization, reader-identity, document-read, and missing-result failures in saved details and hashed telemetry. Replace the misleading loader shortcut with real discovery, cold/concurrent startup coverage, and the complete 81-extension indexed-text matrix.
  • Explicitly pin the existing PyMeta3==0.5.1 startup dependency, add the real-loader CI gate, and update documentation/release notes for 0.261.421.

The format matrix covers indexed-text retrieval, not native properties for every accepted upload type. Regenerated release pages preserve all 313 source releases. The repository's FFmpeg pin and pip configuration remain unchanged; the alternate-feed/exact-wheel selection was limited to a temporary local build context. No Azure deployment or live canary was performed.

Linked issue

N/A - the user explicitly requested no associated GitHub 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

Operational startup and support diagnostics only; no new admin controls or settings.

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: 0.261.420 -> 0.261.421. No files under deployers/ changed.

Testing / validation

Fresh PR preflight: passed, 52 tests (warnings emitted).

$env:PYTHONPATH = "$PWD\application\single_app;$PWD\functional_tests"
python -m pytest -q -p no:cacheprovider -p test_support.cosmos_network_guard --disable-warnings --tb=short .\functional_tests\test_plugin_discovery_identity.py .\functional_tests\test_orchestration_document_action_end_to_end.py .\functional_tests\test_orchestration_document_loader_reliability.py .\functional_tests\test_docs_app_surface_coverage.py .\functional_tests\test_docs_site_quality.py .\functional_tests\test_docs_release_notes_integrity.py

Earlier reviewed offline SDK gate: passed, 2,026 tests and 431 subtests.

python .\scripts\check_cosmos_response_boundaries.py --run-contracts

Manual packaged-runtime validation: passed, 101 existing cases, comprising the 38 real-loader/native HTTP/runtime cases and 63 real PDF/Word/PowerPoint/Excel extraction/evidence cases. The actual Linux image retained all 221 original production package versions; only four missing pinned test tools were installed in a disposable scratch user site. Fixtures were read-only, external networking was blocked, and all five raw implementation hashes matched the worktree. External model/storage I/O was isolated; this is not a live Azure canary.

Whitespace: passed.

git --no-pager diff --check
git --no-pager diff --cached --check

Live beta deployment and the six reported canaries remain unperformed pending separate authorization.

Documentation

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

Root cause, safe failure meanings, coverage limits, and rollout boundaries are documented in docs/explanation/fixes/ORCHESTRATION_PLUGIN_DISCOVERY_IDENTITY_FIX.md; the orchestration feature, Document Search, and logging references are updated.

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

Route/frontend items are N/A: no Flask routes, frontend settings plumbing, or browser assets changed. The reader identity and source-authority guards remain intact. Console archives, temporary build/tooling inputs, image artifacts, and local package-feed configuration are not committed.

Reuse canonical package imports so native document guards receive the same reader class as discovery. Preserve source isolation and recovery policy while adding safe action-stage failures and real-loader format/startup regressions. Pin the required template parser, add the CI gate, and update documentation and release pages for 0.261.421.

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