Repository navigation
feat(media): composable stack image template - #3663
Merged
Merged
Conversation
Adds a stack template that renders an ordered list of blocks (text, image, qr, row, list, divider, spacer) with proportional fitting and overflow warnings. QR resolution and text fitting are extracted from PosterTemplate into shared TemplateHelpers. Closes #3661
chubes4
force-pushed
the
fix/issue-3661-data-machine
branch
from
October 23, 2026 17:30
378ba5f to
4790af3
Compare
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.
Closes #3661
What
stackimage template (StackTemplate): an orderedblocksarray oftext,image,qr,row,list,divider,spacer. Text and lists fit proportionally, spacers flex, and overflow or missing assets produce warnings instead of silently dropping content.PosterTemplateinto sharedTemplateHelpersrather than duplicated.docs/api/stack-image-template.md.Verification
StackTemplateTest: OK (8 tests, 91 assertions), with a representative 8-block render onprint_pocket_flyerandinstagram_feed_portraitPosterTemplateQrHeroTest: OK (9 tests, 96 assertions), so the PosterTemplate refactor causes no regressiontests/poster-template-smoke.php: 196 assertions passedtests/*-smoke.php, exit codes compared againstmain: 0 regressions (45 already fail onmain; see tests: gate standalone smokes in CI; fix or delete the 44 failing on main #3649)php -lpasses on all changed files; no site or vendor names addedNote:
StackTemplateTestmust run with the composer autoloader as bootstrap (its own WP stubs). Undertests/bootstrap-unit.php, that bootstrap'sapply_filtersstub shadows the test's QR filter stub and one assertion fails. The same bootstrap-ordering family as #3649.Process note
Finalized outside Homeboy, with operator authorization (Chubes in Discord). The Cook (
wf-cook-batch-535a84e2a820, n1) produced this candidate, but its--changed-since origin/maingate fails on smoke fatals that already exist onmain(#3649), and the whole-suite--differentialreplacement gate was killed for no progress duringnpm install. Verification above was run by hand in the cook worktree.Overlaps with the #3660 PR in
ImageTemplateAbilities.phpandImageCommand.php. Whichever merges second needs a small rebase.🤖 Authored by an AI agent (Extra Chill Bot: Pi cook plus manual finalization).