Skip to content

fix(php-transformer): retain page-specific grid cascade winners - #2338

Merged
chubes4 merged 4 commits into
trunkfrom
fix/2337-portrait-grid
Sep 29, 2026
Merged

chubes4 merged 4 commits into
trunkfrom
fix/2337-portrait-grid

Conversation

@chubes4

@chubes4 chubes4 commented Sep 29, 2026

Copy link
Copy Markdown
Contributor

Root cause

On Lake Country Players /about/, the source’s attribute-qualified four-column desktop rule survives transformation on an editable Group, but its page-scoped CSS loaded before a shared two-column fallback and lost the cascade. The source also uses inline grid-gap:100px 100px, which the layout carrier omitted. Imported portraits became 552×552px in two 736px columns instead of ~220×221px in four 293px columns.

Change

  • Put page-scoped projections after the shared stylesheet at the same source stylesheet boundary. A neutral multi-page fixture checks the desktop cascade winner, mobile rule, and valid editable Group serialization.
  • Carry legacy inline grid-gap through the existing generic geometry declarations.

Tracks #2337. This draft is not full-site visual acceptance.

Verification

  • composer --working-dir=php-transformer test:canonical --no-interaction passed on the candidate and again after merging current trunk.
  • Bounded Chrome experiment against the retained WordPress import: at 1600px, source-like authored CSS order and gap changed two 736px columns / 552px portrait into four ~293px columns / 219.75px portrait at x100.625, matching the live source’s four 293px columns / ~220px portrait at x101. At 1728px it produced four ~322px tracks; at 390px it stayed one column. Fresh paired WordPress import and full source→WordPress comparison remain pending.
  • Provider session evidence: Homeboy Cook cook-detached-0109c262-2c3d-49cf-a810-81efd821aa57 (attempt ...-attempt-1-16058b73) produced this patch, run artifacts and review dossier. Homeboy 0.396.4 then failed its controller-owned gate-fix continuation with cook_recipe.sensitive_mappings mismatch, already tracked in Homeboy #15201; local canonical gate passed. Newer Homeboy is released but local upgrade was blocked by an unrelated quarantined runner generation pin. Chris Huber explicitly authorized direct finalization of this candidate. Finalization occurred outside Homeboy.

AI assistance

GPT-6 Sol (OpenAI) via OpenCode, run by Homeboy Cook, traced the authored cascade, implemented the repair, and ran the bounded browser experiment. GPT-6 Sol via direct OpenCode reviewed the candidate, ran canonical gates, reconciled trunk and prepared this draft. Chris Huber directs acceptance and retains merge authority.

@chubes4
chubes4 marked this pull request as ready for review September 29, 2026 13:49
@chubes4

chubes4 commented Sep 29, 2026

Copy link
Copy Markdown
Contributor Author

Fresh paired import 5b458af6d9912fd099719eac10e9e5a3b97c5c381220bf785a8bc2fe5f5c8eeb from branch 30bf0ca20 completed 25/25 page receipts and 27 materialized content items. It did not restore the About desktop four-column layout: at 1600px source 4 × 293px, previous import 2 × 736px, first candidate import 2 × 686px. The inline gap was restored from normal to the source 100px; mobile remained one column with 100px gap and portrait ~269px. Browser CSSOM isolated the remaining defect: a matching four-column page rule at stylesheet index 29 was overridden by the matching two-column source sheet at index 66. The final WordPress plan had the page projection at asset 117 and its parent sheet at 204 because document link ordering and shared-chrome factoring reordered the compiler outputs. Commit 5564705ee now restores the parent (+ shared-chrome) before its page projection (+ shared-chrome) after shell factoring; a read-only replay against the retained 25-route plan changes parent/page asset order 204/117 → 127/129. Full canonical suite and targeted site-plan contracts pass. The post-5564705ee package has not yet been imported; leave rendered parity unclaimed until that fresh check. The audition-form Jetpack entitlement fallback remains separate. AI disclosure: GPT-6 Sol (OpenAI) via OpenCode ran the real import, identified the second CSS ordering stage, implemented the follow-up, and checked the retained-plan ordering; Chris Huber directs acceptance.

@chubes4

chubes4 commented Sep 29, 2026

Copy link
Copy Markdown
Contributor Author

Final post-5564705ee paired import verified on fresh WordPress 7.1.2 site: import ece213bbddfb0e25f65bbcf94455f5772f9a5445109cf914637faafe5c26cdfb packaged BE 6206684de388 + SSI dirty 323928e9404a; 25/25 compiled receipts, 27 materialized content items. About grid at 1600px: source 4×293px / 100px gap / first portrait 220×221 at x101; WordPress now 4×293px / 100px gap / 220×220 at x101. At 1728px source and WordPress both have four ~322px tracks, 100px gaps and ~242px portrait at x109. At 390px both have one ~359px track and 100px gap; document height is now 16,673px versus source 16,639 (previous import 15,973). Source→WordPress DLA comparison still fails 8/8 desktop samples: About has 9 matched image geometry mismatches (down from 14), notably banner width 1521 vs 1600; text mismatch and an s.w.org request remain. Four sampled mobile interactivity checks pass. Jetpack-gated audition-form fallback persists. This is a measured grid repair, not full-site parity. Latest CI all green. AI disclosure: GPT-6 Sol (OpenAI) via OpenCode built the paired package, resumed the durable import, measured source/baseline/final DOM at three viewports and ran DLA comparison. Chris Huber directs acceptance.

@chubes4
chubes4 merged commit 6817788 into trunk Sep 29, 2026
10 checks passed
@chubes4
chubes4 deleted the fix/2337-portrait-grid branch September 29, 2026 15:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant