Skip to content

Fix shared-chrome projection instances across media conditions - #3572

Merged
chubes4 merged 1 commit into
trunkfrom
fix/issue-3571-blocks-engine
Oct 27, 2026
Merged

chubes4 merged 1 commit into
trunkfrom
fix/issue-3571-blocks-engine

Conversation

@chubes4

@chubes4 chubes4 commented Oct 27, 2026

Copy link
Copy Markdown
Contributor

Summary

Shared-chrome projections previously inherited only the last contributing instance’s media. They now retain one instance per distinct media/type pair, positioned after its last applicable contributor.

What changed

  • Group projection placements by media/type without duplicating identical-condition contributors.
  • Preserve single-instance behavior, fallback placement, and unique document orders.
  • Verify downstream enqueues preserve separate instances with distinct handles; no downstream change was needed.
  • Add and register the two-page regression and single-link control. On trunk it failed: “Shared-chrome .pill rules retain an unconditional instance on index.html.” It passes with the fix.
  • Leave shared-chrome-stylesheet-scope.php and all existing expectations unchanged.
  • Additive: restores missing media coverage while preserving same-condition coalescing and existing fallback behavior.

Verification

  • passed on f9d9295. Base trunk@0c584a8 unchanged.
set -e
cd php-transformer
(test -d vendor || composer install --no-progress --no-interaction)
( while sleep 60; do echo "gate heartbeat: composer test still running"; done ) &
hb=$!
trap 'kill $hb 2>/dev/null || true' EXIT
composer test
  • CI: pending
Cook run
  • Gate 1: tree 73c3ef0d8f6c541c4938442920b673b9e74b7751, fingerprint 7ac8fdd66fc1208672ca4b9e45ccaeb6c1a586394af234ca3c11dd3767889bb2
  • Publication identity: ambient_gh

AI assistance

Tool: Homeboy (pi) · Model: gpt-6.1-sol (tier roadie/cook-heavy) · Used for: AI inspected the issue and enqueue pipeline, implemented the fix and regression test, and verified the full test suite.

Closes #3571

@chubes4

chubes4 commented Oct 27, 2026

Copy link
Copy Markdown
Contributor Author

Reviewed and verified on a real import.

  • Diff: per document, the projection gets one instance per distinct (media, type) of its contributing instances, after the last link with that condition. tests/contract/shared-chrome-stylesheet-scope.php is unchanged and passes.
  • Two-page repro from Shared-chrome stylesheet projection keeps only the last source instance's media #3571 (SSI dev package on 5d02f53061): the shared .pill background is present at 1440px and 600px. On v0.44.198 it was transparent at 1440px.
  • Ringwave home + about-us slice (DLA desktop+mobile capture documents): the desktop Wix menu now renders as the source does. Pill at 634×41 (403,17), display:flex, dropdowns closed, and the hero H1 is visible (it hit-tests as itself). On v0.44.198 the same capture produced a display:block stack with every dropdown open, covering the H1.
  • CI 15/15. One rerun was needed: the first PHP 8.3 integration job hit an HTTP 429 on a composer dist download.

AI disclosure: Claude (Opus) via Roadie/Pi reviewed and verified this under Chris Huber's direction; the fix was written by a Homeboy cook (gpt-6.1-sol).

@chubes4
chubes4 merged commit e1e7f92 into trunk Oct 27, 2026
28 of 29 checks passed
@chubes4
chubes4 deleted the fix/issue-3571-blocks-engine branch October 27, 2026 13:40
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.

Shared-chrome stylesheet projection keeps only the last source instance's media

1 participant