Bridge 0.3.27: bundle mobile layout and donation return fixes - #133
Bridge 0.3.27: bundle mobile layout and donation return fixes#133xrpbanks wants to merge 5 commits into
Conversation
There was a problem hiding this comment.
🟡 Changes recommended
The WooCommerce donation redirect hook currently expects a WC_Product argument and will likely not run in production because the filter typically receives a product ID (or null), leaving the POST resubmission behavior unaddressed.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
This PR prepares the CalorieApp Identity Bridge WordPress plugin release 0.3.27, bundling mobile layout fixes (header/card sizing, Richlist horizontal scrolling, blog slider dots, donation/cart/checkout mobile spacing) together with a donation POST redirect improvement and expanded footer-compat handling, plus new shared “page ending” (footer + market widget) components and corresponding CI/fixture tests.
Changes:
- Adds a shared page-ending/footer renderer and a cached XPMarket widget (REST + browser renderer), plus fallback page shortcuts.
- Updates layout/navigation scripts and CSS to improve mobile presentation (Richlist scroll wrapper, slider dot row, donation/cart/checkout sizing).
- Introduces a WooCommerce add-to-cart redirect hook intended to return successful open-price donation POSTs back to the product GET page, and expands footer rewrite compatibility to cover full product/cart HTML returned after POST.
File summaries
| File | Description |
|---|---|
| wordpress-plugins/calorieapp-identity-bridge/README.md | Documents the 0.3.27 bundled scope and behavioral constraints. |
| wordpress-plugins/calorieapp-identity-bridge/includes/class-calorieapp-identity-bridge.php | Wires new components; adds donation redirect filter (needs adjustment). |
| wordpress-plugins/calorieapp-identity-bridge/includes/class-calorieapp-identity-bridge-page-ending.php | Adds page-ending/footer + fallback shortcuts renderer and enqueues its assets. |
| wordpress-plugins/calorieapp-identity-bridge/includes/class-calorieapp-identity-bridge-market-widget.php | Adds XPMarket widget REST endpoint, caching, payload validation, and JS config. |
| wordpress-plugins/calorieapp-identity-bridge/includes/class-calorieapp-identity-bridge-legal-footer-compatibility.php | Extends footer rewrite buffering to cover full cart/product HTML responses after POST while preserving non-page responses. |
| wordpress-plugins/calorieapp-identity-bridge/includes/class-calorieapp-identity-bridge-integrated-login.php | Updates asset version fallback and adds server-rendered iframe startup cover markup. |
| wordpress-plugins/calorieapp-identity-bridge/calorieapp-identity-bridge.php | Bumps plugin version constants to 0.3.27. |
| wordpress-plugins/calorieapp-identity-bridge/assets/calorieapp-site-navigation.js | Reconciles fixed shortcut replacement and introduces the fallback shortcut stack behavior. |
| wordpress-plugins/calorieapp-identity-bridge/assets/calorieapp-site-layout.js | Adds Richlist scroll wrapper insertion and late shortcode initialization handling. |
| wordpress-plugins/calorieapp-identity-bridge/assets/calorieapp-site-layout.css | Applies updated header/card selectors and adds mobile layout fixes (Richlist, blog dots, donation/cart/checkout). |
| wordpress-plugins/calorieapp-identity-bridge/assets/calorieapp-page-ending.js | Implements page-ending behaviors: XPMarket widget renderer, footer carousel, and embed startup cover controller. |
| wordpress-plugins/calorieapp-identity-bridge/assets/calorieapp-page-ending.css | Styles page ending/footer, XPMarket card, fallback shortcuts, and embed startup cover. |
| tools/tests/wordpress_site_session_markup.test.php | Extends PHP fixture assertions for server-rendered startup cover placement and invariants. |
| tools/tests/wordpress_site_navigation.test.mjs | Updates navigation tests for new reconciliation + fallback shortcuts behavior. |
| tools/tests/wordpress_site_layout.test.mjs | Extends layout tests for late shortcode discovery and Richlist wrapper behavior. |
| tools/tests/wordpress_page_ending.test.php | Adds PHP fixture tests for page-ending rendering, scope boundaries, and market sanitization/caching. |
| tools/tests/wordpress_page_ending.test.mjs | Adds JS fixture tests for XPMarket rendering/fallback behavior and footer carousel behavior. |
| tools/tests/wordpress_legal_footer_post.test.php | Adds PHP fixture coverage for POST-scoped footer correction boundaries. |
| tools/tests/wordpress_embed_loading.test.mjs | Adds JS fixture tests for the iframe startup cover behavior and handshake gating. |
| tools/tests/wordpress_donation_return.test.php | Adds PHP fixture tests for donation redirect behavior. |
| docs/STEP_3_SESSION_NAVIGATION.md | Updates documentation to reflect the follow-up consistency work and new checks. |
| docs/STEP_3_CYCLE_1.md | Adds the bundled candidate scope, evidence, limits, and acceptance checklist for the cycle. |
| contracts/identity-bridge/v1/code-provenance.json | Records provenance entries for newly added assets and PHP components. |
| .github/workflows/bridge-maintenance-checks.yml | Expands CI to include new PHP/JS fixtures and allows the maintenance workflow to run on the new base branch. |
Review details
- Files reviewed: 24/24 changed files
- Comments generated: 1
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
The mobile screenshot audit exposed shared layout defects in Richlist, blog pagination and donation pages, alongside the market/shortcut/startup work already prepared in this PR. Version 0.3.27 bundles them into one installation candidate.
Changes:
Scope:
8e5dd8fccc45aac552afdf831d62718e39614c18.fix/desktop-widget-column-fit(Keep the Xumm widget inside narrow desktop columns #131), never app main.Validation:
5f3362081295ff1354cb830e0695b82f741fe7fe8d6e73735e264ca4d1095912. Every member matches this source tree.Installation status, 7 September 2026: the user reports replacing the WordPress plugin with 0.3.27. Public Home, Richlist and CalorieApp requests returned HTTP 200 and their bridge asset URLs reference 0.3.27. This confirms the served version on those routes; actual rendered acceptance remains pending. The separate app follow-up in #132 requires no new WordPress ZIP.