Skip to content
github-actions[bot] edited this page Jul 6, 2026 · 130 revisions

Candela wiki

Current version: v1.12.3 Candela is TechEmpower's accessible resource app. Browse free tech guides, connect with our peer-support Discord, dial 211 for local help — and listen to any of it through a neural-voice audiobook engine that reads everything aloud.

Under the hood: thirty-three fiction backends (Royal Road, GitHub, RSS / Atom feeds, local EPUB folders, local PDF files, on-device OCR, self-hosted Outline wikis, Memory Palace, Project Gutenberg, LibriVox, Archive of Our Own, Standard Ebooks, Wikipedia, Wikisource, Radio with 30k+ stations, Notion, Hacker News, arXiv, PLOS, Discord, Telegram, Palace Project, Slack, Matrix, Readability web articles); three in-process voice families (Piper, Kokoro, KittenTTS) with optional Azure HD cloud voices; AI chat per fiction across seven LLM providers with cross-fiction memory, function calling, and multi-modal image input; built for Android phones, tablets, and Wear OS.

📦 Latest release: v1.12.3 — Lunar Pulsar — Fixes a crash when a sleep timer runs out. Still carries the v1.12.2 sleep diagnostics (reverted in the next release, once shake-to-extend is confirmed on-device).

📖 Source: github.com/techempower-org/candela · License: GPL-3.0 · Site: candela.techempower.org


Pages

What's new in v1.12.3

Lunar Pulsar. Fixes a crash when a sleep timer runs out. Still carries the v1.12.2 sleep diagnostics (reverted in the next release, once shake-to-extend is confirmed on-device).

  • App crashed every time a sleep timer expired — the timer-expiry pause touched the Media3 player off the main thread, which Media3 forbids (verifyApplicationThread), so the process died and restarted instead of gently pausing. Pre-existing since #1190; it only started surfacing when #1596 made auto-sleep fire by default on real devices. The pause is now marshalled to the main thread (Dispatchers.Main.immediate — inline for the UI/media-button callers, a hop only for the off-main timer caller), matching the existing #553/#969 fixes. This was the real symptom behind the "auto sleep timer not working" report. (#1606, #1574)
  • Retains the v1.12.2 sleep-timer Log.w diagnostics + shake peak logging (#1604) so shake-to-extend (#1595) can be root-caused on-device in the same build; reverted in the next release.

Recent v0.5 highlights

  • Cold launch 6.7 s → 0.8 s on Galaxy Tab A7 Lite (v0.5.46 — R8 + Baseline Profile + isDebuggable=false).
  • Full PCM cache series — streaming-tee, cache-hit playback, background pre-render, Settings UI, status icons (v0.5.47–v0.5.49).
  • Twelve a11y findings closed (v0.5.43) — high-contrast brass-on-near-black theme, reduced-motion fold-in, TalkBack pacing.
  • Nav settled — four-tab dock {Playing · Library · Voices · Settings} (v0.5.50 final, after v0.5.40 restructure).
  • Cross-device InstantDB sync (v0.5.39+) — library, follows, positions, bookmarks, pronunciation, encrypted secrets.
  • KittenTTS lightest-tier voice family (v0.5.36 — #119).

Quick links

Clone this wiki locally