-
Notifications
You must be signed in to change notification settings - Fork 2
Roadmap
Synced from docs/ROADMAP.md @ daf9634. Edit there, not here.
A short-form list of shipped + in-flight + planned work. Detailed designs live under
docs/superpowers/specs/. Touching Compose? See
docs/compose-gotchas.md for known scope-shadowing
and stability traps before searching the internet for confusing errors.
⚠️ Stale: this roadmap was last refreshed for v1.3.0; the current release is v1.6.3 / vc257. Shipped/planned items below have not been reconciled since v1.3.0 and may be out of date. (Content intentionally left unrewritten — refreshing the roadmap is a product decision.)
Last refreshed for v1.3.0 (Reader intelligence — listening stats, tap-to-define dictionary, language auto-switch, in-app import). Prior refreshes: v1.2.x (Supertonic 3 voice family + polish), v1.1.5 (AGP 9 migration), v0.5.51.
The v0.5 line landed the bulk of the user-visible surface, and the v1.x line has since carried it to twenty-five fiction backends and four voice families — plus the AI chat heavies, performance work that hit the 0.8 s cold-launch target, the a11y pass, and the TechEmpower repositioning.
- KittenTTS lightest-tier voice family (v0.5.36, #119) — ~24 MB shared across 8 en_US speakers, "first chapter in 10 seconds" on slow devices
- Per-voice lexicon override (#197) — IPA pronunciation dictionaries per voice
- Kokoro phonemizer-lang override — per-voice language pinning for proper-noun fixes
- Full PCM cache series (v0.5.47–v0.5.49) — streaming-tee, cache-hit playback, background pre-render, Settings UI for cache size + eviction, status icons on chapter rows
- Magical brass voice-settings icon on the play screen replacing the buried
⋮overflow
- Cold launch 6.7 s → 0.8 s on Galaxy Tab A7 Lite (v0.5.46) — R8 minification + Baseline Profile (#409) +
isDebuggable=falsein release builds -
:baselineprofileproducer module — UI Automator walks the hot path on:appand emitsbaseline-prof.txtfor the AndroidX plugin to wire back
- Twelve a11y audit findings closed — high-contrast brass-on-near-black theme,
prefers-reduced-motioncollapses fold-in animations, TalkBack pacing tuned to chapter-list patterns - Accessibility settings subscreen — high-contrast toggle, reduced-motion toggle, dyslexia-friendly font opt-in
- Nav restructure — Settings becomes a primary destination; Browse and Follows tuck under Library
- Final four-tab dock —
{Playing · Library · Voices · Settings}(v0.5.50 revision) - InstantDB cross-device sync (#360, v0.5.12) — library / follows / positions / bookmarks / pronunciation / encrypted secrets
- Magical sign-in surface — InstantDB auth with brass-edged onboarding
- Cross-fiction memory (#217) — character/place/concept entities surface in per-book Notebook tab with manual edit
- Function calling (#216) — "Add this to my Reading shelf", "Queue chapter 5", "Open Voice Library" route through
ToolCatalog; brass-edged tool cards show in-flight state - Multi-modal image input (#215) — paste cover art/scene refs into chat (Anthropic + OpenAI native, auto-downscale to 1280 px / JPEG q=85)
- Library brass TechEmpower hero card at the top of the Library tab (#511)
- TechEmpower Home — dedicated screen with Discord peer support + dial 211 + Browse library + About cards
- README repositioning — leads with TechEmpower's mission, audiobook engine framed as "under the hood"
- Beautiful Notion covers (#514) — body-image fallback + brass-edged synthetic
BrandedCoverTilefor cover-less pages - Home-screen widget — Continue Listening + Play/Pause on Android home/lock surfaces
- AO3 auth PR1 (#426) — auth surface scaffolding; PR2 wires the WebView login flow
-
:source-telegram(#462) — public Telegram channels via Bot API -
:source-palace(#502) — Palace Project free-library catalog walker (OPDS); non-DRM titles only, LCP DRM deferred -
:source-slack(#454) — Slack channels as fictions via Web API -
:source-matrix(#457) — federated Matrix rooms as fictions
- 17 → 21 fiction backends — Telegram + Palace + Slack + Matrix (v0.5.51) on top of Hacker News, arXiv, PLOS, Discord, Wikisource, Radio Browser (v0.5.38)
-
@SourcePluginannotation + KSP processor (v0.5.27) — adding a backend is ~4 touchpoints; Plugin manager auto-discovers - Plugin manager Settings hub — brass-edged card grid iterating the registry
The v1.x line broadened sources, added a fourth voice family, and filled in the reading surface — culminating in the v1.3.0 Reader intelligence batch.
- OCR, PDF, and LibriVox sources (v1.1.0) — on-device scan-to-read (ML Kit), local PDF read-aloud, and public-domain human-narrated audiobooks; the roster reaches 25 fiction backends
- Supertonic 3 voice family — engine wired v1.2.0 (#1191), voices enabled v1.2.3, models hosted v1.2.4 (#1236); 10 en_US speakers, the fourth in-process family
- KittenTTS v0.8 voices (v1.1.5) — clearer nano models with named speakers
- In-reader highlights & notes (v1.1.3, #1079) — long-press select, pick a colour, optional note; persists and syncs
- Chapter content previews in the chapter list (v1.2.0, #1189) — opening-prose snippets under generically-numbered chapters
- Library shelves & sort — Reading / Read / Wishlist (many-to-many) + five sort modes (#793)
- Make-your-own-audiobook — chaptered
.m4bexport (#1003); plus EPUB export
- Bedtime auto-sleep (v1.1.4) + auto Do Not Disturb with the sleep timer (v1.2.0)
- Now-Playing home-screen widget — play/pause, next, sleep from the launcher
- First-run onboarding (v1.0, #599) — three-screen welcome
- Play Store readiness (v1.1.6 / v1.2.0) — accessibility statement, content reporting, compliance polish
- Supertonic 3 voice family — the v1.2.0 headline, fourth in-process family (see Sources & voices above; engine #1191, models hosted v1.2.4 #1236)
- Collapsible headers on scroll in Library & Browse (#1195)
- Auto Do Not Disturb with the sleep timer (#1190)
- Safer sign-out — confirm before sign-out (#1197) + separate "Delete cloud data" action to purge the InstantDB record (#1139, #1248)
- Report objectionable content mailto in About (#1140)
- Hotfix train (v1.2.1–v1.2.5) — radio/LibriVox load race, false focus-lost on ExoPlayer streams, descriptive User-Agent centralized across sources, AO3 politeness gate, Supertonic XNNPACK crash
The headline release: the reader gets smart about language, words, and your habits.
- Listening statistics dashboard (#1261) — time listened, streaks, per-book breakdown
- Tap-to-define dictionary (#1260) — tap a word in the reader for a Wiktionary definition
- Auto-detect language + switch TTS voice (#1259) — picks a voice that matches the text's language
- In-app file import (#1258) — open EPUB / PDF / TXT straight from device storage
- In-book text search (#1257) — find a phrase across a fiction's downloaded chapters
- Per-fiction playback speed (#1256) — speed is remembered per book and auto-restored
- AI catalog search (#1255) — the per-book AI agent can search the source catalog as a tool
- Share quotes (#1254) — copy / share a passage with title + author attribution
- Search behind login for AO3 & Royal Road (#1253) — avoids anonymous rate-limit blocks
- Separate "purge remote data" from sign-out (#1252) — sign out without wiping synced data
- AO3 PR2 — login wiring (#426) — wire the WebView login on top of PR1's auth surface. Unlocks bookmarks/marked-for-later sync and adult-content gating.
- Discord channel-as-fiction wiring follow-up (#502 follow-up) — improvements after the initial Palace Project pass.
- Settings hub follow-through — the v0.5.38 hub has 13 cards; 5 route to subscreens, 7 still fall back to the legacy long-scroll. Each one wants its own subscreen.
- v1.0 release keystore (#16) — generate a proper release keystore + signing config; ship a stable signed APK from a CI secret. Currently shipping with the checked-in debug keystore (stable since v0.4.15 but not the production posture).
- VoxSherpa knob exposure (research draft) — loudness normalization, breath pause, pitch envelope as user-tunable settings.
- Auto integration — Media3
MediaSessionService+MediaBrowserServiceexposes the library to Android Auto. - Wear OS pairing polish —
:wearbuilds; pairing-and-discovery viaplay-services-wearableworks in principle but isn't a polished experience yet.
-
AudioTrack.Builder+AudioAttributes— swap the legacy six-argAudioTrack(STREAM_MUSIC, …)ctor for the modern Builder form withUSAGE_MEDIA/CONTENT_TYPE_SPEECH. Defer until we're sure the v0.4.x fuzz fix sticks across all chips. - Voice-tagging in
candela.json— let a fiction author specify a preferred narrator voice (narrator: "en-US-Andrew"). Per-fiction default; user can still override. - Sleep timer end-of-chapter mode — fade-out tail polish.
- Knowledge graph for fiction (#147) — per-book Notebook seeding into MemPalace. Cross-fiction memory (#217) is the read path; the seed-into-MemPalace write path is the remaining piece.
- Comprehensive site + docs sweep for v0.5.51 — landing page, install, voices, architecture, ROADMAP, screenshots, README, wiki, version.json (this PR).
Start here
Using Candela
- Fiction sources
- Reading & library
- Export & extras
- Voices
- Voice catalog
- AI chat
- Cloud sync
- Accessibility
- Settings reference
- Troubleshooting
Developer
Project