dare.co.uk session report — 2026-05-07

TL;DR

Production picked up two security/perf wins (HSTS live, restructured _headers cache rules), and the repo moved out of ~/Downloads/ to escape macOS Downloads-folder TCC restrictions. 5 commits sit on staging ready for production — sitemap cleanup, DMCA policy migration, brand spelling polish — awaiting explicit auth to ff-merge into main. Worker plumbing for the voip.ms AI-voice callback is scaffolded behind a feature flag, off by default, ready to wire when the beta contract lands.


Shipped to production today

Change How Verification
HSTS enabled Cloudflare dashboard → SSL/TLS → Edge Certificates strict-transport-security: max-age=15552000 (6 months, no includeSubDomains, no preload)
_headers restructured Merged via GitHub PR #6 (adeb5b00310fe443) Cache headers now max-age=3600, s-maxage=86400, stale-while-revalidate=604800 (was max-age=0, must-revalidate)

Security-header set on https://www.dare.co.uk/: - strict-transport-security: max-age=15552000 - x-frame-options: SAMEORIGIN - x-content-type-options: nosniff - referrer-policy: strict-origin-when-cross-origin - permissions-policy: geolocation=(), microphone=(), camera=()


Staged for promotion (5 commits, awaiting auth)

e486502e  Track dmca@ Google alias swap as a follow-up
e8d95435  Spell legal entity as DANIEL DARE LIMITED in DMCA agent block
621e960d  Anchor DARE entity in anti-spam policy intro
783a6eb2  Migrate DMCA policy content from legacy WP body
8028404d  Clean sitemap: drop dead URLs and Yoast XSL

Sitemap cleanup (Stage 1 of 3)page-sitemap.xml down from 12 URLs to 6 (clean 200s only); dropped 7 dead/redirected entries (/forum/, /clients/, /clients-2/, /error-404/, /checkout/, /customer-dashboard/, /shop/) and added the missing /contact/. Yoast SEO attribution and the main-sitemap.xsl stylesheet removed across all three sitemap files. post-sitemap.xml (702 URLs) is unchanged in content, just metadata-cleaned. xmllint --noout clean.

DMCA policy migration — body content pulled from the legacy WP backup, anglicised, modernised HTML, brand-aligned. New Designated Copyright Agent block uses the Companies House registered office of DANIEL DARE LIMITED (no. 03078067, 7 Jardine House, Harrovian Business Village, Bessborough Road, Harrow, Middlesex HA1 3EX). Email routes to hello@dare.co.uk for now (see follow-ups). Counter-notice section added per 17 USC §512(g) best practice.

Anti-spam-policy parity — opening paragraph now anchors the entity (“DARE — the organisation behind dare.co.uk —”) to match the privacy-policy / dmca-policy convention.

Brand spelling polishDMCA agent block now uses DANIEL DARE LIMITED (all caps, matching Companies House register and Dan’s preferred legal-entity casing).

Eyeball at https://staging-dare-co-uk.xlabs.workers.dev/dmca-policy/ before merging.


Worker scaffolding (not in this repo)

~/Downloads/dare-contact-worker.js — added a feature-flagged stub for the voip.ms AI-voice callback. Off by default (env.VOIPMS_AI_ENABLED !== 'true'). Activates only on pref === 'phone' and UK E.164 phone (mirroring the existing SMS gating). Currently logs the assembled call context; the single TODO block marks the insertion point for the real voip.ms beta API call.

Pre-code design decisions still owed (per CLAUDE.md): voip.ms beta API contract, prompt design (chat-Claude owns), call timing, failure fallback, cost ceiling, transfer-to-human flow, GDPR recording disclosure script.


Repo housekeeping


Decisions captured to memory


Decisions NOT to ship


Open follow-ups

  1. Merge staging → main — 5 commits queued. Hook is requiring per-batch auth phrase. Either say “yes, merge staging (e486502e) into main and push”, or add a Bash allow rule to ~/.claude/settings.json for repeatable promotion.
  2. Friday traffic recompare — baseline from 2026-05-06: 10.36k req/day, 80.14% CDN, security layer, and DNS provider sitting in front of dare.co.uk.">CF cache / 14.81% origin / 5.05% mitigated. Recompare scheduled for tomorrow (2026-05-08). Origin-hit % should drop given the new edge-cache headers.
  3. dmca@dare.co.uk Google Workspace alias — set up, then swap address in dmca-policy/index.html (single <a href="mailto:…"> line).
  4. voip.ms beta integration — pre-code design decisions in chat-Claude before wiring the TODO in maybeFireAiVoiceCallback().
  5. Stage 2 sitemap automation — programmatic generator script (scripts/build-sitemap.mjs) that walks the repo, parses _redirects, emits both sitemaps. ~30 min in a future session.
  6. Stage 3 sitemap deploy hook — wire npm run sitemap into the predeploy step once Stage 2 is stable.

Generated 2026-05-07. Print to PDF via Cmd+P from a markdown viewer or VS Code preview.

Source: dare_session_report_2026-05-07.md · Rendered 2026-05-11 20:34