Refresh Power Platform operational evidence blocker#343
Conversation
Update the CRAN registry submission evidence with a 2026-07-03 live probe. CRAN package page, archive, and crandb still return 404, so publication remains blocked.
Mark Swift Package Index, Open VSX, and vcpkg/ConanCenter surfaces as maintenance-only in the registry contract and supporting roadmap docs. Preserve existing publication evidence while removing them from active target language.
Update the conda-forge feedstock submission track with a 2026-07-03 live probe. The staged-recipes PR remains open, Anaconda API still returns 404, and no nwau-py entries appear in conda-forge noarch repodata, so the track remains blocked pending maintainer review and merge.
…h Python Bindings' Move the completed Rust acute POC track into conductor/archive and remove it from the active tracks registry. The implementation was already complete; this commit only performs lifecycle cleanup.
Delete the stale active-path copy of the Rust Acute 2025 POC track after archiving it under conductor/archive. The archive copy remains as the preserved record.
…provements' complete
…lete Commit notes: - Marked Rust Migration Track Hardening complete in conductor/tracks.md and metadata. - Removed the completed hardening track from incomplete/recommended status-matrix lists so Rust CLI migration is now the next Rust migration implementation track. - Kept the status-order regression valid both before and after archive. Validation: - uv run pytest -q tests/test_rust_migration_track_hardening.py - python3 scripts/validate_rust_migration_track_governance.py - python3 scripts/validate_conductor_status_matrix.py - uv run ruff check scripts/validate_rust_migration_track_governance.py tests/test_rust_migration_track_hardening.py - python3 -m json.tool conductor/status-matrix.json - python3 -m json.tool conductor/tracks/rust_migration_track_hardening_20260703/metadata.json - git diff --check
There was a problem hiding this comment.
Review Summary
This PR adds the 2026-07-03 aggregate Power Platform preflight readiness evidence refresh. The changes are well-structured and maintain proper fail-closed governance:
Key Changes:
- ✅ New preflight evidence file documents all 6 blocked gates (endpoint, github, pac, flow_smoke, dlp, subrepo)
- ✅ Validator properly wired to enforce fail-closed state with all production readiness claims false
- ✅ Test coverage added for the new evidence file
- ✅ Documentation updated to reflect blocked state and mark track not archive-eligible
Quality Assessment:
- Code follows existing patterns and conventions
- All validators enforce that production readiness claims remain false until live evidence exists
- Proper validation of required fields, statuses, and claim boundaries
- Maintains security-first approach with explicit blocking until real evidence captured
The implementation correctly maintains the operational evidence contracts while keeping the track blocked pending live Power Platform runtime evidence.
You can now have the agent implement changes and create commits directly on your pull request's source branch. Simply comment with /q followed by your request in natural language to ask the agent to make changes.
There was a problem hiding this comment.
Code Review
This pull request hardens the Rust CLI/MCP migration tracks by establishing explicit runtime selection boundaries, pinning the first implementation slice to acute 2025, and adding robust track-quality validation and tests. It introduces the --runtime option to the CLI and options.runtime to the MCP mchs.calculate tool, defaulting to Python while allowing opt-in Rust execution for acute 2025. Additionally, it updates the conductor status matrix, archives relevant tracks, and adds governance validation scripts. Feedback on the changes highlights a critical issue in nwau_py/mcp_server.py where pandas' .where(..., None) fails to preserve Python None values on float Series, potentially causing JSON serialization errors; a dictionary comprehension was suggested to safely convert NaN values.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
| ) | ||
| except ImportError as exc: | ||
| raise McpError("MCHS-MCP-RUST-UNAVAILABLE", str(exc)) from exc | ||
| row = output.iloc[0].where(pd.notna(output.iloc[0]), None).to_dict() |
There was a problem hiding this comment.
In pandas, calling .where(..., None) on a Series with numeric/float dtypes does not preserve None as a Python None object; instead, pandas converts None back to NaN (float) because numpy/pandas float arrays cannot store None directly. When converted to a dictionary via .to_dict(), these float nulls remain nan (float), which serializes to invalid JSON NaN (or causes serialization errors depending on the JSON library configuration).
To guarantee that all missing values are properly converted to Python None (which serializes to null in JSON), use a dictionary comprehension or cast the DataFrame/Series to object dtype before replacing NaN with None.
| row = output.iloc[0].where(pd.notna(output.iloc[0]), None).to_dict() | |
| row = {k: (None if pd.isna(v) else v) for k, v in output.iloc[0].to_dict().items()} |
|
Bugbot is not enabled for your account, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
Summary
Validation
Status
Draft because the live Power Platform runtime gates remain blocked: service endpoint, GitHub live gate, PAC app/connection observations, flow smoke, DLP/monitoring, and subrepo closure.