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

Candela wiki

Current version: v1.4.5 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: twenty-seven 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.4.5 — Six bug fixes + secrets audit — Inbox and history taps load correctly, RR follow works when signed in, lock screen skip wired to chapter advance, voice model crash replaced with graceful recovery, CI hardened for all runners.

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


Pages

What's new in v1.4.5

Six bug fixes + secrets audit. Inbox and history taps load correctly, RR follow works when signed in, lock screen skip wired to chapter advance, voice model crash replaced with graceful recovery, CI hardened for all runners.

  • Inbox "new chapter" tap no longer hangs on "loading chapter" — now calls startListening before navigating, mirroring the proven FictionDetail path. (#1343 / #1345)
  • History entry tap no longer hangs on "loading chapter" — same root cause and fix pattern as inbox, with autoPlay = false to preserve browse intent. (#1350 / #1351)
  • RR follow works when signed in — harvest CSRF token from /fictions/search (reliable server-rendered form) instead of the fiction page (AJAX-driven, no hidden input). Splits the old single error into three honest outcomes. (#1331 / #1346)
  • Lock screen / notification pill skip buttons wired to chapter advance via handleSeek override in EnginePlayer. (#1341 / #1348)
  • Voice model crash (native SIGSEGV) replaced with graceful "re-download or pick another voice" error — VoiceManager.modelFilesPresent() guards the JNI load path. (#1342 / #1349)
  • CI local.properties materialization uses rebranded candela path + Actions secret fallback + ::warning:: on sync-disabled tag builds. Defense-in-depth .gitignore entries for .env and service-account JSON. (#1347)

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