Skip to content

Releases: techempower-org/candela

v1.13.1

Choose a tag to compare

@github-actions github-actions released this 13 Jul 15:45

Release build for v1.13.1.

  • candela-v1.13.1.apk — phone / tablet (sideload)
  • candela-wear-v1.13.1.apk — Wear OS companion ("Library Nocturne"), sideload to the watch
  • candela-v1.13.1.aab — Android App Bundle for Play Store upload (#1456)

The two APKs are signed with the project's checked-in keystore (stable since v0.4.15) so the watch ↔ phone Data Layer bridge pairs — sideload-only distribution today. The .aab is release-signed for Play upload only when built on a runner that has the storyvox.release* keystore props (katana); on any other runner it is debug-signed and Play will reject it. Upload to Play Console is still manual (no publisher automation yet).

What's Changed

  • docs: refresh stale README + wiki bottom (source counts, versions, roadmap) by @jphein in #1682
  • build(deps): bump androidx.compose:compose-bom from 2026.06.00 to 2026.06.01 in the compose group across 1 directory by @dependabot[bot] in #1610
  • fix: TechEmpower → TechEMPOWER in user-facing strings (#1671) by @jphein in #1683
  • ci: disable Dependabot auto-rebase to stop the build-swarm OOM by @jphein in #1684
  • test: harden Voice Notes backup-rules exclusion gate (#1659) by @jphein in #1687
  • build: bundle FULL native debug symbols in release (#1674) by @jphein in #1690
  • build(deps): bump com.github.k2-fsa:sherpa-onnx from 1.13.3 to 1.13.4 by @dependabot[bot] in #1689
  • build(deps): bump the hilt group across 1 directory with 3 updates by @dependabot[bot] in #1688
  • build(deps): bump the kotlin-ecosystem group across 1 directory with 2 updates by @dependabot[bot] in #1686
  • build(deps): bump the wear group across 1 directory with 4 updates by @dependabot[bot] in #1611
  • build(deps): bump the testing group across 1 directory with 2 updates by @dependabot[bot] in #1612
  • build(deps): bump hilt-work from 1.3.0 to 1.4.0 by @dependabot[bot] in #1613
  • build(deps): bump androidx.baselineprofile from 1.5.0-alpha06 to 1.5.0-alpha07 by @dependabot[bot] in #1614
  • build(deps): bump androidx.hilt:hilt-navigation-compose from 1.3.0 to 1.4.0 by @dependabot[bot] in #1615
  • build(deps): bump aboutlibraries from 15.0.2 to 15.0.3 by @dependabot[bot] in #1616
  • build(deps): bump androidx.concurrent:concurrent-futures from 1.2.0 to 1.3.0 by @dependabot[bot] in #1617
  • test: add Compose-UI test toolchain to :feature (#1661) by @jphein in #1693
  • refactor: dedupe Tier-3 pool cap-on-failure across voice plugins (#1503) by @jphein in #1694
  • fix: consume the shared URL so Share → Candela adds it (#1679) by @jphein in #1692
  • feat: scroll chapter list to the resume chapter on open (#1676) by @jphein in #1695

Full Changelog: v1.13.0...v1.13.1

v1.13.0

Choose a tag to compare

@github-actions github-actions released this 10 Jul 20:54

Release build for v1.13.0.

  • candela-v1.13.0.apk — phone / tablet (sideload)
  • candela-wear-v1.13.0.apk — Wear OS companion ("Library Nocturne"), sideload to the watch
  • candela-v1.13.0.aab — Android App Bundle for Play Store upload (#1456)

The two APKs are signed with the project's checked-in keystore (stable since v0.4.15) so the watch ↔ phone Data Layer bridge pairs — sideload-only distribution today. The .aab is release-signed for Play upload only when built on a runner that has the storyvox.release* keystore props (katana); on any other runner it is debug-signed and Play will reject it. Upload to Play Console is still manual (no publisher automation yet).

What's Changed

  • feat(settings): complete deadline-reminder regression bar (#1631 follow-up) by @jphein in #1650
  • fix(test): restore Test Compile broken by #1650 (main hotfix) by @jphein in #1651
  • docs(changelog): screener shipped a preview seed, not 33 programs by @jphein in #1653
  • chore(db): commit exported Room v19 schema JSON (backfill from #1639) by @jphein in #1654
  • feat(settings): parked settings trio — sleep-timer default #1590, Palace config #1591, AO3 row #1592 by @jphein in #1656
  • feat(notes): Voice Notes storage foundation — NotesDatabase + backup rules (Phase 1) by @jphein in #1658
  • feat(notes): Voice Notes UI — list / record / detail + Notes dock tab (Phase 4) by @jphein in #1660
  • feat(notes): Voice Notes transcription — OfflineTranscriber + WorkManager (Phase 2b) by @jphein in #1662
  • fix(notes): eliminate bidirectional lost-update via column-scoped writes (#1663) by @jphein in #1665
  • feat(notes): Voice Notes recording — AudioRecorder + mic FGS (Phase 2a) by @jphein in #1666
  • feat(notes): Voice Notes summarization — consent-gated LLM summary (Phase 3) by @jphein in #1664
  • docs: Voice Notes design spec + plan (#1657) by @jphein in #1668
  • feat(notes): non-tab nav entry for Voice Notes (rail + Library top-bar waveform) by @jphein in #1670

Full Changelog: v1.12.6...v1.13.0

v1.12.6

Choose a tag to compare

@github-actions github-actions released this 06 Jul 17:51

Release build for v1.12.6.

  • candela-v1.12.6.apk — phone / tablet (sideload)
  • candela-wear-v1.12.6.apk — Wear OS companion ("Library Nocturne"), sideload to the watch
  • candela-v1.12.6.aab — Android App Bundle for Play Store upload (#1456)

The two APKs are signed with the project's checked-in keystore (stable since v0.4.15) so the watch ↔ phone Data Layer bridge pairs — sideload-only distribution today. The .aab is release-signed for Play upload only when built on a runner that has the storyvox.release* keystore props (katana); on any other runner it is debug-signed and Play will reject it. Upload to Play Console is still manual (no publisher automation yet).

What's Changed

  • feat(settings): deadline-reminder enable toggle (#1631 slice 2) by @jphein in #1649
  • feat(settings): un-bury Discord/Telegram/Google News + local folders into Content Sources (§C) by @jphein in #1648

Full Changelog: v1.12.5...v1.12.6

v1.12.5

Choose a tag to compare

@github-actions github-actions released this 06 Jul 16:50

Release build for v1.12.5.

  • candela-v1.12.5.apk — phone / tablet (sideload)
  • candela-wear-v1.12.5.apk — Wear OS companion ("Library Nocturne"), sideload to the watch
  • candela-v1.12.5.aab — Android App Bundle for Play Store upload (#1456)

The two APKs are signed with the project's checked-in keystore (stable since v0.4.15) so the watch ↔ phone Data Layer bridge pairs — sideload-only distribution today. The .aab is release-signed for Play upload only when built on a runner that has the storyvox.release* keystore props (katana); on any other runner it is debug-signed and Play will reject it. Upload to Play Console is still manual (no publisher automation yet).

What's Changed

  • feat(settings): Downloads & Storage subscreen + global default download mode (#1632) by @jphein in #1642
  • feat(settings): Benefits hub entry — re-discover Screener/Decoder (#1634) by @jphein in #1643
  • feat(settings): migrate Outline + Wikipedia onto the config seam (#1624 §B) by @jphein in #1645
  • feat(teleprompter): persist recording knobs + countdown + Scripts presets (#1633) by @jphein in #1646
  • feat(settings): Notifications subscreen — un-bury inbox toggles + permission row (#1631) by @jphein in #1647

Full Changelog: v1.12.4...v1.12.5

v1.12.4

Choose a tag to compare

@github-actions github-actions released this 06 Jul 05:30

Release build for v1.12.4.

  • candela-v1.12.4.apk — phone / tablet (sideload)
  • candela-wear-v1.12.4.apk — Wear OS companion ("Library Nocturne"), sideload to the watch
  • candela-v1.12.4.aab — Android App Bundle for Play Store upload (#1456)

The two APKs are signed with the project's checked-in keystore (stable since v0.4.15) so the watch ↔ phone Data Layer bridge pairs — sideload-only distribution today. The .aab is release-signed for Play upload only when built on a runner that has the storyvox.release* keystore props (katana); on any other runner it is debug-signed and Play will reject it. Upload to Play Console is still manual (no publisher automation yet).

What's Changed

  • fix(import): preserve line & paragraph breaks when importing a text file (#1619) by @jphein in #1622
  • revert: drop the v1.12.2 sleep-timer Log.w diagnostics (#1604) — sleep verified fixed by @jphein in #1620
  • fix(epub): preserve paragraph structure in real EPUB chapters (#1623) by @jphein in #1625
  • fix(notion): flattenNested child_page descent guard + prove official child_page decode (#1621) by @jphein in #1629
  • fix(sources): shared jsoup HTML→text util; fix RSS & Standard Ebooks paragraph/entity loss (#1626, #1627) by @jphein in #1636
  • refactor(sources): retire divergent HTML strippers onto shared core-data htmlToPlainText (#1628) by @jphein in #1638
  • feat(settings): group the hub into 7 categories + expose Cloud Voices (#1624 Wave 1) by @jphein in #1637
  • fix(cache): revalidate stale chapter LISTS on parse-logic bump — CHAPTER_PLAN_VERSION (#1621) by @jphein in #1639
  • feat(settings): Content Sources subscreen — un-bury per-source config (#1630) by @jphein in #1641

Full Changelog: v1.12.3...v1.12.4

v1.12.3

Choose a tag to compare

@github-actions github-actions released this 06 Jul 02:05

Release build for v1.12.3.

  • candela-v1.12.3.apk — phone / tablet (sideload)
  • candela-wear-v1.12.3.apk — Wear OS companion ("Library Nocturne"), sideload to the watch
  • candela-v1.12.3.aab — Android App Bundle for Play Store upload (#1456)

The two APKs are signed with the project's checked-in keystore (stable since v0.4.15) so the watch ↔ phone Data Layer bridge pairs — sideload-only distribution today. The .aab is release-signed for Play upload only when built on a runner that has the storyvox.release* keystore props (katana); on any other runner it is debug-signed and Play will reject it. Upload to Play Console is still manual (no publisher automation yet).

What's Changed

  • chore(screener): drift-check + docs to keep the app corpus in sync with /qualify by @jphein in #1607
  • fix(sleep): marshal timer-fire pause to Main — stop Player-wrong-thread crash (#1606) by @jphein in #1609

Full Changelog: v1.12.2...v1.12.3

v1.12.2

Choose a tag to compare

@github-actions github-actions released this 06 Jul 01:25

Release build for v1.12.2.

  • candela-v1.12.2.apk — phone / tablet (sideload)
  • candela-wear-v1.12.2.apk — Wear OS companion ("Library Nocturne"), sideload to the watch
  • candela-v1.12.2.aab — Android App Bundle for Play Store upload (#1456)

The two APKs are signed with the project's checked-in keystore (stable since v0.4.15) so the watch ↔ phone Data Layer bridge pairs — sideload-only distribution today. The .aab is release-signed for Play upload only when built on a runner that has the storyvox.release* keystore props (katana); on any other runner it is debug-signed and Play will reject it. Upload to Play Console is still manual (no publisher automation yet).

What's Changed

  • fix(playback): atomic _state.update{} at all writers — race-free shake-toggle (#1595 follow-up) by @jphein in #1603
  • fix(sleep): raise DND/shake diagnostics to Log.w so they survive release minification (#1574 #1595) by @jphein in #1604

Full Changelog: v1.12.1...v1.12.2

v1.12.1

Choose a tag to compare

@github-actions github-actions released this 05 Jul 22:29

Release build for v1.12.1.

  • candela-v1.12.1.apk — phone / tablet (sideload)
  • candela-wear-v1.12.1.apk — Wear OS companion ("Library Nocturne"), sideload to the watch
  • candela-v1.12.1.aab — Android App Bundle for Play Store upload (#1456)

The two APKs are signed with the project's checked-in keystore (stable since v0.4.15) so the watch ↔ phone Data Layer bridge pairs — sideload-only distribution today. The .aab is release-signed for Play upload only when built on a runner that has the storyvox.release* keystore props (katana); on any other runner it is debug-signed and Play will reject it. Upload to Play Console is still manual (no publisher automation yet).

What's Changed

  • fix(ui): Inbox tab badge overlap (#1600) + library chip gap + TechEmpower Browse icon by @jphein in #1601
  • fix(sleep): fix shake-toggle clobber + instrument DND auto-arm & shake-extend (#1574 #1595) by @jphein in #1602

Full Changelog: v1.12.0...v1.12.1

v1.12.0

Choose a tag to compare

@github-actions github-actions released this 05 Jul 21:33

Release build for v1.12.0.

  • candela-v1.12.0.apk — phone / tablet (sideload)
  • candela-wear-v1.12.0.apk — Wear OS companion ("Library Nocturne"), sideload to the watch
  • candela-v1.12.0.aab — Android App Bundle for Play Store upload (#1456)

The two APKs are signed with the project's checked-in keystore (stable since v0.4.15) so the watch ↔ phone Data Layer bridge pairs — sideload-only distribution today. The .aab is release-signed for Play upload only when built on a runner that has the storyvox.release* keystore props (katana); on any other runner it is debug-signed and Play will reject it. Upload to Play Console is still manual (no publisher automation yet).

What's Changed

  • feat(settings): 'Read the handbook' entry point in About (#1563, #1544) by @jphein in #1565
  • feat(docs): multi-page document scanner → shareable PDF (#1513) by @jphein in #1566
  • feat(techempower): offline benefits screener — client-side /qualify (#1517) by @jphein in #1567
  • feat(techempower): benefits letter decoder — NOA form-number → verified explainer (#1516) by @jphein in #1568
  • feat(techempower): "make the call" — guided phone scripts + tap-to-dial + capture (#1518) by @jphein in #1571
  • fix(notion): auto-refresh Browse on connect — key paginator on config (#1556) by @jphein in #1575
  • dx(sources): enforce + document the fiction-id ":" prefix (#1564) by @jphein in #1576
  • dx(scaffold): --local Reader as interface + bound impl (Context-backed sources) (#1562) by @jphein in #1578
  • feat(google-drive): Connect button + empty state in Browse (#1534 item 1) by @jphein in #1579
  • ux(settings): coverage + discoverability overhaul — findable settings (#1577) by @jphein in #1587
  • feat(techempower): 'My Documents' — encrypted, device-locked wallet for benefits proofs (#1514) by @jphein in #1573
  • feat(settings): source-config coverage (Slack/Matrix) + reader read-along + DND label fix (#1577) by @jphein in #1594
  • feat(docs): saved household profile — autofill scanned forms (#1519) by @jphein in #1572
  • feat(sleep): default bedtime/DND auto-sleep ON (#1574) by @jphein in #1596
  • feat(techempower): notice deadline keeper — photo → local reminder (#1515) by @jphein in #1569
  • fix(docs): disclose on-device mic use in privacy + Data Safety (#1589) by @jphein in #1597
  • feat(docs): photo → fillable PDF — fill a paper form on-phone, export flattened (#1512) by @jphein in #1570
  • fix(wallet): thread-safety + error handling in EncryptedFileWalletStore/WalletViewModel by @jphein in #1598
  • fix(google-drive): OAuth threading + empty-state error-type guard (#1588) by @jphein in #1599

Full Changelog: v1.11.0...v1.12.0

v1.11.0

Choose a tag to compare

@github-actions github-actions released this 04 Jul 16:01

Release build for v1.11.0.

  • candela-v1.11.0.apk — phone / tablet (sideload)
  • candela-wear-v1.11.0.apk — Wear OS companion ("Library Nocturne"), sideload to the watch
  • candela-v1.11.0.aab — Android App Bundle for Play Store upload (#1456)

The two APKs are signed with the project's checked-in keystore (stable since v0.4.15) so the watch ↔ phone Data Layer bridge pairs — sideload-only distribution today. The .aab is release-signed for Play upload only when built on a runner that has the storyvox.release* keystore props (katana); on any other runner it is debug-signed and Play will reject it. Upload to Play Console is still manual (no publisher automation yet).

What's Changed

  • fix(ao3): CF WAF/1020 block 403s → retryable NetworkError by @jphein in #1541
  • build: version-catalog mockwebserver alias + drop redundant jvmTarget by @jphein in #1542
  • fix(ksp): disambiguate generated Hilt module names by package hash by @jphein in #1546
  • dx: polish epic paragraph split + impact determinism (#1525) by @jphein in #1545
  • feat(rss): decouple subscription identity from fetch URL (#1498) by @jphein in #1549
  • feat(rss): persist item bodies at refresh so taps never re-fetch (#1497) by @jphein in #1547
  • ux(notion): distinct connected-but-empty Browse state on first fetch (#1511) by @jphein in #1552
  • feat(google-news): base-url seam + contract-kit coverage (#1491) by @jphein in #1550
  • feat(settings): generic per-source config-field seam + Prime feed-URL UI (#1531, #1535) by @jphein in #1553
  • fix(rss): address #1547/#1549 review — merge N+1, refresh clobber, robustness by @jphein in #1554
  • feat(scaffold): new-source.sh --local/--auth/--xml modes (#1526, #1529, #1533) by @jphein in #1548
  • docs: post-v1.10.0 pass — 33 sources, wiki setup-guide sync, microsite unstale, docs index by @jphein in #1557
  • fix(testkit): fail on mis-routed listPathFragment + di-module docs (#1523, #1522) by @jphein in #1551
  • feat(browse): consume @SourcePlugin(iconName) for the source glyph (#1527) by @jphein in #1555
  • build(testkit): split voice kit into :core-voice-testkit by @jphein in #1560
  • ux(settings): 'Replay the welcome tour' row in About — no restart (#1558) by @jphein in #1559
  • feat: in-app Candela Handbook — bundled narrated user guide (first --local dogfood) by @jphein in #1561

Full Changelog: v1.10.0...v1.11.0