-
build-20-6625370
StableAll checks were successfulBuild and Release / build (push) Successful in 19m5sreleased this
2026-10-22 11:28:46 +00:00 | 0 commits to master since this releaseCommit:
6625370e6bBuild: release
Message:
Prepare for F-Droid: metadata, attribution, no dependency block, 0.7.1
- fastlane/metadata/android/en-US: title, short and full description,
changelog for versionCode 12, and a 512px icon rendered from
branding/generate.py's icon. F-Droid reads these straight from the
repo. Screenshots still to add (images/phoneScreenshots/). - dependenciesInfo off: AGP otherwise puts a dependency block encrypted
with a Google key into the APK signature, which F-Droid flags. - Attribution: OpenBible.info's cross references are CC BY 4.0, which
requires credit - now in licenses/third-party, the README and
Settings > About, alongside the public-domain texts and the model. - README: the exact hosts the app connects to and when, what data stays
on the phone, and where voice input goes. - Version 0.7.1 (12).
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- fastlane/metadata/android/en-US: title, short and full description,
-
build-19-5c9f5db
StableAll checks were successfulBuild and Release / build (push) Successful in 13m36sreleased this
2026-10-18 16:03:30 +00:00 | 7 commits to master since this releaseCommit:
5c9f5db31cBuild: release
Message:
0.7.0: Explain opens with an explanation, chat history, no more flicker
- Tapping Explain now explains straight away instead of waiting for a
starter question. Answers render as full-width reading cards under the
question, with follow-up suggestions above the input. - Chat history: list of past chats (from the chat header or Settings),
reopen one to keep asking. The saved turns are fed back to the model as
initialMessages, trimmed to recent turns to fit the 4096-token window.
Chats can be deleted. - Fix text flashing while a reply streams: the markdown renderer re-parsed
on every recomposition (its default flavour/parser/link-handler args are
new objects each time and key the parse) and showed an empty Loading
frame for each parse. Keep those remembered and show the last parsed
result until the next is ready. - Fix the reply blinking out when it finishes: the streamed text was
cleared before the saved message arrived from the database. It now hands
over in the same state update. - Fix scrolling while a reply streams: it auto-scrolled to the reply's top
on every chunk, yanking the reader back up. It now follows only when
already at the bottom, and to the end of the reply. - Version 0.7.0 (versionCode 11).
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Tapping Explain now explains straight away instead of waiting for a
-
build-18-44948c7
StableAll checks were successfulBuild and Release / build (push) Successful in 13m40sreleased this
2026-10-18 15:20:42 +00:00 | 8 commits to master since this releaseCommit:
44948c70c4Build: release
Message:
Fix crash when asking the Explain chat a question
- Guard the first GPU replies with the crash marker, not just init: a GPU
that initialises but faults in prefill/decode crashed on every question
and never fell back to CPU. A GPU generation error also disables GPU. - Declare libvndksupport.so next to libOpenCL.so (per LiteRT-LM docs), so
Adreno OpenCL actually loads instead of LiteRT falling back to WebGPU. - Cap maxNumTokens at 4096 so the KV cache isn't sized for the full
context window on the first prefill. - Stream via the callback API: cancelling now calls cancelProcess(), the
native conversation is only freed after generation has ended (closing
mid-reply was a use-after-free), and the chunk buffer is unlimited so
tokens are no longer dropped under a busy main thread.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Guard the first GPU replies with the crash marker, not just init: a GPU
-
build-17-7493dc1
StableAll checks were successfulBuild and Release / build (push) Successful in 18m5sreleased this
2026-10-18 09:43:32 +00:00 | 9 commits to master since this releaseCommit:
7493dc1678Build: release
Message:
New app icon and brand art, drawn in code
An open Bible with an amber cross rising from it, on warm charcoal (the
app's amber palette), replacing the placeholder brown book. Adds a
themed-icon (monochrome) layer for Android 13+.branding/generate.py draws the launcher layers, icon.svg/icon-512.png,
a 4:3 project card and a banner from one set of shapes, the same way
Inkwell's generator does.Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)
-
build-16-32df21e
StableAll checks were successfulBuild and Release / build (push) Successful in 16m21sreleased this
2026-10-18 08:34:49 +00:00 | 10 commits to master since this releaseCommit:
32df21ecbeBuild: release
Message:
Fix FontLibrary build: no return inside expression-bodied functions
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)
-
build-14-0ab4efe
StableAll checks were successfulBuild and Release / build (push) Successful in 13m45sreleased this
2026-10-18 06:30:14 +00:00 | 12 commits to master since this releaseCommit:
0ab4efe82eBuild: release
Message:
Fix Verse of the Day card stuck loading, animate every chapter chip
- Home: a CancellationException that wasn't a real cancellation (a library
timeout) silently ended the VOTD loader and left the skeleton up forever.
Retry up to 3 times, then show a Retry card instead of a skeleton. - Book list: chapter chips past 30 skipped the entrance animation and popped
in while 19-30 were still fading. Every chip now animates, with the wave
squeezed into ~360ms regardless of chapter count.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Home: a CancellationException that wasn't a real cancellation (a library
-
build-13-8b9d79e
StableAll checks were successfulBuild and Release / build (push) Successful in 15m42sreleased this
2026-10-17 20:54:34 +00:00 | 13 commits to master since this releaseCommit:
8b9d79e1c6Build: release
Message:
Fix stuck reader after Verse of the Day, flaky widget settings, stale data
Reader: bar visibility and "actually reading" now come from user scrolls
only (nested scroll sees drags and flings, not animateScrollToItem). The
automatic jump to a linked verse used to count as scrolling down, hiding
the top bar and chapter controls on arrival - the screen looked stuck until
you scrolled up or went back. The same jump recorded reading progress and
bumped the streak for a mere Verse of the Day visit, overwriting "continue
reading". Bars also stay up while a linked verse is being shown.Tabs: open at their own root instead of saving/restoring per-tab stacks. A
reader opened from Home or the Journal was saved into that tab and came
straight back when the tab (or Read) was tapped.Widget: settings are collected inside the Glance composition. update()
during a live session only recomposes and doesn't re-run provideGlance,
so values read up front (opacity, widget theme, accent) were drawn stale
whenever a session was still alive - changes applied only sometimes. The
verse also reloads on a translation or day change.Stale data: Home's Verse of the Day, greeting and date follow the clock
(an app left open overnight showed yesterday's verse); a streak with a
missed day now shows 0 instead of the last stored count (ReadingStreak.
activeOn, used by Home and the reader).Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)
-
build-12-ec9b297
StableAll checks were successfulBuild and Release / build (push) Successful in 13m35sreleased this
2026-10-17 20:16:56 +00:00 | 14 commits to master since this releaseCommit:
ec9b297f4fBuild: release
Message:
Customizable theme (mode, accent, Material You) and a redesigned widget
Appearance (Settings -> Appearance, stored in DataStore):
- Theme: System / Light / Dark. System bar icons follow the chosen mode.
- Accent: Amber (default), Ember, Gold, Sage, Teal, Ocean, Rose, Plum.
Whole light/dark schemes are generated from the accent's hue; Amber dark
matches the desktop Quickshell palette (#1c1916 charcoal, cream text,
#fca23c), Amber light is warm cream with a deep orange primary. - Match wallpaper (Material You), Android 12+.
- Theme changes cross-fade instead of snapping.
- Fixes the selected-tab indicator, chips and segmented buttons showing
Material's default lavender: secondary/tertiary roles were never set.
Widget:
- Redesign: rounded card in the app's accent palette, accent dot and date
header, serif verse, accent reference; responsive from 2x1 (reference +
one line) up to tall (whole verse, larger type). - Background opacity setting (0-100%) with a live preview in Settings over
a stand-in wallpaper; only the background is translucent, text stays
solid. Redrawn when accent or opacity changes.
Also: MainActivity remembers the flows it collects (a fresh flow per
recomposition restarted collection and could re-flash the splash), and
the launch window background matches the new default palette.Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
build-11-0630a52
StableAll checks were successfulBuild and Release / build (push) Successful in 13m32sreleased this
2026-10-17 19:51:20 +00:00 | 17 commits to master since this releaseCommit:
0630a52354Build: release
Message:
Run the on-device model on the GPU, falling back to CPU
LlmInferenceEngine tries Backend.GPU() first and falls back to the CPU
when GPU init fails. A GPU driver can also kill the process natively,
which no catch sees, so an in-progress flag is written before the attempt
and cleared after; if a launch finds it still set, that device is pinned
to CPU from then on. Declare the vendor OpenCL libraries with
uses-native-library (required=false) so Android 12+ lets LiteRT load them.Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)
-
build-10-f9e5ea8
StableAll checks were successfulBuild and Release / build (push) Successful in 13m54sreleased this
2026-10-17 19:37:32 +00:00 | 18 commits to master since this releaseCommit:
f9e5ea85e0Build: release
Message:
Fix chat compile error: AnimatedVisibility scope inside Box
The starter-questions AnimatedVisibility sat in a Box nested in a Column,
so it resolved to the ColumnScope overload, which the Box's scope makes
illegal to call implicitly. Move it into a top-level StarterQuestions
composable with no enclosing layout scope.Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)