Repository navigation
Preserve site fields, reduce apply work and prepare 0.9.11 - #196
Merged
Merged
Conversation
noeltock
marked this pull request as ready for review
October 13, 2026 02:18
noeltock
marked this pull request as draft
October 13, 2026 02:26
Tests whose subject is scripts/ tooling now run with npm run test:tools.
Drops source-text and constant checks, duplicated receipt assertions and same-branch table rows; merges the lock-confirmation preview test into the profile test.
Drops subset and duplicate-layer authoring tests, folds the asset-form tests into one table, and makes the override-name and regeneration tests assert what their titles claim.
Drops repeated CLI spawns, inert table rows, PHP wording checks and assertions repeated across site tests.
Drops tests of their own stubs and of the WordPress parser, CLI tests repeating library coverage, and duplicate style, coverage and intent cases.
noeltock
marked this pull request as ready for review
October 13, 2026 06:27
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Site apply could reset unmanaged page fields, first-install pattern media could fail during planning, and repeated source scans, snapshots and compilation made apply unnecessarily expensive. Dense executor code and duplicate tests made the safety boundaries harder to review. The theme/site work also needed current documentation and a 0.9.11 release candidate.
Solution
Preserve native WordPress fields and publication dates, remove repeated work, and keep source/ownership/uncertain-outcome guards. Remove compatibility for site formats that never shipped and duplicate tests while retaining unique safety coverage. Document all theme/site routes and prepare 0.9.11, retaining the pre1.0 policy.
src/site/apply-wpcli.tssrc/site/apply.ts,src/site/media-import.tssrc/site/input.ts,src/site/ownership.tssrc/site/compile.ts,src/site/wpcli.ts,src/index.ts.github/workflows/ci.yml,skills/block-runner/references/SITE.mdDiff
+2,333 −1,488 · 82 files. Much of apply/plan expands existing dense statements; the isolated formatting stage preserved TypeScript ASTs and embedded PHP literals.
Testing & verification
Reviewed revision:
60f539e3672c0155163c14be3a13babbb4c6a99d· Node 22.23.1 · native checks: WordPress 7.1 / PHP 8.4.26.npm run verifyat2931f93: passed 881 tests with four existing skips, plus Node/dependency support, typecheck, corpus hashes, build, private-reference scan and package inspection.npm run test:toolsat the 0.9.11 candidate: passed 43 tests. Advisor accepted the unique safety coverage retained by the trims. Its one CI finding is fixed: tooling runs once on the Node 22 full-CI leg, and in the independent skill/release routes.3cb3e5c: 38.73 seconds, 129 WP-CLI processes. Image reads fell from 220 to 20 against the prior scan strategy using current native adapters. Tiny valid PNGs and one local sample; no production-scale timing claim.Not verified: performance on a large real media library, paid model benchmark, or a fresh full M3/editor/visual matrix with the published package. That test-site retest follows publication.
Risk / rollout
Noel explicitly lifted the merge hold and authorized merge/publish 0.9.11 after checks. All required candidate gates passed; the PR is ready to merge. No production-site apply is part of this release.
Only current site formats are accepted; obsolete development bundles require fresh compilation/planning. Complete local source/assets are checked at start/end. An unrelated asset edit may leave approved earlier effects completed but prevents a completed receipt; changed image bytes are never consumed.
Hard-stopped apply retains guarded manual lock reconciliation after every executor stops. Held tokens are never stolen; journals and native outcome evidence remain. No lease or recovery command is added. Node 20 support is dropped; supported range is 22.13 on 22.x or 24+.
Detection: native authority refusals, durable partial/unknown receipts and final full source/live comparison. Rollback: reconcile outstanding operations before reverting; reverting code does not undo completed WordPress effects.