Repository navigation
[fix] Harden installed script copying and reconcile distribution audit - #137
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d685c57362
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review Please review the current head |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: dd4db090ba
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review Please review latest commit |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 597d941f90
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review Please review exact current head |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 3608408eb8
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 350d41bacc
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
31 October 2026 — integrated PR #137 exact-head validation and review handoffCode head:
Changes in this final pass:
Review boundary: Focused integrated inspection covered the wrapper-copy publication/cleanup, archive preflight, GDAL overwrite/rollback, QGIS audit/repair and auxiliary SQLite safeguards, package inventory, MCP exposure and regression evidence. No additional confirmed source defect remains from that inspection, but it is not individual script lifecycle or engineering output approval. A new Codex review was requested on the integrated head; its response is outstanding and any new findings must be handled before approving merge. The 47-entry script remediation/acceptance backlog and original requirements preserve open owner/lifecycle, licensed TUFLOW/HY-8, real 7z/RAR, UNC/mapped-drive and application-specific output/interruption gates. Those are not automatically waived by CI. No production data, release publication or automatic destructive execution was used. Disposition: Leave #137 draft, open, unmerged until the fresh review and explicit maintainer decision. The later approved delivery is a squash merge to |
Final integrated PR #137 review and CI closure — 31 October 2026Exact final PR head:
The two final Codex P2 findings were fixed, functionally tested and explicitly acknowledged in their threads:
Earlier final inspection also added a safeguard against a repaired QGS picking up an unrelated existing destination QGD file. The Rasterio metadata type issue was corrected without suppressing strict Pyright. The 151 tracked = 85 installed + 66 repository-only, 34 MCP targets inventory is consistent. The deliberately unsafe unguarded copy-file/folder scripts remain excluded from installation. The work record/register now link the tested code head and the still-open acceptance gate. The 47-item remediation/acceptance list includes future lifecycle decisions and application-specific validation, not 47 outstanding confirmed code defects. Representative TUFLOW/HY-8, GDAL/QGIS/native Windows/UNC/7-Zip/interrupt recovery, numerical parity and individual script lifecycle approval remain open where specifically documented. No production engineering, distribution-release or external-app blanket acceptance is claimed. Delivery: PR #137 remains open, draft and unmerged, with no auto-merge or publication. No further technical CI or inline review blockers are currently identified. Obtain explicit maintainer disposition of residual engineering/lifecycle gates and approval before the later squash merge into |
1 November 2026 — maintainer decision on external acceptance and AB backlogRecorded in the durable Markdown AB backlog and requirements/status record:
The supporting Windows acceptance record and affected script inventory entries have been reconciled. The decisions modify documentation/acceptance scope only; no production scripts or simulation data were changed. The previous tested code head PR #137 remains open/unmerged for a later squash merge to |
Purpose and merge plan
Correct the unsafe installed-wrapper copying introduced by #130, reconcile installed scripts and MCP distribution with current
main, and retain the original engineering acceptance requirements without claiming blanket sign-off.Open and unmerged; no auto-merge or publication is authorised. After exact-head CI and explicit maintainer approval, squash merge into
main(one commit onmain; no history rewrite required on this development branch). No release or automatic destructive operation is authorized by this PR.Integrated implementation
--overwrite, private staged replacement and descriptor-anchored POSIX publication/cleanup, source permission preservation, symlink/swap protections, Windows and POSIX regression tests.ryan-scripts/source/resource paths = 85 wheel-selected + 66 repository-only; 34 distinct MCP script targets. The AST import-time safety scanner, wheel inventory equality, copied-script smoke and no-checkout install tests protect the provisional selection.copy_file.pyandcopy_folder.pyremain repository-only and are not installed/MCP-exposed._repaired.qgs/.qgzby default. Configurable UNC/mapped-drive equivalences, safe handling of mapped and unmatched relative layers when output is relocated, protection of unrelated destination QGD files, and editableDEFAULT_*options.main: merged820358bthrough4f032e9; retained current TUFLOW input preflight, duplicate deletion improvements, package metadata and submodules, and the Python >=3.14 requirement. Supporting #146, #152 and #154 were merged into this PR's branch, notmain. #153 (GeoPackage VACUUM) remains closed without merge.Validation and review
060fc17— all 6/6 CI checks passed: Python CI and Fast PR. Windows hosted tests: 1,674 passed, 25 skipped, 7 deselected (127 nonfatal warnings, primarily existing deprecations); Policy/strict Pyright: 0 errors, 0 warnings. Package/isolated-wheel, Python 3.14 MCP (legacy status label mentions Python 3.13), POSIX security and Ruff/whitespace passed. The tested code fix head is837184b; the final commits update only the work record/register and restore an inventory-test-required documentation phrase. The initial Rasterio metadata typing failure atc8d0743is resolved with an explicit narrow Protocol and read-only regression coverage.350d41bidentified two QGIS P2 issues: unmatched relative sources on relocated outputs and directory-backed datasets in existence audits. Both were fixed and regression-tested at837184b, retested on final head060fc17, and the threads resolved with exact-head evidence. The separately detected QGS/QGD companion collision was fixed (d181b15, with regression coverage). No additional open inline findings were present at this final status.fa20397records AB-023 closure and the grouped AB backlog. The previous executable-code head060fc17passed all six CI jobs. The documentation-only head's Fast PR checks passed; Python CI is queued. The PR remains unmerged; there is no package release.Explicitly open acceptance — not silently waived
Before squash merge
060fc17, including strict Pyright, QGIS regressions, isolated-wheel, inventory and security; 151/85/66/34 counts and unsafe-wrapper exclusion verified. Verify the newer documentation-only head separately.main. Do not merge, auto-merge or publish automatically.The branch contains historical implementation commits for traceability; the eventual merge is intended to produce a single commit on
main.