- Move internal/build/ to internal/tenant/
- Rename assets for clarity
- Add tenant-blog.js for shared blog functionality
- Update style.css with improved code block styling
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Move studio from root to frontends/studio/
- Add owner-tools frontend for live blog admin UI
- Add shared ui component library
- Set up npm workspaces for frontends
- Add enhanced code block extension for editor
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Change Cache-Control from s-maxage=31536000 to max-age=0,must-revalidate
for all HTML pages and sitemap (fixes stale content after settings change)
- Remove Cloudflare PurgeURLs call since we're not caching HTML at CDN
- Add Quicklink for client-side prefetching on public blog pages
- Make main branch deploy automatic (remove manual trigger)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Use s-maxage=86400 for Cloudflare edge caching (24h) with max-age=0
so browsers always fetch from CDN. Combined with existing cache purge
on content changes, this minimizes origin server load while ensuring
fresh content.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Use s-maxage=86400 for Cloudflare edge caching (24h) with max-age=0
so browsers always fetch from CDN. Combined with existing cache purge
on content changes, this minimizes origin server load while ensuring
fresh content.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Source .env file before docker compose to load REGISTRY_URL
- Add event: manual to deploy-prod (requires manual trigger in Woodpecker)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add build tag to studio/embed.go to exclude from test builds
- Create stub embed_testing.go for test builds
- Update CI pipeline to use -tags testing
- Add tests for webhook signature verification and status normalization
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>