Skip to content

fix: preserve image resources and stable planning inputs (2026.10.21.1) - #827

Merged
Sunrisepeak merged 10 commits into
mainfrom
fix/resource-ownership-and-stable-plan-inputs
Oct 20, 2026
Merged

Sunrisepeak merged 10 commits into
mainfrom
fix/resource-ownership-and-stable-plan-inputs

Conversation

@Sunrisepeak

@Sunrisepeak Sunrisepeak commented Oct 20, 2026 •

Copy link
Copy Markdown
Member

Dependency-owned executables and shared libraries currently lose their Windows resources when built through a consumer. Repeated planning also rewrites unchanged lockfiles, and build-database output reports synthesized host files as watch inputs, creating a watcher feedback loop.

This change binds resources to the image's package, preserves unchanged lockfiles and reports I/O errors, and excludes generated host inputs while retaining editable build dependencies. It updates the specifications and both user-documentation trees and prepares release 2026.10.21.1 without advancing the bootstrap pin.

Closes #826
Closes #807

#816 is resolved as a design-boundary decision: the default text scanner does not expand includes. Visible imports already receive transitive mappings. This PR documents that boundary and adds a supported-path control test; it adds no workaround or compatibility mode. After merge, #816 will be closed explicitly as not planned, without an issue comment.

Implementation checkpoints and dependency order are recorded in .agents/docs/2026-10-21-resource-ownership-module-scan-and-lock-write-design.md. The branch contains checkpoint commits; final merge uses squash as requested.

Validation:

  • The final 2026.10.21.1 candidate self-hosts and passes all 149 root unit test targets, including the lockfile and symlink checks.
  • E2E 01, 844, 688, 913, 921, 923 and 924 pass locally with the fresh candidate.
  • Released-binary controls fail for unchanged-lock mtime, generated host watch entries, and missing dependency DLL resources.
  • MinGW resource checks cover EXE/DLL ownership, same-named targets, standalone roots, workspace selection changes, manifest rebuild and target-independent missing-input validation.
  • Version pins, module wiring, documentation style/structure, file lengths and schema/deprecation checks pass locally. The records index is verified in a clean checkout.
  • All 67 jobs in the final-head cross-platform CI passed: https://github.com/mcpp-community/mcpp/actions/runs/39456970836.
  • Independent xlings and mcppls ecosystem canaries passed: https://github.com/mcpp-community/mcpp/actions/runs/39457029515.
  • Final review confirmed package ownership, editable-input preservation, lock I/O and file-object semantics, scanner scope, upgrade behavior and the release/bootstrap version boundary. No further source changes were required.
  • Local heavy commands are serialized and limited to two CPU cores and 8 GiB of memory.

@Sunrisepeak
Sunrisepeak merged commit f5a7742 into main Oct 20, 2026
71 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

2 participants