Commit Graph
7 Commits
Author SHA1 Message Date
nmemmertandClaude Sonnet 5.5 2a64f29a00 Second hardening pass: atomic data writes, bible-passage limits, webhook SSRF guard, note sanitizing, CI gates; v2.10.1
Publish Container / build (push) Successful in 15m46s
- Atomic temp-file + rename for all JSON data writes (no truncated files on crash)
- /api/bible-passage: rate limit, range caps (60 verses), bounded cache
- Admin webhooks: https-only, block private/internal/Tailscale addresses (checked at registration and delivery), no redirects
- Resend webhook token compare is timing-safe
- DOMPurify on rendered study notes and broadcast preview
- CI runs lint + tests before build
- Permissions-Policy and HSTS (production) headers; JSON error handler for /api
- Tests for URL safety and atomic writes

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-09 09:00:28 -04:00
nmemmertandClaude Sonnet 5.5 ddcaec0ddf Two concurrent series lanes, Complete studies, self-paced finished books; v2.9.0
Publish Container / build (push) Successful in 17m50s
- Study status 'complete' (manual or auto when all lessons released); stays enrollable and self-paced (no sequential lock, Resume button, Finished Studies hub section)
- Studies get lane (A/B) and expected start date; planned studies show "Starts <date>"; hub shows next lesson date instead of hardcoded pace
- Second concurrent series (homepage card, admin panel) with its own scheduled launch; transitions are per lane and flip the ending study to Complete and the incoming study to Active
- Finished books link to their study: "Study This Book" on playlist page, audio-only link from hub (playlist stays public, no account)
- Admin: bulk release scheduler (every N days), same-day collision warning, linked-study selects
- Weekly digest no longer dumps a finished study's backlog on late enrollees
- CI: build and tag the container as :beta on pushes to the beta branch

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-08 10:14:02 -04:00
nmemmertandClaude Sonnet 4.6 b236e69f22 Switch Gitea workflow back to ubuntu-latest runner; v2.0.49
Publish Container / build (push) Successful in 13m50s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-09-22 10:24:36 -04:00
nmemmertandClaude Sonnet 4.6 8d5a983a94 Remove QEMU, build linux/arm64 natively on ARM runner; v2.0.48
Publish Container / build (push) Failing after 22s
Runner is on the ARM server so linux/arm64 builds natively — no QEMU
or cross-compilation needed. Drop setup-qemu-action and amd64 platform.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-09-22 10:23:17 -04:00
nmemmertandClaude Sonnet 4.6 22b82af3de Add Gitea Actions workflow with fast-builder runner; v2.0.46
Publish Container / build (push) Failing after 5m25s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-09-22 09:27:48 -04:00
nmemmertandClaude Sonnet 4.6 90c72c3265 Revert Gitea Actions workflow; v2.0.45
Publish Container / docker (push) Has been cancelled
Reverts the .gitea/workflows/docker-publish.yml addition from v2.0.44.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-09-22 08:42:10 -04:00
nmemmertandClaude Sonnet 4.6 861b32d54c Add Gitea Actions workflow for container builds; v2.0.44
Publish Container / docker (push) Has been cancelled
Mirrors the existing .github/workflows/docker-publish.yml so Gitea
Actions picks it up from the standard .gitea/workflows/ location.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-09-22 08:39:17 -04:00