Skip to content

fix(php-transformer): preserve empty destination anchors as native links - #2372

Merged
chubes4 merged 2 commits into
trunkfrom
fix/2367-empty-sibling-anchor
Sep 30, 2026
Merged

chubes4 merged 2 commits into
trunkfrom
fix/2367-empty-sibling-anchor

Conversation

@chubes4

@chubes4 chubes4 commented Sep 30, 2026

Copy link
Copy Markdown
Contributor

Summary

Fixes #2367. Lower childless whitespace-only anchors with a safe destination onto the existing native RichText paragraph host instead of treating them as unsupported loss. Preserve the actual link, CSS hitbox and accessible attributes; do not discard duplicate links or add platform-specific predicates. Media-bearing links retain their existing lowering.

Verification

  • Neutral baseline-red and patched-green compiler regressions cover unnamed links, repeated sibling destinations, accessible overlays, CSS geometry, unique destinations and unsafe URLs.
  • Independent browser regression passed all 15 cases: five fixtures at 390, 768 and 1440 pixels. Preserves destination, accessible label and painted hitbox, including zero-area and positive-area links and linked-image content.
  • Homeboy canonical suite passed exit 0 after identical gate rerun with sufficient no-progress allowance. Initial watchdog termination remains in evidence; assertions and suite scope were unchanged.
  • Fresh full Crosby import with DLA 0.8.8 capture, SSI c25dc97abfbe and exact tested producer e30706d276ad on WordPress 7.1.2 completed successfully: all 19 captured routes, 20 materialized documents including parent route, zero fallbacks, zero unsupported fallbacks, zero core HTML/freeform/invalid blocks, and quality_pass true.
  • Run 315076c985d1dcc2991d54df73c95b1e6881c00efc1f673906e89fe625134c19; plan identity 8846074b0cb1362f80561233ecc1b0df21cd1504f29c831ed7589974477919fa. Published tree is identical to the tested producer candidate.
  • Full source visual parity and editor acceptance remain separate ongoing Crosby work; passing conversion quality is not full site acceptance.

Reviewer checks

Run composer --working-dir=php-transformer test:canonical. Install declared dependencies in php-transformer/tools/visual-parity and run node tests/empty-destination-anchor.mjs. Reimport Crosby with a current paired SSI consumer; prior importer revisions still calling removed destinationSignature are incompatible with current producer API.

Execution evidence and AI assistance

OpenAI gpt-6.1-sol via OpenCode implemented this scoped change through Homeboy Cook cook-detached-e0b0b45b-af2d-49e4-bb56-449be5684416. Orchestrator independently reviewed the diff, ran browser verification and fresh imports, and published under Chris Huber direction. Homeboy recorded replacement gate proof for its watchdog interruption. Final publication occurred outside Homeboy after finalize-pr rejected evidence.summary scalar formatting; retained runtime transcripts, exact package provenance and live import reports remain anchored to #2367.

@chubes4
chubes4 merged commit 4ca258c into trunk Sep 30, 2026
10 checks passed
@chubes4
chubes4 deleted the fix/2367-empty-sibling-anchor branch September 30, 2026 13:37
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.

Empty zero-area sibling product links abort otherwise materialized imports

1 participant