Claude
239730fd3b
Book store: Project Gutenberg through its own catalogue feed (Gutendex timed out), Standard Ebooks through its public pages (its OPDS feed needs a paid sign-in)
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01UaC9HmtHMdRP8dAbN4wAKj
2026-10-25 03:11:35 +00:00
Claude
60291c0e21
Save to Files: copy books, free audiobooks and Verse By Verse lessons and handouts into Seafile (background job, progress, skips what is there)
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01UaC9HmtHMdRP8dAbN4wAKj
2026-10-25 02:34:35 +00:00
Claude
af51b37ae4
Verse By Verse: handouts open as a plain link (no pop-up blocking), friendly page when a lesson has none; studies with an empty or partial feed are read from their page
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01UaC9HmtHMdRP8dAbN4wAKj
2026-10-25 02:27:59 +00:00
Claude
eed07bb1ee
Podcast: Verse By Verse Ministry studies (browse, play lesson after lesson, handouts, synced place)
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01UaC9HmtHMdRP8dAbN4wAKj
2026-10-25 02:11:17 +00:00
Claude
04b16b6432
Radio: internet radio with The Journey FM featured, Radio Browser search, saved stations and now playing
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01UaC9HmtHMdRP8dAbN4wAKj
2026-10-25 02:06:26 +00:00
Claude
27df8031ca
Audiobooks: free audiobooks you saved or started now show in the main Audiobooks list (and under Continue listening), even when the audiobook library cannot be reached
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01UaC9HmtHMdRP8dAbN4wAKj
2026-10-25 01:28:49 +00:00
Claude
c59ff51361
Audiobooks: free audiobooks from LibriVox (search, shelf, chapters, synced listening position)
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01UaC9HmtHMdRP8dAbN4wAKj
2026-10-25 01:15:31 +00:00
Claude
84ba0000b8
Books: book store with Project Gutenberg, Standard Ebooks, Internet Archive and OPDS catalogues
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01UaC9HmtHMdRP8dAbN4wAKj
2026-10-25 01:07:39 +00:00
Claude
b6944b4ee1
Mail: select several messages (long press, Ctrl/Cmd or Shift click, or the select button) to mark read or unread, flag, archive, move or delete
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01UaC9HmtHMdRP8dAbN4wAKj
2026-10-24 20:22:08 +00:00
Claude
8acf9418dc
Mail: swipe a message left to delete, right to archive. Books: page flip by tap and swipe works on touch screens
...
The page frame is wider than the screen (pages sit side by side inside it), so tap positions
were measured against the wrong width and taps on touch devices never turned the page.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01UaC9HmtHMdRP8dAbN4wAKj
2026-10-24 20:15:53 +00:00
Claude
07c16ddc25
Books: EPUB, PDF and DOCX reader with synced position, bookmarks, notes and highlights
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01UaC9HmtHMdRP8dAbN4wAKj
2026-10-24 02:40:36 +00:00
nmemmert and Claude Sonnet 5.5
1c089c4a10
Transcripts: new and existing episodes are transcribed in the background (published transcript first, else whisper), with a status line in Health
...
build-container / build (push) Successful in 3m29s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-23 11:46:15 -04:00
nmemmert
e7bd24bbaa
Transcripts: a podcast episode gets its transcript going as soon as you play it (published, else made on your server)
build-container / build (push) Successful in 4m6s
2026-10-23 11:43:34 -04:00
nmemmert
747002924d
Transcripts: say why a show's own transcript was not found; read Podgrab fields whatever their capitals
build-container / build (push) Successful in 4m2s
2026-10-23 11:42:43 -04:00
nmemmert
c82bd7cae9
Transcripts: check the whisper model is installed, download it (trying each form the service has used), and say what came back if it will not
build-container / build (push) Failing after 6m18s
2026-10-23 11:25:50 -04:00
nmemmert and Claude Sonnet 5.5
0534bf7c4b
Transcripts for podcasts and audiobooks: the show's own, or speech-to-text on your server (whisper service)
...
build-container / build (push) Successful in 13m20s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-23 10:52:59 -04:00
nmemmert and Claude Sonnet 5.5
e984f11a94
Mail: a button per account with its own unread count (kept fresh), instead of a dropdown
...
build-container / build (push) Successful in 14m15s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-23 10:31:58 -04:00
nmemmert and Claude Sonnet 5.5
7198efaccd
Movies & TV: arrows and drag to slide rows (no scrollbar needed), Trailer button (Plex extras, else a YouTube search)
...
build-container / build (push) Successful in 11m18s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-23 10:30:24 -04:00
nmemmert
d598501393
Home: the Tasks card lists what is overdue or due this week from every list, with a tick
build-container / build (push) Successful in 10m51s
2026-10-23 09:55:23 -04:00
nmemmert and Claude Sonnet 5.5
2b79160f95
Tasks: an All view with every list, NE Hub and iCloud, together
...
build-container / build (push) Successful in 12m21s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-23 09:54:33 -04:00
nmemmert and Claude Sonnet 5.5
732906bc7a
Movies & TV: posters in a row are all the same size
...
build-container / build (push) Successful in 12m23s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-23 09:47:32 -04:00
nmemmert and Claude Sonnet 5.5
3166a7b1ab
Mail in Search, Pick up where you left off on Home (evening first), Cast/AirPlay buttons
...
build-container / build (push) Successful in 13m46s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-23 09:34:51 -04:00
nmemmert
1981e66b8a
Admin health report (Plex, mail accounts, disk, last backup)
2026-10-23 09:33:33 -04:00
nmemmert
2c8afdef79
Keyboard shortcuts for mail and a shortcut list, offline help and refresh on return, push alerts for new mail
2026-10-23 09:32:56 -04:00
nmemmert and Claude Sonnet 5.5
92cf86bf5c
Movies & TV: Resume banner, poster-tinted detail page, friendlier empty state
...
build-container / build (push) Successful in 9m53s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-23 09:23:13 -04:00
nmemmert and Claude Sonnet 5.5
2de5e343b2
Polish: card hover lift, fade-in posters, skeleton loading, snap rows, glowing progress, stronger detail backdrop, lyrics glow
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-23 09:22:02 -04:00
nmemmert and Claude Sonnet 5.5
c49693bac6
Movies & TV: remove or clear Continue watching, time left, Recently added and Unwatched rows kept on device, sort/genre/unwatched filters, hold-for-actions, Skip intro/credits
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-23 09:21:03 -04:00
nmemmert and Claude Sonnet 5.5
bbbb8ef5d5
Mail: faster open/delete (instant delete and archive, separate background IMAP connection, one-fetch message read, bodies saved on device with prefetch); Lyrics: no sweep across line-synced lines
...
build-container / build (push) Successful in 10m28s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-23 08:40:17 -04:00
nmemmert and Claude Sonnet 5.5
2635e4615d
Fix: Podcast screen failed to load (its script ran before the player's); load it after the player
...
build-container / build (push) Successful in 12m24s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-22 16:25:55 -04:00
nmemmert and Claude Sonnet 5.5
eb64e4964d
Signal: a sent message appears at once (dimmed while Signal takes it), in order, and comes back to the box if it fails
...
build-container / build (push) Successful in 9m21s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-22 16:22:05 -04:00
nmemmert and Claude Sonnet 5.5
62ff4d815d
Audiobooks: built-in library, playback and synced progress through the audiobook player (classic frame kept)
...
build-container / build (push) Canceled after 2m57s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-22 14:48:05 -04:00
nmemmert and Claude Sonnet 5.5
675df5710b
Podcast: built-in screen for Podgrab (shows, episodes, playback, search)
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-22 14:41:59 -04:00
nmemmert and Claude Sonnet 5.5
924a024b0b
PWA: install button, one icon badge for Signal, mail and tasks due, share target for files, manifest launch handler
...
build-container / build (push) Successful in 22m24s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-22 13:06:19 -04:00
nmemmert and Claude Sonnet 5.5
a9c277b497
Mail: Outlook.com inside the app through Microsoft Graph (folders, reader, compose, reply, unread badge); Cypht webmail removed
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-22 08:09:11 -04:00
nmemmert and Claude Sonnet 5.5
c1f4a220f9
Web Push reminders for tasks and events (Settings -> Reminders)
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-22 07:56:01 -04:00
nmemmert and Claude Sonnet 5.5
4625848048
Offline shell (precache, offline notice) and accessibility layer (skip link, button names, sheet focus and Escape)
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-22 07:46:10 -04:00
nmemmert and Claude Sonnet 5.5
cdf862427e
Bundled Roundcube webmail in the Mail tab, optional Microsoft 365 OAuth sign-in, collapsible menu
...
build-container / build (push) Successful in 2m42s
- docker-compose: roundcube service with inline config (Gmail/iCloud/Yahoo presets, framing allowed, persistent key); only reachable through the hub
- hub passes /webmail/ through to Roundcube behind the passkey sign-in; Microsoft's sign-in page opens in the whole window and returns to the Mail tab
- M365_* settings add 'Login with Microsoft 365' (README has the Entra app registration steps)
- Side menu collapses to icons or hides completely (remembered per device, Ctrl/Cmd+B)
- tools/webmail-test.js
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-21 08:56:13 -04:00
nmemmert and Claude Sonnet 5.5
1a29d500d3
Link the app's code with a build number so a proxy cache cannot serve an old copy
...
build-container / build (push) Successful in 2m55s
The People screens did not appear after the redeploy even after a hard refresh: a caching layer
(for example Nginx Proxy Manager's "Cache Assets") was still serving the old app.js. The pages now
reference /app.js?v=<build>, /style.css?v=<build> etc., where the build changes with every release,
so a stale cached file at the old address is never used. The service worker no longer precaches
unversioned app code.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-20 17:00:36 -04:00
nmemmert and Claude Sonnet 5.5
12a1e50a0e
Always revalidate the app's files, tell open pages when a newer version exists, and log why a session is refused
...
build-container / build (push) Successful in 1m58s
An open page kept running the old version after a deploy (the single page never reloads), so the new
People screens did not appear. Static files are now sent with no-cache + ETag (304 when unchanged), icons
are cached for a week, /api/config reports a build stamp, and the app shows "A new version is available -
Reload" when it comes back into view or every 10 minutes. The service worker cache name is bumped.
The server also logs, at most once a minute per reason, why it refused a session cookie (unknown account,
turned off, signed out everywhere, bad signature, expired) without printing the cookie.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-20 16:55:44 -04:00
nmemmert and Claude Sonnet 5.5
044589686c
PWA for iPhone and iPad: PNG icons, splash screens, manifest; stay signed in for 180 days
...
build-container / build (push) Successful in 1m56s
- iOS ignores SVG touch icons: add 120/152/167/180 apple-touch-icons, 192/512 and maskable manifest icons,
and 25 splash screens (every iPhone size, iPad portrait+landscape incl. 12.9")
- Icons and splash screens are public so iOS can fetch them without a session
- Manifest: id, scope, categories, shortcuts; iOS standalone polish (no callout, no overscroll)
- Sessions last SESSION_DAYS (default 180) and renew daily while in use
- tools/make-icons.py regenerates the artwork
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-20 15:44:39 -04:00
nmemmert and Claude Sonnet 5.5
55e0c39171
NE Hub: Seafile, OnlyOffice, Plex, calendar and mail in one PWA
...
build-container / build (push) Canceled after 4m16s
- Mobile-first PWA (phone tab bar with More menu, iPad/desktop rail)
- Passkey (WebAuthn) sign-in gates the whole app; first passkey via setup code
- Files: Seafile browse/upload/new doc/rename/move/share link/preview/delete
- In-app OnlyOffice editing with JWT-signed configs and save-back to Seafile
- Plex music player via plex.tv sign-in and a server-side proxy
- Calendar agenda from private ICS links (recurrence + time zones)
- Search, Home dashboard, webmail deep links, audiobooks frame
- Dockerfile, compose, and a Gitea Actions workflow that builds the image
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-20 13:22:03 -04:00