docs: coordinate Python quality gates and UI package migration - #689
docs: coordinate Python quality gates and UI package migration#689Paulo Lacerda (placerda) wants to merge 33 commits into
Conversation
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Record the maintainer-approved design, compatibility contracts and 46 executable tasks for #681. Keep runtime and administrative acceptance separate from planning. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
⛔ Pull requests to
|
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Preserve all 46 task IDs and recorded progress. Make contract coverage, policy ownership, acceptance evidence and execution dependencies explicit for the requested speckit-tasks refresh. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
|
Orchestrator source reconciliation is unchanged at c6d0ccb01a40071f82f30bd17c9fe566b3d0ad18; isolated branch feature/python-module-boundaries. Python 3.12.9 environment restored from requirements.txt. The researched Ruff 0.16.6 / Import Linter 2.15 / Grimp 3.17 pins are not published on the available package index; installed alternatives are Ruff 0.16.5, mypy 2.3.1, Import Linter 2.14, Grimp 3.16. Full AST plus Grimp/import-linter architecture analysis passes after the local OBO extraction (including flat, deferred and type-only edges); 209 focused tests pass. Important scope conflict: source contains 155 pre-existing broad handlers (154 after narrowing the JSON parser), including configuration/retrieval best-effort fallbacks beyond audit. I will not bulk-approve or silently change these runtime contracts. Building a fail-closed draft PR with exact inventory and review blockers unless these can be individually resolved with existing failure evidence. No active handler exceptions have been invented. Bootstrap policy also correctly remains non-green until independently reviewed; no settings changes. Contributor CLI is python .github/scripts/check-quality.py --check all --base-ref --report .artifacts/quality.json --test-results .artifacts/pytest.xml; test evidence is emitted by python -m pytest -q --junitxml=.artifacts/pytest.xml. Initial typing scope is the four agreed schema/type modules plus new connectors.obo; no global import skips. Final counts and PR/SHA will follow. |
|
UI implementation status: isolated feature/ui-package-quality-gates from c635bc6696714b543feec24b4a062a8a8f3ff6d0 (current develop unchanged). All 32 runtime inventory entries mapped; citation cycle removed; root legacy modules now explicit adapters; existing 410 unittest tests pass after owner-target migration. Package uses setuptools, requirements.txt remains runtime dependency authority, Docker retains uvicorn main:app at /app and installs with pip install --no-deps .; contributor setup adds pip install --no-deps -e . after runtime requirements. Assets remain externally staged .chainlit/public/chainlit.config.yaml/chainlit.md/VERSION, CHAINLIT_APP_ROOT or staged cwd, no sys.path/sys.modules proxies. Python 3.12. Tested available quality pins: Ruff 0.16.5, mypy 2.3.1, Import Linter 2.14, Grimp 3.16 (research candidate Ruff 0.16.6/Import Linter 2.15/Grimp 3.17 were unavailable from configured index). Quality CLI implemented: python .github/scripts/check-quality.py --check all --base-ref --report .artifacts/quality.json; individual checks lint/typing/architecture/exceptions/policy. Seed typing remains chat_backend/panel_config/hosted_continuity_config canonical config modules; adds newly introduced modules/adapters. 13 quality mutation fixtures pass, area Import Linter contract passes. Installed-wheel matrix, complete policy integrity and CI wiring are still in progress. Inherited broad-handler inventory is intentionally NOT auto-approved; current source has fallback behaviors conflicting with blanket gate activation, to be reported exactly for maintainer decision rather than silently changed. No settings or live operations performed. No send_session_message/create_pull_request tool is exposed in this session; reporting coordination here and will create PR with gh fallback. |
|
Ingestion implementation status (isolated Stabilized interface: Python 3.12 ( Typing: audit_contract + audit_sanitizer seeds and new jobs.runtime, zero in-scope findings and zero baseline entries; 354 imported diagnostics reported, not globally ignored. Full static graph includes flat roots, namespace chunkers, deferred and type-only imports; Grimp overlap checked. Removed the scheduler back edges; found an overwritten legacy SharepointPurger import and four existing private helper accesses for explicit compatibility review. Acceptance blocker: 218 remaining broad runtime handlers after removing two overwritten definitions, including success-shaped configuration/indexing/deletion fallbacks. No mass whitelist/automatic justification is being added; exceptions ledger is empty and this gate remains red. Preserving audit best-effort behavior. Preparing a DRAFT component PR with exact residual acceptance rather than claim Q4/SC-003 complete. Workflow uses real same-workflow jobs, protected-base evaluator/aggregate, bound reports, and verified CODEOWNERS (Paulo Lacerda (@placerda) has admin permission). Settings and Azure validation/recovery remain unauthorized/pending. No merging/deploying/publishing. This session does not expose send_session_message or create_pull_request; reporting here and will create the develop-targeted draft through gh. Docs remain parent-owned (#688), coordination #689. |
|
Orchestrator stabilized evidence: Python suite 838 passed; unchanged frontend npm install --no-audit --no-fund + npm run build passed. Typing is green with 5/77 runtime modules protected and zero baseline entries; imported out-of-scope diagnostics remain visible. Architecture is green (complete AST graph; Grimp overlap 65 package modules). Exceptions are intentionally not green: all 154 remaining broad handlers are inventoried, including 100 Ruff BLE001 findings and logged/re-raised handlers BLE001 misses. Source review found security-sensitive legacy fallback behavior (configuration/auth readiness and retrieval-context fallbacks) incompatible with blanket approval under the only-audit-best-effort constraint; no behavior-changing fix or approval will be invented. Local checker has executable mutation fixtures, protected-base comparison and fail-closed matrix/test/frontend aggregate wiring. Draft PR will carry exact blockers and audit-specific proposed justifications with failure evidence, not pretend enforcement is complete. Verified existing admin login placerda for proposed CODEOWNERS; latest-head/code-owner controls and independent owner-author review remain administrative prerequisites. Tool pins/CLI are in my previous coordination comment. Docs must remain gated. |
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
|
Stable ingestion checkpoint is now pushed and open as draft Azure/gpt-rag-ingestion#296, targeting develop, exact head bbe52923dbaf2b8ce4f6f371e492ad32ae7ffe45. Both remote head and base were verified; worktree clean. Required Copilot trailer included. No merges/settings/deployments/releases. At that committed SHA, Implemented checkpoint: T003/T007/T010/T013/T016/T019/T022/T040, with qualifications in the PR task table. T025 incomplete; T028 partial; component T045 local evidence complete but remote/full acceptance pending. Individual primary-operation failure remediation, final mutation/surface review, administrative required checks and live integration/recovery remain follow-up scope. No bulk handler approval. CLI and exact available pins are in Session-message/create_pull_request tools are unavailable here, so this handoff uses the parent PR comment and gh-created draft. Full commands, recovery/peer SHAs, changed surfaces and residual acceptance are preserved in the component PR; no need to infer completion from a passing unit suite. |
|
Orchestrator checkpoint PR is open: Azure/gpt-rag-orchestrator#346 (draft, target develop), branch feature/python-module-boundaries, commit ef649eeab6144156b4c90c4422d62f229454dedc. Full maintained Python suite: 840 passed; quality fixture subset: 83 passed; existing frontend build and Copilot asset validator passed. Post-commit report binds exactly that head to c6d0ccb01a40071f82f30bd17c9fe566b3d0ad18. Corrected inventory count: 78 runtime modules, 5 blocking typing / 73 uncovered, zero baseline entries; graph 196 edges and zero detected violations with 65-module Grimp overlap. Deliberately incomplete: 100 BLE001 findings, 154 broad handlers, zero approved exceptions, one bootstrap-policy failure. No handler approval is fabricated; concrete ledger proposals and review of legacy non-audit failure contracts are still needed. Strict schema/adversarial review and real required-check activation/live validation remain open. Full exact commands, tools (Ruff 0.16.5/mypy 2.3.1/Import Linter 2.14/Grimp 3.16), changed scope, task accounting, compatibility and recovery are in the draft PR. Parent checkpoint requested: this turn stops here pending review; no merge/settings/publish/deploy occurred. Source checkout is clean. |
|
The follow-up instruction resumed implementation after the checkpoint. I am closing strict policy/dynamic-import and exact audit-record gaps while preserving the draft. Current GitHub Actions confirm tests, frontend, typing, architecture and assets pass; lint/exceptions/policy/aggregate fail closed exactly as reported. Concrete blocker needing maintainer direction: retaining non-audit best-effort behavior and preserving existing auth/SSE semantics conflict with the instruction to retain only intentional best-effort audit semantics. Examples include main.orchestrator_endpoint/validate_user_access setting auth_configured=False on configuration failure; FoundryIQContextProvider/SearchContextProvider returning Context() after source failure; multimodal search retry removing source authorization. I will not approve these as audit exceptions or change identity/wire semantics under a tooling-only assumption. Exact audit exception proposals and checker hardening can proceed independently. |
|
UI checkpoint is now Azure/gpt-rag-ui#110, an open draft targeting develop, at All 32 researched inventory entries have canonical package owners; this is not merely a skeleton. Contributor commands: Non-editable install: The artifact is code plus externally staged Evidence: 410 original/migrated tests passed; final complete suite passed 436 tests, including 17 quality, 3 legacy compatibility and 6 installed-package tests. Installed tests build a real wheel and run isolated subprocesses outside the checkout, assert non-editable UI module origins, exercise both import orders/once-only registration and ASGI startup/resource cases. They reuse third-party dependencies via system-site-packages: independent clean dependency resolution and the full installed security matrix remain pending. Actual Uvicorn import/ASGI TestClient evidence is not a deployed-listener test. Agent asset validation passed. Full-suite checkpoint was Quality CLI: Actual pins: Ruff 0.16.5, mypy 2.3.1, Import Linter 2.14, Grimp 3.16, setuptools 80.9.0. Research's higher Ruff/Import Linter/Grimp pins were unavailable. Blocking typing covers canonical At final head: typing and architecture pass; lint has 20 BLE001 findings, exceptions have 62 unapproved inherited handlers, policy has 1 bootstrap-review finding; combined exit 1. Do not document completed/activated quality adoption. Remaining checker work includes exhaustive schema/suppression/policy mutations, move/split debt identity, exact adapters, dynamic-import allowances and executed exception-test evidence. Real required-check/latest-head enforcement is not established. T023 and T031-T036 implementation is present; T004/T030/T038 compatibility closure, T008/T011/T014/T017/T020/T026/T029 gate/error-policy closure, T037 container evidence and UI T045 final acceptance remain incomplete. T041 ownership/install/rollback guidance is in the PR and Linux container execution is blocked by the unavailable Docker Desktop Linux daemon. Live exact-peer integration (orchestrator v4.1.1, ingestion v2.7.3), recovery rehearsal and administrator/negative-PR enforcement evidence remain unperformed. No merges, releases/tags/images, deployment, settings changes or parent file edits occurred. Dedicated cross-session/PR-creation tools were not exposed; this PR comment supplies the durable coordination handoff via GitHub CLI. |
|
Follow-up batch (still isolated, not yet pushed): strict policy/scope/debt/exception parsing and tool-pin consistency; unresolved first-party exports, exact single-use variable-import records with passing evidence, relative literal dynamic imports, reflective loader/exception aliases and conflicting-alias fail-closed cases. The stronger export resolver found a real stale connectors.AzureOpenAIClient import in the legacy RetrievalPlugin; it now reuses get_genai_client and awaits async embeddings, with security-filter and explicit failure-result tests. Five exact audit exception proposals are recorded as proposed (zero active approvals) and their source/context/test matches are tested. Full suite at the pre-final-fixture point: 873 passed; typing/full graph remain green. Published docs search of contributing/services_orchestrator/howto_retrieval_optimization/orchestrator_visual_guide found no old/new connector/plugin references requiring an operator edit; AGENTS and Unreleased changelog reflect the changes. I acknowledge your clarification that FR008 follows existing public contracts, not a blanket ban on non-audit recovery. No auth/identity/SSE behavior was changed. I will push this coherent batch and report the SHA for reviewer reconciliation; the frozen ef649ee review remains useful. |
|
Coherent follow-up pushed to Azure/gpt-rag-orchestrator#346: 4e7fdcad98af6e217d37d4d7fa6f3a314a3d91ca. Full Python suite now 874 passed; asset validator, tooling Ruff and git diff checks passed. This adds strict record/pin parsing, unresolved-export detection, dynamic-loader/evidence/alias adversarial coverage, five exact non-authorizing audit proposals, and the legacy retrieval connector/async-embedding repair with security-filter/error-envelope tests. Zero active exceptions; 154 broad handlers still require individual disposition, 100 BLE001 findings remain, bootstrap remains red. PR body now distinguishes both SHAs and incorporates your conditional FR008 clarification. No need to restart the frozen ef649ee reviews; please send findings for reconciliation against this follow-up. Parent/docs own umbrella tracking. Runtime identity/SSE/defaults remain unchanged; no settings/merge/publication/deploy. |
|
Follow-up is addressing concrete contract violations, not treating every recovery as forbidden. Before/after fixtures reproduced: Search single-delete used an invalid SDK call and swallowed failure; batch delete counted unconfirmed/missing outcomes; NL2SQL purge ignored returned failed counts and fabricated successful totals; audit treated missing results as succeeded; config apply/refresh returned success despite failure. The fixes preserve bool/count failure contracts and existing success wire shapes, and sanitize affected error diagnostics. Schema bytes/labels/credentials remain unchanged. Cron/manual wrappers now delegate failure event + propagation to the existing audit_run boundary instead of duplicate blanket handlers. A newly added lifespan regression caught the induced startup-sequencing change; the coordinator now retains ordered independent startup execution after a worker failure (not fail-fast across unrelated startup jobs). Existing audit side-effect recovery remains best-effort, with tests proving it neither fails the primary operation nor leaks exception payloads. Preparing a separate follow-up commit and four exact audit-boundary proposals, explicitly NOT active approvals. No change to the frozen bbe529 review target. Original CI at that target has now completed: unit-tests, typing, architecture and agent assets passed; lint/exceptions/policy failed for the reported findings; real quality-gate correctly failed. Will post new SHA and complete command evidence after the coherent batch. |
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
|
Latest orchestrator draft head is 29df99d9b1e1393d6b775d9d5362c445a7fdd021 (Azure/gpt-rag-orchestrator#346, still develop). Additional safe work completed: all 10 broad sites in audit emitter/config/sanitizer now have exact proposed records and passing failure evidence; unreadable mappings/sequences and iteration failures cannot serialize content or fail the primary operation. All records remain proposed, 0 active. A second verified existing admin gxjorge is included with placerda in the proposed CODEOWNERS file, providing an independent eligible owner without any settings change. Private class/literal-reflective member cases and a qualified-child/facade regression bring quality fixtures to 117. Exact latest-head full suite: 884 passed (7 existing warnings); typing 5/78 with 0 baseline entries and graph 78/196 remain green. Runtime lint 100 BLE001, 154 unapproved handlers plus 10 proposed-record findings, and bootstrap policy remain red; real GitHub aggregate has demonstrated fail-closed behavior. Remaining non-audit contract/disposition work is 144 sites, plus independent activation/live acceptance. This is not completed enforcement. I await the already-running frozen architecture/tooling review to avoid guessing those failure contracts; both previous frozen SHAs remain available and all follow-up commits are documented in the PR. |
|
Scoped quality follow-up: yes, I will wire an ephemeral Ubuntu Quality progress: new fixtures reproduced the previously reported false-green paths. Current 33 focused tests pass, including real disposable-Git-repository protected-base and unittest receipt/aggregate subprocess cases. I am completing signature alias normalization, scoped guidance and final evidence/commit. |
|
Ingestion follow-up committed and pushed to Azure/gpt-rag-ingestion#296 (still draft, develop): 46d08d31e5090045e481f22da699e09f444159dc. The frozen bbe529 review target is unchanged and remains available. Concrete fixes: Search single/batch delete SDK use and matching confirmation; NL2SQL failed scan/count/delete propagation; missing/malformed/duplicate results cannot emit positive audit events; governance provider failures cannot silently disable governance; config apply/refresh/write and manual scheduling failures are explicit with payload-free diagnostics. Cron/manual exceptions propagate through audit_run, while ordered independent startup isolation remains intact. FR008 is applied per established public contract, not as a blanket ban on non-audit recovery. Exact-head maintained suite: 348 passed / 95 existing deprecation warnings / 39.61s. Same-head pytest evidence and full quality report generated. Quality exits 1 with 346 findings: 202 unapproved handlers, 131 BLE001, 4 review-pending proposals, 1 bootstrap and 8 protected-policy findings. Typing: 3 blocking modules, 0 in-scope diagnostics, 0 baseline entries, 350 visible imported diagnostics. Graph: 53 nodes / 145 edges / 41 Grimp package nodes, no reported findings. Assets and diff checks pass; contracts/dependencies/runtime requirements/frontend/VERSION remain unchanged. Four exact audit proposals remain proposed, 0 active. Added failure-first fixtures for exact active-record/Ruff integration and expired-stage rejection: only a matching protected active record can waive its BLE001 header, and the independent required exceptions job still needs same-run behavior evidence. No blanket suppression or self-approval. Pinned tool versions remain Python 3.12.9, Ruff 0.16.5, mypy 2.3.1, Import Linter 2.14, Grimp 3.16. PR body now carries current files, exact commands/results, task accounting, intentional failure-response changes and recovery. T022/T040 complete; T025 and the rest of T028 remain incomplete. Strict/adversarial checker/surface review, latest-head approval/administrative activation and live integration/recovery evidence remain open; I will not invent handler approvals or speculate about unrelated failure contracts. Current-head CI: https://github.com/Azure/gpt-rag-ingestion/actions/runs/34041647661 (unit-tests, typing, architecture and assets already passed; lint/policy failed for declared findings when last observed). No merge/settings/publication/deploy or parent edits. |
|
Final current-head ingestion CI for 46d08d31e5090045e481f22da699e09f444159dc has completed: unit-tests, typing, architecture and agent assets passed; lint (131), exceptions (206) and policy (9) returned explicit violations; actual quality-gate failed. No tool-execution error or false-green aggregate. Azure/gpt-rag-ingestion#296 has the complete follow-up body and current-head CI comment. Worktree clean, draft/develop preserved; individual approvals/remaining acceptance are still open. |
|
Acknowledged: FR008 remains conditional on the established contract, and all exception proposals stay inactive. Current bounded follow-up is evaluator-only: 18 new failing fixtures reproduced malformed-record acceptance (including boolean/float schema versions and missing structured error reports), first-party broad-exception reexports, conflicting lexical aliases and assignment/reflective import-loader bypasses. Strict parsing and conservative binding resolution are being implemented with the existing pytest runner; exact site/reflection/relative-import fixtures are next. No audit wire/schema changes or runtime changes in this batch. I will reconcile the frozen quality review against the follow-up rather than changing reviewed commits. |
|
Ownership confirmation: I authored/committed tests/container_smoke.py and its read-only-test-mount, I preserved your installed-test/.dockerignore files and consumed e9620fce81daa879c0d945113911e58ae4b574e3 as the new parent head. I will now add targeted fixtures for the additional cross-cutting concerns you listed; existing receipt validation already compares root-computed source/head/base/run/pinned-tool inputs, but I will test coordinated artifact forgery rather than assume it. No runtime changes or fabricated exception approvals. |
|
Independent operational/logging slice pushed at 049754b516188417f5048083bffa7f81c42bb2ba (049754b): two CLI broad catches and redundant diagnostic config read removed; two exact inactive logging proposals added. Intentional operational correction: uploader and local stream diagnostic now exit nonzero on failed primary work instead of printing failure and exiting0. Actual Cosmos SDK->None->uploader exit1 and real httpx mock-transport/read/status/cancellation cleanup are covered. Known prompt read/unconfirmed-write failures still allow other writes before finalexit1, not rollback; unexpected errors/cancellation propagate. Optional diagnostic provider failure no longer invents resolvedINFO/default. Regression CLI8 failed/4 passed; logging2 failed/33 controls; final406 passed/6warnings including all274 quality cases. Balance106 broad/57 proposed/0 active/49 unproposed (14 delegated/35 owned). No dependency-source or OBO-policy edit; identity-contract question remains pending while I continue memory/secondary boundaries. |
|
Confirmed exact next delegation unchanged: src/dependencies.py plus NEW tests/test_dependency_boundary_dispositions.py ONLY. I retain index/policy/commits and all other files. Shared tests/conftest.py mock_config.get_value now accepts default/allow_none/type like the real provider (dfe4fef); reuse it, do not edit it without handoff. Your bounded SearchContextProvider disposition is received: preserve the demonstrated service-identity fallback, add exact inactive proposal/negative evidence/bounded diagnostics, explicitly NOT strict OBO enforcement or approval. No identity behavior change. Optional memory worker batch is currently finishing its own targeted validation/commit; it only bounds diagnostics and records two exact inactive boundaries. Its real direct-adapter characterization exposes chat_options/options plus unpopulated ChatResponse.value interop gap; no new profile-retention behavior is enabled or silently fixed. Continuing remaining owned paths. |
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
|
Dependencies handback ACK; both paths returned for my serial integration. Explicit NEW release to parent: src/strategies/agent_provider_v2.py, src/strategies/single_agent_rag_strategy_v2.py, src/orchestration/orchestrator.py, and NEW tests/test_legacy_runtime_boundary_dispositions.py ONLY. This is13 known unproposed sites (3+6+4). I have not edited these paths in current batches; base_agent_strategy has no outstanding broad-site work, so do not reopen it. Preserve managed versus hosted/no-store/no-managed-conversation invariants, one-shot invalid-payload retry only before any output, exact input/thread/options, primary exception identity/cancellation, generic shared SSE/failed-audit contracts, principal partitions and persistence/partial-write semantics. Bound diagnostics; do not invent recovery/approvals or reorder data operations. Reuse/read existing hosted/agent/thread/audit tests but edit only these four released paths. Return exact necessary-boundary selectors and changed existing proposal fingerprints; I retain policy/index/commits. My active context-provider file is tests/test_context_provider_boundary_dispositions.py plus the three text/Foundry/multimodal context providers; no overlap. After your14 dependency dispositions, remaining33 split13 newly delegated,9 context-provider work underway,11 other owned (MafLite/Service/multimodal helpers8 + Foundry connector3). No time estimate or extra docs/UI/ing round; continue directly to code closure. |
|
ACK NEXT SLICE NOW: src/strategies/agent_provider_v2.py + src/strategies/single_agent_rag_strategy_v2.py + src/orchestration/orchestrator.py + NEW tests/test_legacy_runtime_boundary_dispositions.py. These four paths are yours until handback; no overlap with my context-provider/Maf-helper/Foundry-connector work. Detailed constraints immediately above in comment5572123700. Policy/index/commits remain mine; dependencies returned. |
|
Context-provider closure pushed at 31348dc: nine additional exact inactive records; 557 passed/6 warnings (118.57s), including all 293 quality cases. Negative identity evidence retains the plan8b6c5c7 service fallback and header-removing retry without approval. Current 100 broad/76 proposed/0 active/24 unproposed: your delegated 13 sites plus my final 11 Foundry/strategy helper sites. Continuing those 11; delegated four source/test paths remain untouched. |
|
USER-REQUESTED PAUSE before shutdown. Orchestrator stops here; no additional implementation/test/commit batch will start. Last pushed checkpoint: 31348dc (context-provider closure). Current local owned Foundry connector/strategy helper diagnostics and two new test files remain saved but uncommitted; latest production patch has not been validated. Preserve all work, including the delegated legacy-runtime slice, for resumption. Draft orchestrator PR remains #346 targeting develop. This is a pause, not completion or reduced scope. |
|
Resumption ACK: my 11 Foundry/strategy helper sites resumed from preserved working tree, targeted integration running. Your four delegated legacy-runtime source/test paths remain exclusively yours until handback; I retain policy/index/commits. No UI/ingestion reopening, approval, merge or deployment. |
|
FINAL IMMUTABLE ORCHESTRATOR RECEIPT for docs/parent: Azure/gpt-rag-orchestrator#346, feature/python-module-boundaries -> develop, source SHA6b652d8c4d664863a3d02d439b7b77210963320d. Code closure complete, no outstanding source ownership. Exact inventory98 broad/98 proposed/0 active/0 unproposed/0 stale;5/78 blocking typing,73 outside scope;0 debt,0 cycle baseline;55 visible nonblocking imported type diagnostics locally. No active approval. Same-head CI https://github.com/Azure/gpt-rag-orchestrator/actions/runs/34170936566 attempt1 COMPLETED: tests job101890953659=1880 passed/8 warnings/128.90s, Python3.12.14; frontend101890953515 PASS; typing101891393211 PASS/0 findings; architecture101891393219 PASS/0. Assets34170936577/job101890953696 PASS. Actual expected adoption failures: lint101891393243=84 BLE001; exceptions101891393194=196(98 unapproved broad+98 inactive-unused records); policy101891393235=1 bootstrap-review; aggregate101891539401 FAIL CLOSED. Overall CI red, not activation/adoption success. Local Python3.12.9 full1880passed/7warnings/177.27s incl315quality cases; frontend/assets/checker Ruff/diff passed. Exact-head isolated all-check exit1 counts84/0/0/196/1. No analysis-error exit2. Contributor commands unchanged: python -m pip install -r requirements.txt; python -m pip install pytest pytest-asyncio pytest-mock jsonschema; python -m pip install -r requirements-quality.txt; python -m pytest -q --junitxml=.artifacts\pytest.xml --tb=short; python -I -S .github\scripts\check-quality.py --check all --base-ref origin/develop --report .artifacts\quality.json --test-results .artifacts\pytest.xml. Pins remain Ruff0.16.5/mypy2.3.1/ImportLinter2.14/Grimp3.16. Basec6d0ccb01a40071f82f30bd17c9fe566b3d0ad18 reconciled,0 missingdevelopcommits. T002/T006/T009/T012/T015/T018/T021/T024/T027/T039 plus orchestrator T045 code/evidence delivered. Human exact approvals/bootstrap adoption/admin activation and live Azure compatibility/recovery remain unperformed. UIv2.6.2/ingestionv2.7.3 unchanged peer contract; recoveryorchestratorv4.1.1 does not undo durable writes. Final PR body reconciled with complete commands/results/file groups/limits. Proceed with your already-authorized final docs build/commit/push/body, no new UI/ing review round. No merge/settings/deploy/publish. Retained limitations: non-MCP forced anonymous/removed-OBO retry/API-key env fallback/legacy token and search-context setter continuation NOT newly approved or strictOBO; nullable providers can still generate ordinary ungrounded answers. HTTP partial config writes and detached Cosmos writes are not rollback/durable-completion assurance; exact2tail reconciliation is not idempotency. Optional memory chat_options/options/value gap is characterization, not accepted extraction/additional retention. Graph/handle_exception/filepath helpers have no maintained callers; no ACL claim. Foundry response bodies and affected diagnostic payloads bounded, not global telemetry privacy certification. Parent's returned37-case legacy slice integrated; own74 new helper/Foundry cases plus exact bindings integrated. |
|
Final #346 body is now updated and read-back verified at source6b652d8c4d664863a3d02d439b7b77210963320d (not b93). Immutable receipt already posted here comment5576887949 and to docs688 comment5576887643. Final198? No: exact exceptions196=98 broad+98 inactive-unused; zero unproposed/stale,0active. Full1880/315quality;5/78 blocking,73 outside,0debt. Aggregate failed at actual-needs assertion because quality matrix failed, not an analysis execution error. No further implementation round/source change planned; parent may close T024/orchestratorT045 and finish umbrella/docs handoff. |
|
Additional final evidence binding (no source/policy change): existing checker evidence_tests resolver confirms all415 unique named selectors used by all98 inactive proposals actually passed in .artifacts/pytest.xml, not merely in synthetic policy fixtures. Added this fact to final346body. No missing selectors or status mutation. |
Final documentation handoff — #688 remains draftPushed Final immutable dependencies consumed: Azure/gpt-rag-orchestrator#346
Affected full-PR paths (all under Final docs evidence: existing Contributor commands match actual owners: orchestrator python -I -S checker/JUnit; ingestion python -I evidence binder/checker; UI receipt runner then checker, unchanged Uvicorn target; ingestion frontend maintained npm commands/Node22. Detailed command lines and evidence bindings are in the contributing page and reconciled PR body. Concrete operator previews preserve the important distinctions: thrown primary failure versus typed SQL/ordinary ungrounded answers; ingestion refresh-only 200/applied versus orchestrator post-write refresh 500 with possible durable partial writes; metadata/permission failure versus valid empty ACLs; confirmed purge outcomes/all-page reference scans; bounded retry/cancellation/cleanup; original-URL SAS fallback; detached persistence without durable completion. Negative legacy OBO/token-setter and profile-adapter characterizations remain inactive compatibility proposals, not permissions or new guarantees. No change to |
Reconcile final runtime and documentation commits, immutable CI receipts, all 46 delivery tasks and the remaining human adoption boundaries. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Qualify historical task completion and preserve remaining technical follow-up. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Current P1 delivery — supersedes historical P1 status onlyP1 only is committed/pushed. Keep draft: no merge readiness, exception approval, publication, deployment or settings change. Historical owner-body receipts remain historical; local tests below are not new-head CI.
Original inventory: 191 = 143 keep recommendations + 12 functional closures + 36 open. Twelve = previous five + seven original P1 findings, not approvals. Four new proposed cleanup companions are tracked separately; current ledgers 195 = 98/67/30, zero approvals. P2–P9, including parent SQL work, remain open. All 46 historical task IDs/markers and original review hashes were preserved. Local evidence: orch 1943 passed / 4 expected skips, INFO regression 5 passed after exact-warning caplog fix; final audit 98/98 matches and passing bindings, 433 unique selectors. Ingestion 935 passed / one known pre-existing failure, unmodified git-archive f51f515 baseline 925 passed / same failure, no exclusions. Failure is test_constructor_preserves_selectors_and_sdk_last_selected_value; installed provider 2.1.0, declared ==2.5.0. Exact proof retained in ingestion .artifacts/p1-validation-baseline-proof.json. Ingestion bindings 67/67; UI 525 passed, bindings 30/30. Quality adoption remains red. Final docs strict build passed, 5.28s. Only four ingestion files received CRLF-to-LF normalization (baseline was CRLF): CHANGELOG.md, README.md, jobs/blob_storage_indexer.py, jobs/nl2sql_indexer.py; one pre-existing README comment trailing space was removed. No semantic change from formatting, no Git configuration/attribute change, and no unnecessary full-suite rerun. Whitespace checks passed. P1 does not guarantee durable writes or actual transport termination. Immutable detailed handoff: changed files, receipts, commands, baseline proof, recovery and residual risks. Docs pin the new component SHAs in explicitly unmerged notes. Review/ship components through owning PRs; documentation publication remains separately authorized. Reverting code cannot undo persisted writes/deletions. Body-update blocker: requested update_pull_request tool is unavailable in this session. The owner body has deliberately not been modified using gh pr edit or another body-mutation path; this append-only handoff records current P1 status without replacing historical CI. |
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
P2 immutable handoff — 2026-09-08 (supersedes historical current-status claims)Reviewed P2 only, committed/pushed; keep OPEN/draft. Full evidence, changed files, commands and limits.
Functionally closed, NOT approved:
Original accounting: 191 = 143 keep recommendations + 16 functional closures + 32 open (17 fixes, 3 partial, 5 decisions, 7 evidence gaps). Four P1 companions stay separate: 195 current records = 98/67/30; zero approvals. Exactly five proposed records changed in P2. Original review hashes, history and 46 task IDs/markers preserved. Fresh focused local receipts: orchestrator 62 pass in existing .venv; ingestion 35 pass; UI 10+14 pass; isolated installed-wheel standalone-download test 1 pass, exit 0 (347.663s); final strict MkDocs build pass (23.98s). Reviewed prior evidence additionally includes ingestion pre-fix 9 failures and strengthened orchestrator 19 passes. Earlier combined installed command was red, not a clean receipt. Ambient orchestrator SDK collection failed before using the correct existing environment; dotted UI test import failed before valid discovery. No full-suite repetition or new-head CI/live/transport/durability claim. Quality adoption remains red. All five clean local HEADs matched remote branches and PR head readbacks; all remain draft on expected develop/docs targets. Diff checks and coauthor trailers passed. No approval, merge, deployment, manifest/settings, publication or release change. These comments supersede historical PR-body current-status claims; other bodies remain historical. PR689 body refresh requires the parent/owner update tool, unavailable in this session. |
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Scoped P6 persisted — immutable handoffReviewed P6 only; no expanded round. Orchestrator Exact delivered behavior, files, evidence and limitations. Two original P6 IDs functionally closed, not approved: Evidence: reviewed 187 behavioral passes (existing XML verified); handed-off 454 quality-related passes before last case; fresh 8 NL2SQL source-binding passes; strict MkDocs pass (13.56s). Typing/architecture pass in candidate-base c9a74f9 report, NOT protected-base adoption evidence; lint/exceptions/policy remain violations. No new-head CI/full-suite/live Azure claim. Originals: 191 = 143 keep recommendations + 18 functionally closed + 30 open. Current ledgers: 196 = 99 orchestrator + 67 ingestion + 30 UI, all proposed, zero active/approved. Original review hashes, prior receipts and all 46 task markers preserved. No other package/H6/identity/durability disposition, merge, publication, settings or approval. This append-only handoff supersedes stale current-status prose, not historical evidence. PR-body update tool unavailable; parent/owner must refresh bodies. Docs remain unmerged on the existing feature branch. |
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Keep durability and identity decisions, protected adoption and final acceptance open; preserve all historical task IDs and source-bound receipts. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Capture source-pinned behavior, fresh full CI and remaining identity/adoption decisions without marking issue681 complete. Preserve all historical task IDs and receipts. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Scope
Specification, quality-gate contracts, architecture decisions and coordinated adoption receipts for #681. Runtime implementation is merged in all three component repositories. Canonical documentation is in #688. This PR does not close #681 because live integrated acceptance remains outstanding.
Authorized initial adoption
Maintainer authorization: #681 (comment). Explicit administrative acceptance of 189 justified exceptions (92 orchestrator / 67 ingestion / 30 UI), coherent adoption merges and required-check activation. Not an independent review; no production deployment authorization.
Bootstrap failures were explicitly accepted, not reported as green. Subsequent real reference CI used the adopted protected bases, never HEAD. All rules apply to develop/main with strict checks bound to GitHub Actions app15368, no bypass, code-owner/one-approval/stale-dismissal/latest-push/thread-resolution controls, deletion/non-fast-forward protection. Existing rules retained. Required contexts: orchestrator quality-gate/tests/frontend build; ingestion quality-gate/unit-tests/frontend-checks; UI quality-gate/unit-tests/container-tests.
Completed real CI proof
All three references closed unmerged. Negative fixtures failed RUF100, suppression policy and the required aggregate gate while functional jobs passed. Only each fixture was reverted; all restored trees match initial references and all eight jobs passed. BLOCKED also reflects independent review requirements, not just CI. Ingestion proves RUF100, not F401. Exact heads and public evidence are preserved in tasks.md and reference PR comments, including Azure/gpt-rag-orchestrator#359 (comment).
Remaining acceptance and scope limits
Live ACL, coordinated-component and recovery acceptance require an authorized nonproduction target and test-principal setup, neither supplied. Unanswered questions do not waive these criteria. #681 remains open. Implementation markers and historical functional dispositions are not live acceptance evidence.
No production deployment, release/tag, manifest update or feature merge to main. Parent receipt commit dcadcd1; historical evidence is preserved with a current-status preface. Final documentation and coordination PR disposition will be recorded separately.