Skip to content

Improve static HTML to block save parity#483

Merged
chubes4 merged 15 commits into
trunkfrom
fix/ssi-coffee-transformer-integration
Jul 3, 2026
Merged

Improve static HTML to block save parity#483
chubes4 merged 15 commits into
trunkfrom
fix/ssi-coffee-transformer-integration

Conversation

@chubes4

@chubes4 chubes4 commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

Summary

  • normalize PHP transformer block support serialization so generated markup validates in the editor
  • improve navigation submenu conversion, RichText anchor/SVG handling, runtime-island metadata, typography font-family analysis, and common label/value structures
  • match Gutenberg core save output for button and accordion families, including runtime-button attr filtering, style/attribute ordering, accordion roles, and heading icons
  • add lower-churn parity assertions for inline style declaration coverage

Verification

AI assistance

  • AI assistance: Yes
  • Tool(s): GPT-5.5 via OpenCode, with parallel coding subagents
  • Used for: Integrated PHP transformer fixes/refactors, ran local and Lab verification, analyzed fixture-matrix evidence, and drafted this PR description. Chris remains responsible for review and final changes.

@chubes4

chubes4 commented Jul 3, 2026

Copy link
Copy Markdown
Contributor Author

Restaurant fixture follow-up is included in commit d743887.

Verification:

Remaining acceptable findings are mostly inline SVG/core-html preservation, one script runtime island, one SSI diagnostic blind spot, and visual parity mismatch at 16.58% overlap mismatch.

@chubes4

chubes4 commented Jul 3, 2026

Copy link
Copy Markdown
Contributor Author

Added generic business-hours/contact structure follow-up in commit aae02f7.

What changed:

  • business-hours day/time rows now convert to editable label/value core/columns instead of flattened paragraphs
  • contact-only tel:/mailto: clusters with weak links signals no longer become core/navigation; explicit nav/menu contexts still do
  • added focused parity fixtures for both paths

Verification:

@chubes4

chubes4 commented Jul 3, 2026

Copy link
Copy Markdown
Contributor Author

Ran the next fixture candidate, 8-local-service-business, against the current branch.

Verification:

Next generic targets from this fixture are logo/SVG link decomposition, inline SVG icon handling, and form materialization (form#contact-form) rather than block validity.

@chubes4

chubes4 commented Jul 3, 2026

Copy link
Copy Markdown
Contributor Author

Added two more generic PHP-transformer cycles and verified them through local tests + Lab.

Decorative SVG labels:

Form fallback contract:

  • Commit 7f45a0f enriches provider-neutral html_form_fallback metadata: form identity/attrs, explicit control order, cleaned labels, submit text, validation/default state, select placeholder options, and adjacent success-panel metadata.
  • Block output remains preserved fallback; this gives SSI/downstream materializers a stable form contract without pretending arbitrary forms are native core blocks.
  • Local tests: composer test passed with 192 parity fixtures.
  • Event/conference Lab run ssi-event-conference-form-contract-20260703a: failed_fixture_count=0, editor_invalid_count=0, invalid_block_count=0, editor_valid_block_rate=1, native_conversion_rate=1.
  • Summary artifact: https://homeboy-artifacts-tunnel.dev.chubes.net/summary.json

Remaining generic opportunities from the event fixture: schedule/session patterns, speaker/ticket cards, FAQ accordion-to-native details, and better SVG/icon diagnostics/tokenization.

@chubes4

chubes4 commented Jul 3, 2026

Copy link
Copy Markdown
Contributor Author

Added another generic PHP-transformer cycle for event/session structure.

Schedule/label-value rows:

  • Commit 9e93898 recognizes conservative two-part label/value rows (row, pair, session, schedule, detail, etc.) and emits valid core/columns / core/column blocks instead of flattening time/title or label/value text.
  • Reuses the proven business-hours row serialization path and keeps interactive tabs/shells untouched.
  • Added parity coverage in html-schedule-label-value-rows.json for session time/title rows and generic detail pairs.

Verification:

  • Local: php -l src/HtmlToBlocks/HtmlTransformer.php passed.
  • Local: composer test passed with 193 parity fixtures.
  • Event/conference Lab run ssi-event-conference-label-value-20260703a: failed_fixture_count=0, editor_invalid_count=0, invalid_block_count=0, editor_valid_block_rate=1, native_conversion_rate=1.

Remaining good next targets: FAQ button/answer accordion mapping to native details/accordion where safe, speaker/ticket pricing-card decomposition, and SVG icon diagnostics/tokenization.

@chubes4 chubes4 changed the title Fix SSI coffee transformer validity Improve static HTML to block save parity Jul 3, 2026
@chubes4

chubes4 commented Jul 3, 2026

Copy link
Copy Markdown
Contributor Author

Update pushed: fc4ba83 Preserve runtime targets in static imports.

Verification:

  • php php-transformer/tests/contract/run.php passed.
  • php php-transformer/tests/parity/run.php passed: 198 fixtures.
  • git diff --check passed.

Also updated 30-cursed-pangolin-fanwiki/fixture.json to classify it as a high-risk runtime-heavy stress fixture instead of low-complexity docs/blog.

Fresh corpus note: the stale local corpus worktree was missing manifests; origin/trunk has 77/77 fixture manifests. A fresh full-corpus Lab rerun was attempted against an origin/trunk snapshot, but Homeboy returned internal.json_error while parsing the runner daemon response before a matrix summary could be retrieved.

AI assistance:

  • AI assistance: Yes
  • Tool(s): openai/gpt-5.5 via OpenCode
  • Used for: Runtime-target preservation implementation, fixture-matrix evidence analysis, and verification orchestration.

@chubes4 chubes4 merged commit fdefa83 into trunk Jul 3, 2026
1 check passed
@chubes4 chubes4 deleted the fix/ssi-coffee-transformer-integration branch July 3, 2026 22:25
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