nmemmert and Claude Sonnet 5.5
3cf7e02561
Contact page redesign: message-type chips with hints, side-by-side names, character count, sticky profile card, form first on phones, compact Ko-fi card; v2.27.0
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-12 16:22:27 -04:00
nmemmert and Claude Sonnet 5.5
d06fcba60b
Resources page redesign: tabs + compact grids; download page redesign with site header, two-column card and a mobile-safe form; v2.26.0
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-12 16:19:28 -04:00
nmemmert and Claude Sonnet 5.5
9268514219
Search bar pinned again, now flush under the header at every width (sticky offset follows the header's real height); v2.25.2
...
Publish Container / build (push) Successful in 15m47s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-12 16:10:31 -04:00
nmemmert and Claude Sonnet 5.5
5801af9dfb
Search bar scrolls away with the page instead of staying pinned under the header; v2.25.1
...
Publish Container / build (push) Has been cancelled
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-12 16:07:04 -04:00
nmemmert and Claude Sonnet 5.5
d0741d628e
Admin shortcut in the account menu, switched on per study user from /admin; v2.25.0
...
Publish Container / build (push) Has been cancelled
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-12 16:03:41 -04:00
nmemmert and Claude Sonnet 5.5
853e758bab
Desktop type scale: page titles 48px, section headings 32px, hero 64px, About copy 17px; keep certificate title out of the scale; v2.24.0
...
Publish Container / build (push) Successful in 16m14s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-12 15:05:42 -04:00
nmemmert and Claude Sonnet 5.5
99d8b23567
Mobile: one type scale across public pages (h1 32px, hero 40px, h2 24px, nothing under 12px, About copy 17px); v2.23.3
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-12 14:46:39 -04:00
nmemmert and Claude Sonnet 5.5
5fb44f0490
Header: Follow on Spotify button gets the Spotify icon, solid gold style, hover/focus states and a bigger mobile tap target; v2.23.2
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-12 14:41:16 -04:00
nmemmert and Claude Sonnet 5.5
9e01c04249
Fix sideways scroll on phones: clip the hero glow on narrow screens; v2.23.1
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-12 14:39:18 -04:00
nmemmert and Claude Sonnet 5.5
54575c22ef
Header: replace My Account nav link with an account icon in the top right (sign-in link / account menu), collapse header below 900px; v2.23.0
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-12 14:36:22 -04:00
nmemmert and Claude Sonnet 5.5
4a7c3cc967
Q&A: pinned questions are featured on the home page, home cards link to the full answer, newest answer first; v2.22.1
...
Publish Container / build (push) Successful in 16m39s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-12 14:30:04 -04:00
nmemmert and Claude Sonnet 5.5
960ee41375
Rework Q&A: admin inbox with one-step publish, topics and scripture references; simpler public page with ask-a-question; stop exposing asker emails; v2.22.0
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-12 14:27:17 -04:00
nmemmert and Claude Sonnet 5.5
e6bef529e6
Dashboard: Nuggets attention line counts uploads still open in the workflow and clears when finished; v2.21.0
...
Publish Container / build (push) Successful in 16m6s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-12 12:02:30 -04:00
nmemmert and Claude Sonnet 5.5
35d3c9ca33
Season Check: series card, study guide, next-season handover and unseasoned-script checks; v2.20.1
...
Publish Container / build (push) Has been cancelled
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-12 11:56:42 -04:00
nmemmert and Claude Sonnet 5.5
50b0e83c2b
Add Season Check page and dashboard card: per-lane readiness (season, study, lessons, highlights, feed); v2.20.0
...
Publish Container / build (push) Has been cancelled
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-12 11:54:00 -04:00
nmemmert and Claude Sonnet 5.5
77bce2ae0c
Hold episode highlights until the episode is in the Spotify feed; auto-fill study lesson audio from the feed by season + episode; v2.19.0
...
Publish Container / build (push) Successful in 16m16s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-12 11:47:22 -04:00
nmemmert and Claude Sonnet 5.5
69d445013a
Podcast workflow: Finished seasons section grouping fully released seasons; v2.18.0
...
Publish Container / build (push) Successful in 16m19s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-12 10:34:44 -04:00
nmemmert and Claude Sonnet 5.5
1bf11a3669
Resolve the Seafile host over IPv4 only (musl/Alpine ENOTFOUND on IPv6 NXDOMAIN); v2.17.3
...
Publish Container / build (push) Successful in 14m53s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-12 10:01:13 -04:00
nmemmert and Claude Sonnet 5.5
22c0038ebb
Nuggets workflow audio: include failure reason in the error message; v2.17.2
...
Publish Container / build (push) Successful in 15m27s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-12 09:38:17 -04:00
nmemmert and Claude Sonnet 5.5
11f3d76e9b
Fix Nuggets workflow audio: serve with audio content type (nosniff blocked octet-stream), show playback errors; v2.17.1
...
Publish Container / build (push) Successful in 16m34s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-12 08:56:41 -04:00
nmemmert and Claude Sonnet 5.5
326838e5bc
Podcast workflow: episodes start manually via Start new episode (name, season, ep #); scripts no longer create entries; v2.17.0
...
Publish Container / build (push) Successful in 16m42s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-12 08:33:23 -04:00
nmemmert and Claude Sonnet 5.5
3a69e03e60
Podcast workflow: per-lane season number set on the page, only that season shown; v2.16.1
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-12 08:28:04 -04:00
nmemmert and Claude Sonnet 5.5
900a3efee3
Podcast workflow: assign lanes by hand, match by season, unique keys for unseasoned episodes; drop old checklist data file; v2.16.0
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-12 08:25:00 -04:00
nmemmert and Claude Sonnet 5.5
ac1b06f945
Fix admin dashboard crash after removing upcoming events (drop Upcoming card); v2.15.2
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-12 08:21:37 -04:00
nmemmert and Claude Sonnet 5.5
28fc822132
Podcast workflow steps: read script, record, edit, upload; v2.15.1
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-12 08:18:51 -04:00
nmemmert and Claude Sonnet 5.5
f181cdb182
Add Podcast Episode Workflow (Lane A / Lane B) with Nuggets steps; released dates from the feed; v2.15.0
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-12 08:16:32 -04:00
nmemmert and Claude Sonnet 5.5
5c2f9113b7
Remove unused calendar styles; v2.14.4
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-12 08:12:22 -04:00
nmemmert and Claude Sonnet 5.5
13d0eb6651
Remove podcast checklist backend, calendar events and reminder emails; v2.14.3
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-12 08:11:09 -04:00
nmemmert and Claude Sonnet 5.5
99b19faede
Remove Lane A/B production checklist panel from admin; v2.14.2
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-12 08:09:28 -04:00
nmemmert and Claude Sonnet 5.5
66b7bbef52
Remove standalone podcast-checklist app; admin checklist now uses the existing checklist backend; v2.14.1
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-12 08:06:32 -04:00
nmemmert and Claude Sonnet 5.5
d6d2c087b2
Add Podcast Production Checklist (Lane A / Lane B) to admin; v2.14.0
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-12 08:04:10 -04:00
nmemmert and Claude Sonnet 5.5
ffb3551b7e
Add Nuggets Episode Workflow to admin (listen, cold open, record, edit, Spotify); v2.13.0
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-12 07:59:04 -04:00
nmemmert and Claude Sonnet 5.5
eff119e7f0
Redesign study Notes, Reflection questions and Community pages; v2.12.0
...
Publish Container / build (push) Successful in 15m20s
- Notes: two-pane reader with searchable lesson list and snippets, track chips, friendlier empty states
- Reflection questions: numbered question cards, answered progress bar, unsaved-changes status, sticky save bar, share-to-discussion only when discussion is open
- Community: compact header, lesson browser sidebar with post counts (select on mobile), guidelines card, card-style posts
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-09 12:00:09 -04:00
nmemmert and Claude Sonnet 5.5
0ab94bfcd4
Discussion stays open for finished studies; only planned studies are closed; v2.11.2
...
Publish Container / build (push) Successful in 16m10s
A finished study is just no longer the main study, so students who take it later still need discussion.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-09 11:52:56 -04:00
nmemmert and Claude Sonnet 5.5
f1d4909acb
Discussion only open while a study is active; v2.11.1
...
Publish Container / build (push) Has been cancelled
- Community posts, replies, likes and lesson comments are refused (403) for finished and planned studies
- Reading a closed study's community/comments returns an empty list with closed:true
- Discussion hub lists only active studies; community page shows a closed notice
- Lesson page hides Lesson Discussion, 'Discuss this lesson' and 'Go to Community' for inactive studies; Community buttons hidden on study/dashboard pages
- Tests for isStudyDiscussionOpen
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-09 11:49:03 -04:00
nmemmert and Claude Sonnet 5.5
bb83f3e8c5
Completed studies: finishing a study keeps access after leaving; certificates always shown; no reminders for finished studies; v2.11.0
...
Publish Container / build (push) Successful in 15m31s
- Completion is stored on the user (completedStudySlugs, sticky) when every lesson is done; backfilled at startup
- Lessons, notes, progress, quiz, community and certificate stay open for completed studies after leaving the enrollment
- Dashboard/My Account list completed studies with Review Lessons and certificate access
- Study page shows a completed banner
- Lesson-release reminders, weekly digest and re-engagement emails skip finished studies
- Fix: streak fields (current/longest/last studied) and firstCompletionAt were dropped on every restart when users were loaded
- Tests for completion/access/re-engagement
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-09 11:42:58 -04:00
nmemmert and Claude Sonnet 5.5
7301982bb1
Fix certificate View link (wrong /study/certificate URL), certificates in My Account, name on certificate; v2.10.10
...
Publish Container / build (push) Successful in 15m29s
- Certificate URLs in the account overview and the issuance email pointed at /study/certificate/:token,
which the router treated as a lesson page; now /certificate/:token (old links redirect)
- My Account Certificates card lists every enrolled study: progress, Generate, View, Copy link, Download PNG, Share
- Certificate canvas used a non-existent /api/study-account route and always printed 'Student'; now reads the account name
- Panel no longer collapses after generating
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-09 11:13:44 -04:00
nmemmert and Claude Sonnet 5.5
899e715067
Redesign My Account page: profile header, stats, progress cards, settings/security menus, danger zone; v2.10.9
...
Publish Container / build (push) Successful in 16m15s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-09 10:45:37 -04:00
nmemmert and Claude Sonnet 5.5
669cd6555c
Redesign study landing page: track cards, numbered steps, tidier hero and Q&A callout, themed progress bars; v2.10.8
...
Publish Container / build (push) Has been cancelled
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-09 10:41:18 -04:00
nmemmert and Claude Sonnet 5.5
52568db82b
Sync package-lock version with package.json (2.10.7)
...
Publish Container / build (push) Has been cancelled
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-09 10:37:53 -04:00
nmemmert and Claude Sonnet 5.5
b8410da5f4
Study pages: progress bar, collapsible chapters, compact upcoming lessons, class-based badges, cleaner sign-in/enroll gates; v2.10.7
...
Publish Container / build (push) Has been cancelled
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-09 10:37:44 -04:00
nmemmert and Claude Sonnet 5.5
640d0c1c18
Redesign sign-in / create-account page: split layout, benefits panel, show/hide password, real form submit; v2.10.6
...
Publish Container / build (push) Has been cancelled
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-09 10:33:26 -04:00
nmemmert and Claude Sonnet 5.5
b708371cc5
Finished book page: move QR code up to the top right of the hero; v2.10.5
...
Publish Container / build (push) Successful in 15m22s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-09 10:18:27 -04:00
nmemmert and Claude Sonnet 5.5
fcc6604926
Finished book QR label: say it downloads the full album; v2.10.4
...
Publish Container / build (push) Successful in 15m11s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-09 09:50:01 -04:00
nmemmert and Claude Sonnet 5.5
4d37fac641
Finished Books detail: one tabbed Episodes section (Highlights / All Episodes), searchable playlist, on-demand player; v2.10.3
...
Publish Container / build (push) Has been cancelled
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-09 09:47:23 -04:00
nmemmert and Claude Sonnet 5.5
b96e9a79dc
Redesign Start Here page: numbered step cards, icons, connectors, mobile stack; v2.10.2
...
Publish Container / build (push) Has been cancelled
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-09 09:25:54 -04:00
nmemmert and Claude 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
nmemmert and Claude Sonnet 5.5
8a796964b9
Security & hardening pass: scrypt password hashing, persisted admin sessions, upvote/analytics rate limits, dependency fixes, healthcheck, lint cleanup; v2.10.0
...
Publish Container / build (push) Successful in 17m3s
- Study passwords: salted scrypt; legacy SHA-256 hashes verified and upgraded on login
- Admin sessions persisted (hashed tokens) so deploys no longer log the admin out
- Upvotes: rate limit + one per client per question, approved questions only; rate limit on analytics play/event
- npm audit: 46 -> 4 vulnerabilities (tiptap bumped to 3.31.4)
- Untrack per-user data (study users/notes/progress/etc.) from git
- Dockerfile HEALTHCHECK; node --test suite for password hashing
- Fix email template cards remounting (lost input focus) on each keystroke
- Lint: 34 errors -> 0
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-09 08:45:39 -04:00
nmemmert and Claude Sonnet 5.5
e2150e1cd7
One companion study guide per series; v2.9.8
...
Publish Container / build (push) Successful in 21m12s
- Second series gets its own guide (Resources page card, download page, admin fields)
- When a series ends (scheduled or manual) its guide moves onto its Finished Book, which shows a guide button; the main series' guide is cleared unless the launch supplies a new one
- Lane B launch schedule can supply the incoming series' guide
- Download lookup covers second-series and finished-book guides; guide URLs are sanitized on save and on use
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-08 16:00:52 -04:00
nmemmert and Claude Sonnet 5.5
39691aedb3
Admin: show and manage highlights archived on Finished Books (restore/remove); v2.9.7
...
Publish Container / build (push) Successful in 15m33s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-08 15:43:04 -04:00