Commit graph

23 commits

Author SHA1 Message Date
dcb58bbb3a Serve Preact from the site: the components rendered nothing
All checks were successful
deploy / image (push) Successful in 5m17s
Every component imported Preact, its hooks and htm/preact from esm.sh
separately. htm/preact imports Preact unversioned, which esm.sh now
resolves to Preact 11, while the components asked for preact@10: two
Preacts on one page, so render() drew nothing, silently. Booking, FAQ,
testimonials, carousel, toggle and appointment type were all blank.

Use htm's single-file standalone build instead (Preact 10, its hooks and
html in one module, no further imports), downloaded at image build
pinned by version and checksum, like FullCalendar, and imported from
../vendor/preact-standalone.js. Checked on the live page: the booking
component renders again with it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 06:08:05 -09:00
dd569e692f PHP 8.5.12, pinned; session upload progress off (PHP2Shell)
PHP 8.5.12 fixes CVE-2026-109618 and CVE-2026-109619, pre-auth remote
code execution in session upload progress, exploited in the wild (CISA
KEV, 2026-10-26); the running image was built in June on an older 8.5.
Pin the version once for both PHP stages (ARG PHP_VERSION), and turn the
feature off too (session.upload_progress.enabled = 0): Drupal doesn't
use it, and it covers later bugs in it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 05:34:02 -09:00
Philip Peterson
7807dcd642 Fixes
Some checks failed
CI / build (push) Successful in 3m0s
CI / bump-infra (push) Failing after 1s
2026-06-12 01:55:53 -07:00
Philip Peterson
7ec8835ef0 wip
Some checks failed
CI / build (push) Failing after 8m27s
CI / bump-infra (push) Has been skipped
2026-06-12 01:38:31 -07:00
Philip Peterson
d4c0cf7030 fix dockerfile
Some checks failed
CI / build (push) Failing after 3m25s
CI / bump-infra (push) Has been skipped
2026-06-12 00:07:07 -07:00
Philip Peterson
f1d4f6a45e builder
Some checks failed
CI / build (push) Failing after 3m30s
CI / bump-infra (push) Has been skipped
2026-06-11 23:56:14 -07:00
Philip Peterson
b293be37b9 composer
Some checks failed
CI / build (push) Failing after 3m22s
CI / bump-infra (push) Has been skipped
2026-06-11 23:10:17 -07:00
Philip Peterson
69e6ef3e8b fixes 2026-06-05 00:04:37 -07:00
Philip Peterson
27e2b6f2d9 have Drupal forward logs to actual logs 2026-06-04 23:22:43 -07:00
Philip Peterson
642dee3c1f wip 2026-06-04 23:05:25 -07:00
Philip Peterson
bb84ca34a8 fixes 2026-06-04 22:52:41 -07:00
Philip Peterson
6879b056da Use sendmail only on dev 2026-06-03 23:30:44 -07:00
Philip Peterson
2dd6c7da22 Add email field to booking form + dev mail mocking
- Add required email input (with autocomplete="email") to the booking
  details form in the homepage Preact widget (rpt-booking.js).
  Update EMPTY_FORM, submit payload, confirmedAppointment, and success
  summary to include it. The form now collects: first/last name, email,
  phone, comments.

- Update ScheduleController::storeSlot to extract/pass email in the
  booking_request mail params (and require it for the full-contact path).
  Log failures with details; return a structured error with a user-friendly
  message instead of bare "mail_failed".

- riverside_pt_mail hook now includes the user's email in the notification
  body (when provided).

- Dev improvements for mail:
  - In DEBUG mode (default on localhost), force php_mail interface in
    settings.php so the mailer uses the sendmail_path override.
  - Dockerfile + entrypoint.sh now provide/install a fake-sendmail.sh
    that prints the full email (To, Subject, headers, body from the
    hook) to stderr (visible in `docker compose logs`) and always
    succeeds (exit 0). This prevents "sh: 1: /usr/sbin/sendmail: not
    found" and guarantees booking submissions never return the
    "unable to send confirmation email" error in dev.
  - In non-DEBUG, still uses symfony_mailer + Postmark as before.
  - The fake is also baked into the image for consistency.

- JS error handling now prefers the server-provided 'message' from
  the JSON error response (better UX for real mail failures).

- Update CLAUDE.md with the new email field + dev mail mocking behavior.

- New file: docker/php/fake-sendmail.sh (the mock).

This addresses the recent "mail_failed" issues while keeping production
email via Postmark.
2026-06-03 23:05:06 -07:00
Philip Peterson
63ce2ba2ef wip 2026-05-24 19:23:05 -07:00
Mork Swork
a1f1b5902e Tailwind 2026-05-16 11:45:33 -07:00
Mork Swork
81c82c3da8 Structure 2026-05-12 17:28:47 -07:00
Philip Peterson
5ee61b7c1d Load custom module 2026-05-01 05:39:57 -07:00
Philip Peterson
79a9512320 Clean up requires 2026-05-01 04:26:46 -07:00
Philip Peterson
c9062d0b3a Require special modules 2026-05-01 04:23:31 -07:00
Philip Peterson
4ef1864ecd Enable custom modules 2026-05-01 04:18:57 -07:00
Philip Peterson
d6d5aa0419 Downgrade to drupal 11 2026-05-01 04:01:12 -07:00
Philip Peterson
5bda0e5373 Add PATH env 2026-05-01 03:59:34 -07:00
Philip Peterson
acd91171da Initial commit 2026-04-20 00:33:56 -04:00