Commit 2 (final scope) of the in-plugin editorial image pipeline
(ARCHITECTURE.md #21). A deterministic local composer now runs between
provider bytes and sideload: Image A yields a corner-marked featured
(1200x632) + branded OG (1200x630, teal band, logo, baked caption in
Poppins SemiBold) + square card (1080x1080, cream panel, Poppins Bold,
teal footer with the reverse lockup); Image B gets the corner mark only.
- Capability ladder: imagick (full compositing) -> wp_get_image_editor
resize-only (unbranded, WARNING once) -> pass-through (WARNING once);
probe cached in prautoblogger_image_compose_capability, fingerprinted
by PHP version + imagick/gd presence so host flips auto-invalidate.
compose() never throws; composition can never fail a publish.
- Variants sideloaded with a role filename suffix; attachment meta
_prautoblogger_image_role + _prautoblogger_base_attachment_id; post
meta _prautoblogger_og_image_id (frozen for the rebuilt SEO stage) +
_prautoblogger_square_image_id. No cost-tracker rows ($0 local stage;
duration logged on the image_composer channel).
- New Images settings: compose_enabled ('1'), compose_variants
('og,square'), featured_mark_enabled ('1') — read at point of use.
Geometry ships as Layout defaults behind the
prautoblogger_image_compose_layout filter.
- Vendored brand rasters (assets/brand) + bundled OFL Poppins faces
(assets/fonts) for per-environment byte-stable output (stripImage +
PNG date/time chunks excluded). Validated on Hostinger PHP 8.3.30 /
ImageMagick 7.1.1-43: php -l clean on all touched files, double
render byte-identical (sha256), exact variant geometry.
- Fix: featured/Image B alt text is the editorial caption (was the
model name); model still persists in _prautoblogger_image_model.
- Image_Attacher extracted from Image_Pipeline (300-line compliance);
sideloader gains an optional filename suffix param (back-compat '').
- Version 0.16.0 -> 0.17.0 + CHANGELOG + ARCHITECTURE.md #21 +
CONVENTIONS.md composer guide in this commit. Unit tests: layout
clamp boundaries, capability ladder, cache invalidation, attacher
meta-linking, pipeline integration, imagick determinism (gated).
Agent-Session: engineer-prautoblogger-image-composer-20260611