readio 0.2.3__tar.gz → 0.2.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (236) hide show
  1. {readio-0.2.3 → readio-0.2.4}/.github/workflows/codecov.yml +1 -1
  2. {readio-0.2.3 → readio-0.2.4}/.github/workflows/tests.yml +26 -4
  3. {readio-0.2.3 → readio-0.2.4}/.ledger/releaseledger/data/ledgers/main/events/events.jsonl +18 -0
  4. {readio-0.2.3 → readio-0.2.4}/.ledger/releaseledger/data/ledgers/main/releases/v0.2.3/entries/entry-0001.md +3 -3
  5. {readio-0.2.3 → readio-0.2.4}/.ledger/releaseledger/data/ledgers/main/releases/v0.2.3/entries/entry-0002.md +2 -2
  6. {readio-0.2.3 → readio-0.2.4}/.ledger/releaseledger/data/ledgers/main/releases/v0.2.3/entries/entry-0003.md +2 -4
  7. {readio-0.2.3 → readio-0.2.4}/.ledger/releaseledger/data/ledgers/main/releases/v0.2.3/entries/entry-0004.md +2 -2
  8. readio-0.2.4/.ledger/releaseledger/data/ledgers/main/releases/v0.2.3/entries/entry-0005.md +31 -0
  9. readio-0.2.4/.ledger/releaseledger/data/ledgers/main/releases/v0.2.3/entries/entry-0006.md +29 -0
  10. {readio-0.2.3 → readio-0.2.4}/.ledger/releaseledger/data/ledgers/main/releases/v0.2.3/release.md +4 -4
  11. readio-0.2.4/.ledger/releaseledger/data/ledgers/main/releases/v0.2.4/audit/commit-audit.yaml +212 -0
  12. readio-0.2.4/.ledger/releaseledger/data/ledgers/main/releases/v0.2.4/entries/entry-0001.md +46 -0
  13. readio-0.2.4/.ledger/releaseledger/data/ledgers/main/releases/v0.2.4/entries/entry-0002.md +66 -0
  14. readio-0.2.4/.ledger/releaseledger/data/ledgers/main/releases/v0.2.4/entries/entry-0003.md +51 -0
  15. readio-0.2.4/.ledger/releaseledger/data/ledgers/main/releases/v0.2.4/entries/entry-0004.md +47 -0
  16. readio-0.2.4/.ledger/releaseledger/data/ledgers/main/releases/v0.2.4/release.md +27 -0
  17. readio-0.2.4/.ledger/releaseledger/work/v0.2.4/audit-decisions.yaml +65 -0
  18. readio-0.2.4/.ledger/releaseledger/work/v0.2.4/audit.yaml +171 -0
  19. readio-0.2.4/.ledger/releaseledger/work/v0.2.4/entries.yaml +157 -0
  20. readio-0.2.4/.ledger/releaseledger/work/v0.2.4/evidence/18d1765.patch +1713 -0
  21. readio-0.2.4/.ledger/releaseledger/work/v0.2.4/evidence/2c5e221.patch +781 -0
  22. readio-0.2.4/.ledger/releaseledger/work/v0.2.4/evidence/4791e70.patch +828 -0
  23. readio-0.2.4/.ledger/releaseledger/work/v0.2.4/evidence/5840ad5.patch +2691 -0
  24. readio-0.2.4/.ledger/releaseledger/work/v0.2.4/evidence/manifest.json +155 -0
  25. readio-0.2.4/.ledger/releaseledger/work/v0.2.4/range.json +13 -0
  26. {readio-0.2.3/readio.egg-info → readio-0.2.4}/PKG-INFO +21 -6
  27. {readio-0.2.3 → readio-0.2.4}/README.md +19 -4
  28. {readio-0.2.3 → readio-0.2.4}/docs/changelog.md +20 -4
  29. {readio-0.2.3 → readio-0.2.4}/docs/index.md +20 -12
  30. {readio-0.2.3 → readio-0.2.4}/llm-guides/README.md +1 -1
  31. {readio-0.2.3 → readio-0.2.4}/llm-guides/ssmd/audio-drama.md +1 -1
  32. {readio-0.2.3 → readio-0.2.4}/llm-guides/ssmd/debate-pro-con.md +1 -1
  33. {readio-0.2.3 → readio-0.2.4}/llm-guides/ssmd/document-summary.md +1 -1
  34. {readio-0.2.3 → readio-0.2.4}/llm-guides/ssmd/dramatic-story.md +1 -1
  35. {readio-0.2.3 → readio-0.2.4}/llm-guides/ssmd/educational-explainer.md +1 -1
  36. {readio-0.2.3 → readio-0.2.4}/llm-guides/ssmd/funny-story.md +1 -1
  37. {readio-0.2.3 → readio-0.2.4}/llm-guides/ssmd/general-narration.md +1 -1
  38. {readio-0.2.3 → readio-0.2.4}/llm-guides/ssmd/guided-meditation.md +1 -1
  39. {readio-0.2.3 → readio-0.2.4}/llm-guides/ssmd/kids-story.md +1 -1
  40. {readio-0.2.3 → readio-0.2.4}/llm-guides/ssmd/language-learning.md +1 -1
  41. {readio-0.2.3 → readio-0.2.4}/llm-guides/ssmd/news-briefing.md +1 -1
  42. {readio-0.2.3 → readio-0.2.4}/llm-guides/ssmd/podcast-interview.md +1 -1
  43. {readio-0.2.3 → readio-0.2.4}/llm-guides/ssmd/podcast-roundtable.md +1 -1
  44. {readio-0.2.3 → readio-0.2.4}/llm-guides/ssmd/podcast-solo.md +1 -1
  45. {readio-0.2.3 → readio-0.2.4}/llm-guides/ssmd/quiz-trivia.md +1 -1
  46. {readio-0.2.3 → readio-0.2.4}/pyproject.toml +1 -1
  47. {readio-0.2.3 → readio-0.2.4}/readio/audio.py +4 -8
  48. readio-0.2.4/readio/backends/__init__.py +15 -0
  49. readio-0.2.4/readio/backends/base.py +122 -0
  50. readio-0.2.4/readio/backends/pykokoro.py +409 -0
  51. readio-0.2.4/readio/backends/registry.py +39 -0
  52. {readio-0.2.3 → readio-0.2.4}/readio/cli.py +367 -122
  53. {readio-0.2.3 → readio-0.2.4}/readio/config.py +57 -11
  54. readio-0.2.4/readio/lexicons.py +147 -0
  55. {readio-0.2.3 → readio-0.2.4}/readio/models.py +107 -4
  56. {readio-0.2.3 → readio-0.2.4}/readio/plan.py +106 -135
  57. {readio-0.2.3 → readio-0.2.4}/readio/reader.py +96 -131
  58. {readio-0.2.3 → readio-0.2.4}/readio/ssmd.py +10 -12
  59. {readio-0.2.3 → readio-0.2.4}/readio/synthesis.py +53 -8
  60. readio-0.2.4/readio/voices.py +351 -0
  61. {readio-0.2.3 → readio-0.2.4/readio.egg-info}/PKG-INFO +21 -6
  62. {readio-0.2.3 → readio-0.2.4}/readio.egg-info/SOURCES.txt +29 -0
  63. {readio-0.2.3 → readio-0.2.4}/readio.egg-info/requires.txt +1 -1
  64. {readio-0.2.3 → readio-0.2.4}/readio.egg-info/scm_file_list.json +29 -0
  65. readio-0.2.4/readio.egg-info/scm_version.json +8 -0
  66. {readio-0.2.3 → readio-0.2.4}/skill/readio/SKILL.md +9 -5
  67. {readio-0.2.3 → readio-0.2.4}/skill/readio/references/cli.md +22 -9
  68. {readio-0.2.3 → readio-0.2.4}/skill/readio/references/ssmd.md +1 -1
  69. {readio-0.2.3 → readio-0.2.4}/skill/readio/references/troubleshooting.md +9 -1
  70. readio-0.2.4/tests/test_backend_config.py +27 -0
  71. readio-0.2.4/tests/test_backend_dispatch.py +76 -0
  72. readio-0.2.4/tests/test_backends.py +24 -0
  73. {readio-0.2.3 → readio-0.2.4}/tests/test_cli.py +6 -0
  74. {readio-0.2.3 → readio-0.2.4}/tests/test_config.py +33 -0
  75. readio-0.2.4/tests/test_lexicon_catalog.py +60 -0
  76. readio-0.2.4/tests/test_lexicons_cli.py +98 -0
  77. {readio-0.2.3 → readio-0.2.4}/tests/test_llm_guides.py +1 -1
  78. {readio-0.2.3 → readio-0.2.4}/tests/test_packaging_metadata.py +2 -2
  79. {readio-0.2.3 → readio-0.2.4}/tests/test_plan.py +47 -0
  80. {readio-0.2.3 → readio-0.2.4}/tests/test_plan_no_tts_load.py +8 -0
  81. {readio-0.2.3 → readio-0.2.4}/tests/test_pykokoro_09_contract.py +2 -2
  82. {readio-0.2.3 → readio-0.2.4}/tests/test_pykokoro_09_regressions.py +23 -10
  83. readio-0.2.4/tests/test_reader_synthesis.py +134 -0
  84. {readio-0.2.3 → readio-0.2.4}/tests/test_render_from_plan.py +35 -4
  85. {readio-0.2.3 → readio-0.2.4}/tests/test_synthesis.py +5 -0
  86. readio-0.2.4/tests/test_voice_catalog.py +125 -0
  87. readio-0.2.4/tests/test_voices_cli.py +96 -0
  88. readio-0.2.3/readio.egg-info/scm_version.json +0 -8
  89. readio-0.2.3/tests/test_reader_synthesis.py +0 -60
  90. readio-0.2.3/tests/test_voices_cli.py +0 -60
  91. {readio-0.2.3 → readio-0.2.4}/.codecrate.toml +0 -0
  92. {readio-0.2.3 → readio-0.2.4}/.github/workflows/pre-commit.yml +0 -0
  93. {readio-0.2.3 → readio-0.2.4}/.github/workflows/python-publish.yml +0 -0
  94. {readio-0.2.3 → readio-0.2.4}/.gitignore +0 -0
  95. {readio-0.2.3 → readio-0.2.4}/.ledger/documentledger/.ledger-project.toml +0 -0
  96. {readio-0.2.3 → readio-0.2.4}/.ledger/documentledger/config.toml +0 -0
  97. {readio-0.2.3 → readio-0.2.4}/.ledger/documentledger/data/.ledger-project.toml +0 -0
  98. {readio-0.2.3 → readio-0.2.4}/.ledger/documentledger/data/docs/docs-changelog-md-77f023b9.yaml +0 -0
  99. {readio-0.2.3 → readio-0.2.4}/.ledger/documentledger/data/docs/docs-index-md-b4d68dc8.yaml +0 -0
  100. {readio-0.2.3 → readio-0.2.4}/.ledger/documentledger/data/docs/readme-md-b3356305.yaml +0 -0
  101. {readio-0.2.3 → readio-0.2.4}/.ledger/documentledger/data/scan.yaml +0 -0
  102. {readio-0.2.3 → readio-0.2.4}/.ledger/documentledger/data/source-index.json +0 -0
  103. {readio-0.2.3 → readio-0.2.4}/.ledger/documentledger/data/storage.yaml +0 -0
  104. {readio-0.2.3 → readio-0.2.4}/.ledger/ledger.toml +0 -0
  105. {readio-0.2.3 → readio-0.2.4}/.ledger/releaseledger/.ledger-project.toml +0 -0
  106. {readio-0.2.3 → readio-0.2.4}/.ledger/releaseledger/config.toml +0 -0
  107. {readio-0.2.3 → readio-0.2.4}/.ledger/releaseledger/data/.ledger-project.toml +0 -0
  108. {readio-0.2.3 → readio-0.2.4}/.ledger/releaseledger/data/ledgers/main/releases/v0.1.0/audit/commit-audit.yaml +0 -0
  109. {readio-0.2.3 → readio-0.2.4}/.ledger/releaseledger/data/ledgers/main/releases/v0.1.0/entries/entry-0001.md +0 -0
  110. {readio-0.2.3 → readio-0.2.4}/.ledger/releaseledger/data/ledgers/main/releases/v0.1.0/entries/entry-0002.md +0 -0
  111. {readio-0.2.3 → readio-0.2.4}/.ledger/releaseledger/data/ledgers/main/releases/v0.1.0/entries/entry-0003.md +0 -0
  112. {readio-0.2.3 → readio-0.2.4}/.ledger/releaseledger/data/ledgers/main/releases/v0.1.0/entries/entry-0004.md +0 -0
  113. {readio-0.2.3 → readio-0.2.4}/.ledger/releaseledger/data/ledgers/main/releases/v0.1.0/entries/entry-0005.md +0 -0
  114. {readio-0.2.3 → readio-0.2.4}/.ledger/releaseledger/data/ledgers/main/releases/v0.1.0/release.md +0 -0
  115. {readio-0.2.3 → readio-0.2.4}/.ledger/releaseledger/data/ledgers/main/releases/v0.1.1/audit/commit-audit.yaml +0 -0
  116. {readio-0.2.3 → readio-0.2.4}/.ledger/releaseledger/data/ledgers/main/releases/v0.1.1/entries/entry-0001.md +0 -0
  117. {readio-0.2.3 → readio-0.2.4}/.ledger/releaseledger/data/ledgers/main/releases/v0.1.1/release.md +0 -0
  118. {readio-0.2.3 → readio-0.2.4}/.ledger/releaseledger/data/ledgers/main/releases/v0.1.2/audit/commit-audit.yaml +0 -0
  119. {readio-0.2.3 → readio-0.2.4}/.ledger/releaseledger/data/ledgers/main/releases/v0.1.2/entries/entry-0001.md +0 -0
  120. {readio-0.2.3 → readio-0.2.4}/.ledger/releaseledger/data/ledgers/main/releases/v0.1.2/entries/entry-0002.md +0 -0
  121. {readio-0.2.3 → readio-0.2.4}/.ledger/releaseledger/data/ledgers/main/releases/v0.1.2/entries/entry-0003.md +0 -0
  122. {readio-0.2.3 → readio-0.2.4}/.ledger/releaseledger/data/ledgers/main/releases/v0.1.2/entries/entry-0004.md +0 -0
  123. {readio-0.2.3 → readio-0.2.4}/.ledger/releaseledger/data/ledgers/main/releases/v0.1.2/release.md +0 -0
  124. {readio-0.2.3 → readio-0.2.4}/.ledger/releaseledger/data/ledgers/main/releases/v0.1.3/audit/commit-audit.yaml +0 -0
  125. {readio-0.2.3 → readio-0.2.4}/.ledger/releaseledger/data/ledgers/main/releases/v0.1.3/entries/entry-0001.md +0 -0
  126. {readio-0.2.3 → readio-0.2.4}/.ledger/releaseledger/data/ledgers/main/releases/v0.1.3/entries/entry-0002.md +0 -0
  127. {readio-0.2.3 → readio-0.2.4}/.ledger/releaseledger/data/ledgers/main/releases/v0.1.3/release.md +0 -0
  128. {readio-0.2.3 → readio-0.2.4}/.ledger/releaseledger/data/ledgers/main/releases/v0.2.0/audit/commit-audit.yaml +0 -0
  129. {readio-0.2.3 → readio-0.2.4}/.ledger/releaseledger/data/ledgers/main/releases/v0.2.0/entries/entry-0001.md +0 -0
  130. {readio-0.2.3 → readio-0.2.4}/.ledger/releaseledger/data/ledgers/main/releases/v0.2.0/entries/entry-0002.md +0 -0
  131. {readio-0.2.3 → readio-0.2.4}/.ledger/releaseledger/data/ledgers/main/releases/v0.2.0/entries/entry-0003.md +0 -0
  132. {readio-0.2.3 → readio-0.2.4}/.ledger/releaseledger/data/ledgers/main/releases/v0.2.0/entries/entry-0004.md +0 -0
  133. {readio-0.2.3 → readio-0.2.4}/.ledger/releaseledger/data/ledgers/main/releases/v0.2.0/entries/entry-0005.md +0 -0
  134. {readio-0.2.3 → readio-0.2.4}/.ledger/releaseledger/data/ledgers/main/releases/v0.2.0/entries/entry-0006.md +0 -0
  135. {readio-0.2.3 → readio-0.2.4}/.ledger/releaseledger/data/ledgers/main/releases/v0.2.0/release.md +0 -0
  136. {readio-0.2.3 → readio-0.2.4}/.ledger/releaseledger/data/ledgers/main/releases/v0.2.1/audit/commit-audit.yaml +0 -0
  137. {readio-0.2.3 → readio-0.2.4}/.ledger/releaseledger/data/ledgers/main/releases/v0.2.1/entries/entry-0001.md +0 -0
  138. {readio-0.2.3 → readio-0.2.4}/.ledger/releaseledger/data/ledgers/main/releases/v0.2.1/release.md +0 -0
  139. {readio-0.2.3 → readio-0.2.4}/.ledger/releaseledger/data/ledgers/main/releases/v0.2.2/audit/commit-audit.yaml +0 -0
  140. {readio-0.2.3 → readio-0.2.4}/.ledger/releaseledger/data/ledgers/main/releases/v0.2.2/entries/entry-0001.md +0 -0
  141. {readio-0.2.3 → readio-0.2.4}/.ledger/releaseledger/data/ledgers/main/releases/v0.2.2/entries/entry-0002.md +0 -0
  142. {readio-0.2.3 → readio-0.2.4}/.ledger/releaseledger/data/ledgers/main/releases/v0.2.2/entries/entry-0003.md +0 -0
  143. {readio-0.2.3 → readio-0.2.4}/.ledger/releaseledger/data/ledgers/main/releases/v0.2.2/entries/entry-0004.md +0 -0
  144. {readio-0.2.3 → readio-0.2.4}/.ledger/releaseledger/data/ledgers/main/releases/v0.2.2/entries/entry-0005.md +0 -0
  145. {readio-0.2.3 → readio-0.2.4}/.ledger/releaseledger/data/ledgers/main/releases/v0.2.2/entries/entry-0006.md +0 -0
  146. {readio-0.2.3 → readio-0.2.4}/.ledger/releaseledger/data/ledgers/main/releases/v0.2.2/entries/entry-0007.md +0 -0
  147. {readio-0.2.3 → readio-0.2.4}/.ledger/releaseledger/data/ledgers/main/releases/v0.2.2/release.md +0 -0
  148. {readio-0.2.3 → readio-0.2.4}/.ledger/releaseledger/work/v0.2.0/audit-decisions.yaml +0 -0
  149. {readio-0.2.3 → readio-0.2.4}/.ledger/releaseledger/work/v0.2.0/audit.yaml +0 -0
  150. {readio-0.2.3 → readio-0.2.4}/.ledger/releaseledger/work/v0.2.0/entries.yaml +0 -0
  151. {readio-0.2.3 → readio-0.2.4}/.ledger/releaseledger/work/v0.2.0/evidence/4ecf165.patch +0 -0
  152. {readio-0.2.3 → readio-0.2.4}/.ledger/releaseledger/work/v0.2.0/evidence/manifest.json +0 -0
  153. {readio-0.2.3 → readio-0.2.4}/.ledger/releaseledger/work/v0.2.0/range.json +0 -0
  154. {readio-0.2.3 → readio-0.2.4}/.ledger/releaseledger/write.lock +0 -0
  155. {readio-0.2.3 → readio-0.2.4}/.ledger/taskledger/.ledger-project.toml +0 -0
  156. {readio-0.2.3 → readio-0.2.4}/.ledger/taskledger/config.toml +0 -0
  157. {readio-0.2.3 → readio-0.2.4}/.pre-commit-config.yaml +0 -0
  158. {readio-0.2.3 → readio-0.2.4}/LICENSE +0 -0
  159. {readio-0.2.3 → readio-0.2.4}/docs/conf.py +0 -0
  160. {readio-0.2.3 → readio-0.2.4}/docs/make.py +0 -0
  161. {readio-0.2.3 → readio-0.2.4}/docs/requirements.txt +0 -0
  162. {readio-0.2.3 → readio-0.2.4}/examples/README.md +0 -0
  163. {readio-0.2.3 → readio-0.2.4}/examples/readio-podcast.ssmd +0 -0
  164. {readio-0.2.3 → readio-0.2.4}/examples/readio-prosody.ssmd +0 -0
  165. {readio-0.2.3 → readio-0.2.4}/readio/__init__.py +0 -0
  166. {readio-0.2.3 → readio-0.2.4}/readio/__main__.py +0 -0
  167. {readio-0.2.3 → readio-0.2.4}/readio/document.py +0 -0
  168. {readio-0.2.3 → readio-0.2.4}/readio/errors.py +0 -0
  169. {readio-0.2.3 → readio-0.2.4}/readio/formats.py +0 -0
  170. {readio-0.2.3 → readio-0.2.4}/readio/ingest.py +0 -0
  171. {readio-0.2.3 → readio-0.2.4}/readio/jsonutil.py +0 -0
  172. {readio-0.2.3 → readio-0.2.4}/readio/logging_config.py +0 -0
  173. {readio-0.2.3 → readio-0.2.4}/readio/manifest.py +0 -0
  174. {readio-0.2.3 → readio-0.2.4}/readio/markdown.py +0 -0
  175. {readio-0.2.3 → readio-0.2.4}/readio/paths.py +0 -0
  176. {readio-0.2.3 → readio-0.2.4}/readio/progress.py +0 -0
  177. {readio-0.2.3 → readio-0.2.4}/readio/resources/__init__.py +0 -0
  178. {readio-0.2.3 → readio-0.2.4}/readio/resources/templates/__init__.py +0 -0
  179. {readio-0.2.3 → readio-0.2.4}/readio/resources/templates/briefing.ssmd +0 -0
  180. {readio-0.2.3 → readio-0.2.4}/readio/resources/templates/dialogue.ssmd +0 -0
  181. {readio-0.2.3 → readio-0.2.4}/readio/resources/templates/podcast.ssmd +0 -0
  182. {readio-0.2.3 → readio-0.2.4}/readio/spotify.py +0 -0
  183. {readio-0.2.3 → readio-0.2.4}/readio/spotify_cli.py +0 -0
  184. {readio-0.2.3 → readio-0.2.4}/readio/ssmd_authoring.py +0 -0
  185. {readio-0.2.3 → readio-0.2.4}/readio/templates.py +0 -0
  186. {readio-0.2.3 → readio-0.2.4}/readio/text.py +0 -0
  187. {readio-0.2.3 → readio-0.2.4}/readio/wave.py +0 -0
  188. {readio-0.2.3 → readio-0.2.4}/readio.egg-info/dependency_links.txt +0 -0
  189. {readio-0.2.3 → readio-0.2.4}/readio.egg-info/entry_points.txt +0 -0
  190. {readio-0.2.3 → readio-0.2.4}/readio.egg-info/top_level.txt +0 -0
  191. {readio-0.2.3 → readio-0.2.4}/setup.cfg +0 -0
  192. {readio-0.2.3 → readio-0.2.4}/skill/readio/references/input-formats.md +0 -0
  193. {readio-0.2.3 → readio-0.2.4}/skill/readio/references/spotify.md +0 -0
  194. {readio-0.2.3 → readio-0.2.4}/tests/conftest.py +0 -0
  195. {readio-0.2.3 → readio-0.2.4}/tests/fixtures/architecture-review.ssmd +0 -0
  196. {readio-0.2.3 → readio-0.2.4}/tests/fixtures/markdown/all-elements.md +0 -0
  197. {readio-0.2.3 → readio-0.2.4}/tests/fixtures/markdown/all-elements.txt +0 -0
  198. {readio-0.2.3 → readio-0.2.4}/tests/test_audio.py +0 -0
  199. {readio-0.2.3 → readio-0.2.4}/tests/test_audio_formats.py +0 -0
  200. {readio-0.2.3 → readio-0.2.4}/tests/test_chapters.py +0 -0
  201. {readio-0.2.3 → readio-0.2.4}/tests/test_defaults_cli.py +0 -0
  202. {readio-0.2.3 → readio-0.2.4}/tests/test_doctor.py +0 -0
  203. {readio-0.2.3 → readio-0.2.4}/tests/test_document.py +0 -0
  204. {readio-0.2.3 → readio-0.2.4}/tests/test_examples.py +0 -0
  205. {readio-0.2.3 → readio-0.2.4}/tests/test_ffmpeg_sink.py +0 -0
  206. {readio-0.2.3 → readio-0.2.4}/tests/test_ingest.py +0 -0
  207. {readio-0.2.3 → readio-0.2.4}/tests/test_language_defaults_config.py +0 -0
  208. {readio-0.2.3 → readio-0.2.4}/tests/test_logging_cli.py +0 -0
  209. {readio-0.2.3 → readio-0.2.4}/tests/test_manifest.py +0 -0
  210. {readio-0.2.3 → readio-0.2.4}/tests/test_markdown.py +0 -0
  211. {readio-0.2.3 → readio-0.2.4}/tests/test_model_source_preference.py +0 -0
  212. {readio-0.2.3 → readio-0.2.4}/tests/test_models_cli.py +0 -0
  213. {readio-0.2.3 → readio-0.2.4}/tests/test_package_resources.py +0 -0
  214. {readio-0.2.3 → readio-0.2.4}/tests/test_paths.py +0 -0
  215. {readio-0.2.3 → readio-0.2.4}/tests/test_plan_cli.py +0 -0
  216. {readio-0.2.3 → readio-0.2.4}/tests/test_plan_validation.py +0 -0
  217. {readio-0.2.3 → readio-0.2.4}/tests/test_progress.py +0 -0
  218. {readio-0.2.3 → readio-0.2.4}/tests/test_pykokoro_09_support.py +0 -0
  219. {readio-0.2.3 → readio-0.2.4}/tests/test_reader_markdown.py +0 -0
  220. {readio-0.2.3 → readio-0.2.4}/tests/test_reader_selection.py +0 -0
  221. {readio-0.2.3 → readio-0.2.4}/tests/test_reader_ssmd.py +0 -0
  222. {readio-0.2.3 → readio-0.2.4}/tests/test_render_manifest_cli.py +0 -0
  223. {readio-0.2.3 → readio-0.2.4}/tests/test_skill_integrity.py +0 -0
  224. {readio-0.2.3 → readio-0.2.4}/tests/test_spotify.py +0 -0
  225. {readio-0.2.3 → readio-0.2.4}/tests/test_spotify_cli.py +0 -0
  226. {readio-0.2.3 → readio-0.2.4}/tests/test_spotify_lifecycle.py +0 -0
  227. {readio-0.2.3 → readio-0.2.4}/tests/test_ssmd_cli.py +0 -0
  228. {readio-0.2.3 → readio-0.2.4}/tests/test_ssmd_integration.py +0 -0
  229. {readio-0.2.3 → readio-0.2.4}/tests/test_ssmd_model_roster.py +0 -0
  230. {readio-0.2.3 → readio-0.2.4}/tests/test_ssmd_preflight.py +0 -0
  231. {readio-0.2.3 → readio-0.2.4}/tests/test_ssmd_single_source.py +0 -0
  232. {readio-0.2.3 → readio-0.2.4}/tests/test_template_validate.py +0 -0
  233. {readio-0.2.3 → readio-0.2.4}/tests/test_templates.py +0 -0
  234. {readio-0.2.3 → readio-0.2.4}/tests/test_text.py +0 -0
  235. {readio-0.2.3 → readio-0.2.4}/tests/test_voice_resolution_workflow.py +0 -0
  236. {readio-0.2.3 → readio-0.2.4}/tests/test_wave.py +0 -0
@@ -16,7 +16,7 @@ jobs:
16
16
  cache: pip
17
17
  - name: Install Readio runtime dependencies
18
18
  run: |
19
- python -m pip install "pykokoro[playback]==0.9.4"
19
+ python -m pip install "pykokoro[playback]==0.9.9"
20
20
  - name: Install project and coverage tools
21
21
  run: |
22
22
  python -m pip install --upgrade pip
@@ -25,7 +25,7 @@ jobs:
25
25
  cache: pip
26
26
  - name: Install Readio runtime dependencies
27
27
  run: |
28
- python -m pip install "pykokoro[playback]==0.9.4"
28
+ python -m pip install "pykokoro[playback]==0.9.9"
29
29
  - name: Install project and test tools
30
30
  run: |
31
31
  python -m pip install --upgrade pip
@@ -47,13 +47,35 @@ jobs:
47
47
  python-version: "3.10"
48
48
  cache: pip
49
49
  - name: Install minimum PyKokoro runtime
50
- run: python -m pip install "pykokoro[playback]==0.9.4"
50
+ run: python -m pip install "pykokoro[playback]==0.9.9"
51
51
  - name: Install project and test tools
52
52
  run: |
53
53
  python -m pip install --upgrade pip
54
54
  python -m pip install -e ".[dev]"
55
55
  - name: Run minimum-version test suite
56
56
  run: python -m pytest -q
57
+ current-compatibility:
58
+ name: Current PyKokoro compatibility (Ubuntu, Python 3.13)
59
+ runs-on: ubuntu-latest
60
+ steps:
61
+ - uses: actions/checkout@v4
62
+ - name: Install PortAudio
63
+ run: sudo apt-get update && sudo apt-get install --yes portaudio19-dev
64
+ - name: Set up Python
65
+ uses: actions/setup-python@v5
66
+ with:
67
+ python-version: "3.13"
68
+ cache: pip
69
+ - name: Install current supported PyKokoro range
70
+ run: python -m pip install "pykokoro[playback]>=0.9.9,<0.10"
71
+ - name: Show installed PyKokoro version
72
+ run: python -c "import importlib.metadata; print('PyKokoro', importlib.metadata.version('pykokoro'))"
73
+ - name: Install project and test tools
74
+ run: |
75
+ python -m pip install --upgrade pip
76
+ python -m pip install -e ".[dev]"
77
+ - name: Run current-range test suite
78
+ run: python -m pytest -q
57
79
  quality:
58
80
  name: Static quality checks
59
81
  runs-on: ubuntu-latest
@@ -68,7 +90,7 @@ jobs:
68
90
  cache: pip
69
91
  - name: Install Readio runtime dependencies
70
92
  run: |
71
- python -m pip install "pykokoro[playback]==0.9.4"
93
+ python -m pip install "pykokoro[playback]==0.9.9"
72
94
  - name: Install development tools
73
95
  run: python -m pip install -e ".[dev]"
74
96
  - name: Ruff lint
@@ -100,7 +122,7 @@ jobs:
100
122
  shell: bash
101
123
  run: |
102
124
  python -m venv "${RUNNER_TEMP}/readio-wheel-smoke"
103
- "${RUNNER_TEMP}/readio-wheel-smoke/bin/python" -m pip install "pykokoro[playback]==0.9.4"
125
+ "${RUNNER_TEMP}/readio-wheel-smoke/bin/python" -m pip install "pykokoro[playback]==0.9.9"
104
126
  "${RUNNER_TEMP}/readio-wheel-smoke/bin/python" -m pip install dist/*.whl
105
127
  "${RUNNER_TEMP}/readio-wheel-smoke/bin/python" -m pip check
106
128
  cd "${RUNNER_TEMP}"
@@ -60,3 +60,21 @@
60
60
  {"data":{"kind":"quality","status":"accepted"},"entry_id":"entry-0002","event":"entry.added","event_id":"event-0060","record_revisions":{"entry:v0.2.3/entry-0002":1,"release:v0.2.3":3},"release_version":"v0.2.3","schema_version":2}
61
61
  {"data":{"kind":"changed","status":"accepted"},"entry_id":"entry-0003","event":"entry.added","event_id":"event-0061","record_revisions":{"entry:v0.2.3/entry-0003":1,"release:v0.2.3":4},"release_version":"v0.2.3","schema_version":2}
62
62
  {"data":{"kind":"docs","status":"accepted"},"entry_id":"entry-0004","event":"entry.added","event_id":"event-0062","record_revisions":{"entry:v0.2.3/entry-0004":1,"release:v0.2.3":5},"release_version":"v0.2.3","schema_version":2}
63
+ {"data":{"kind":"changed","status":"accepted"},"entry_id":"entry-0005","event":"entry.added","event_id":"event-0063","record_revisions":{"entry:v0.2.3/entry-0005":1,"release:v0.2.3":6},"release_version":"v0.2.3","schema_version":2}
64
+ {"data":{"added_source_refs":[],"fields":["summary"],"removed_source_refs":[],"source_refs_mode":"unchanged"},"entry_id":"entry-0005","event":"entry.updated","event_id":"event-0064","record_revisions":{"entry:v0.2.3/entry-0005":2},"release_version":"v0.2.3","schema_version":2}
65
+ {"data":{"added_source_refs":[],"fields":["summary"],"reason":"Correct stale tested PyKokoro version to the supported 0.9.5 floor.","removed_source_refs":[],"source_refs_mode":"unchanged"},"entry_id":"entry-0001","event":"entry.updated","event_id":"event-0065","record_revisions":{"entry:v0.2.3/entry-0001":2},"release_version":"v0.2.3","schema_version":2}
66
+ {"data":{"added_source_refs":[],"fields":["summary"],"reason":"Correct stale tested PyKokoro version to the supported 0.9.5 floor.","removed_source_refs":[],"source_refs_mode":"unchanged"},"entry_id":"entry-0004","event":"entry.updated","event_id":"event-0066","record_revisions":{"entry:v0.2.3/entry-0004":2},"release_version":"v0.2.3","schema_version":2}
67
+ {"data":{"kind":"changed","status":"accepted"},"entry_id":"entry-0006","event":"entry.added","event_id":"event-0067","record_revisions":{"entry:v0.2.3/entry-0006":1,"release:v0.2.3":7},"release_version":"v0.2.3","schema_version":2}
68
+ {"data":{"added_source_refs":[],"fields":["summary"],"reason":"Align the changed entry wording with its kind and supported dependency floor.","removed_source_refs":[],"source_refs_mode":"unchanged"},"entry_id":"entry-0001","event":"entry.updated","event_id":"event-0068","record_revisions":{"entry:v0.2.3/entry-0001":3},"release_version":"v0.2.3","schema_version":2}
69
+ {"data":{"added_source_refs":[],"fields":["summary"],"reason":"Align the quality entry wording with its kind.","removed_source_refs":[],"source_refs_mode":"unchanged"},"entry_id":"entry-0002","event":"entry.updated","event_id":"event-0069","record_revisions":{"entry:v0.2.3/entry-0002":2},"release_version":"v0.2.3","schema_version":2}
70
+ {"data":{"added_source_refs":[],"fields":["summary"],"reason":"Align the changed entry wording with its kind.","removed_source_refs":[],"source_refs_mode":"unchanged"},"entry_id":"entry-0003","event":"entry.updated","event_id":"event-0070","record_revisions":{"entry:v0.2.3/entry-0003":2},"release_version":"v0.2.3","schema_version":2}
71
+ {"data":{"added_source_refs":[],"fields":["summary"],"reason":"Align the changed entry wording with its kind and recommended summary length.","removed_source_refs":[],"source_refs_mode":"unchanged"},"entry_id":"entry-0005","event":"entry.updated","event_id":"event-0071","record_revisions":{"entry:v0.2.3/entry-0005":3},"release_version":"v0.2.3","schema_version":2}
72
+ {"data":{"added_source_refs":[],"fields":["summary"],"reason":"Shorten the new user-facing entry while retaining its behavior.","removed_source_refs":[],"source_refs_mode":"unchanged"},"entry_id":"entry-0006","event":"entry.updated","event_id":"event-0072","record_revisions":{"entry:v0.2.3/entry-0006":2},"release_version":"v0.2.3","schema_version":2}
73
+ {"data":{"released_at":"2026-09-11"},"event":"release.finalized","event_id":"event-0073","record_revisions":{"release:v0.2.3":8},"release_version":"v0.2.3","schema_version":2}
74
+ {"data":{"status":"planned"},"event":"release.created","event_id":"event-0074","record_revisions":{"release:v0.2.4":1},"release_version":"v0.2.4","schema_version":2}
75
+ {"data":{"fields":["git_base_ref","git_base_sha","git_commit_count","git_head_ref","git_head_sha","git_range"]},"event":"release.updated","event_id":"event-0075","record_revisions":{"release:v0.2.4":2},"release_version":"v0.2.4","schema_version":2}
76
+ {"data":{"row_count":4},"event":"audit.created","event_id":"event-0076","record_revisions":{"commit_audit_sheet":1},"release_version":"v0.2.4","schema_version":2}
77
+ {"data":{"updated_rows":4},"event":"audit.updated","event_id":"event-0077","record_revisions":{"commit_audit_sheet":2},"release_version":"v0.2.4","schema_version":2}
78
+ {"data":{"entry_ids":["entry-0001","entry-0002","entry-0003","entry-0004"],"synced_audit_rows":4},"event":"entry.batch_added","event_id":"event-0078","record_revisions":{"commit_audit_sheet":3,"entry:v0.2.4/entry-0001":1,"entry:v0.2.4/entry-0002":1,"entry:v0.2.4/entry-0003":1,"entry:v0.2.4/entry-0004":1,"release:v0.2.4":3},"release_version":"v0.2.4","schema_version":2}
79
+ {"data":{"released_at":"2026-09-14"},"event":"release.finalized","event_id":"event-0079","record_revisions":{"release:v0.2.4":4},"release_version":"v0.2.4","schema_version":2}
80
+ {"data":{"fields":["released_at"]},"event":"release.updated","event_id":"event-0080","record_revisions":{"release:v0.2.4":5},"release_version":"v0.2.4","schema_version":2}
@@ -3,13 +3,13 @@ schema_version: 2
3
3
  object_type: release_entry
4
4
  versioning:
5
5
  schema_version: 1
6
- revision: 1
6
+ revision: 3
7
7
  entry_id: entry-0001
8
8
  release_version: v0.2.3
9
9
  kind: changed
10
10
  summary:
11
- Aligned Readio dependency metadata and CI with released PyKokoro 0.9.4 and
12
- SSMD 0.8.7+
11
+ Changed Readio dependency metadata and CI to use PyKokoro 0.9.5 and SSMD
12
+ 0.8.7+
13
13
  status: accepted
14
14
  audience: null
15
15
  scopes: []
@@ -3,11 +3,11 @@ schema_version: 2
3
3
  object_type: release_entry
4
4
  versioning:
5
5
  schema_version: 1
6
- revision: 1
6
+ revision: 2
7
7
  entry_id: entry-0002
8
8
  release_version: v0.2.3
9
9
  kind: quality
10
- summary: Added bounded PyKokoro compatibility and package metadata regression coverage
10
+ summary: Improved PyKokoro compatibility and package metadata regression coverage
11
11
  status: accepted
12
12
  audience: null
13
13
  scopes: []
@@ -3,13 +3,11 @@ schema_version: 2
3
3
  object_type: release_entry
4
4
  versioning:
5
5
  schema_version: 1
6
- revision: 1
6
+ revision: 2
7
7
  entry_id: entry-0003
8
8
  release_version: v0.2.3
9
9
  kind: changed
10
- summary:
11
- Hardened package publishing with artifact checks and release-tag version
12
- validation
10
+ summary: Changed package publishing with artifact checks and release-tag version validation
13
11
  status: accepted
14
12
  audience: null
15
13
  scopes: []
@@ -3,12 +3,12 @@ schema_version: 2
3
3
  object_type: release_entry
4
4
  versioning:
5
5
  schema_version: 1
6
- revision: 1
6
+ revision: 2
7
7
  entry_id: entry-0004
8
8
  release_version: v0.2.3
9
9
  kind: docs
10
10
  summary:
11
- Documented the PyKokoro support floor, 0.9.4 tested target, and supported
11
+ Documented the PyKokoro support floor, 0.9.5 tested target, and supported
12
12
  SSMD API
13
13
  status: accepted
14
14
  audience: null
@@ -0,0 +1,31 @@
1
+ ---
2
+ schema_version: 2
3
+ object_type: release_entry
4
+ versioning:
5
+ schema_version: 1
6
+ revision: 3
7
+ entry_id: entry-0005
8
+ release_version: v0.2.3
9
+ kind: changed
10
+ summary:
11
+ Changed spaCy model-size and short-sentence synthesis controls, including
12
+ reader configuration migration
13
+ status: accepted
14
+ audience: null
15
+ scopes: []
16
+ source_refs:
17
+ - tl:task-0021
18
+ paths:
19
+ - readio/config.py
20
+ - readio/cli.py
21
+ - readio/plan.py
22
+ - readio/reader.py
23
+ - readio/synthesis.py
24
+ issues: []
25
+ prs: []
26
+ sources: []
27
+ contributors: []
28
+ breaking: false
29
+ internal: false
30
+ order: 5
31
+ ---
@@ -0,0 +1,29 @@
1
+ ---
2
+ schema_version: 2
3
+ object_type: release_entry
4
+ versioning:
5
+ schema_version: 1
6
+ revision: 2
7
+ entry_id: entry-0006
8
+ release_version: v0.2.3
9
+ kind: changed
10
+ summary:
11
+ Changed Readio's speak/render pause default from tts to auto while preserving
12
+ config and CLI overrides
13
+ status: accepted
14
+ audience: null
15
+ scopes: []
16
+ source_refs:
17
+ - tl:task-0025
18
+ paths:
19
+ - readio/config.py
20
+ - readio/plan.py
21
+ - readio/synthesis.py
22
+ issues: []
23
+ prs: []
24
+ sources: []
25
+ contributors: []
26
+ breaking: false
27
+ internal: false
28
+ order: 6
29
+ ---
@@ -3,12 +3,12 @@ schema_version: 2
3
3
  object_type: release
4
4
  versioning:
5
5
  schema_version: 1
6
- revision: 5
6
+ revision: 8
7
7
  version: v0.2.3
8
- status: planned
8
+ status: released
9
9
  history_state: curated
10
10
  title: Readio v0.2.3
11
- released_at: null
11
+ released_at: "2026-09-11"
12
12
  previous_version: v0.2.2
13
13
  cancel_reason: null
14
14
  superseded_by: null
@@ -16,7 +16,7 @@ changelog_file: null
16
16
  boundary_ref: null
17
17
  source_refs: []
18
18
  source_count: null
19
- entry_count: 4
19
+ entry_count: 6
20
20
  artifact_count: 0
21
21
  git_base_ref: null
22
22
  git_base_sha: null
@@ -0,0 +1,212 @@
1
+ schema_version: 1
2
+ object_type: commit_audit_sheet
3
+ versioning:
4
+ schema_version: 1
5
+ revision: 3
6
+ release_version: v0.2.4
7
+ git_base_ref: v0.2.3
8
+ git_base_sha: 9b264c5a7b09096c299b90d2f8fe6fb30a2a96d0
9
+ git_head_ref: HEAD
10
+ git_head_sha: 2c5e221eab0f4047a8157dcacb85e5d31c956d3a
11
+ git_range: 9b264c5a7b09096c299b90d2f8fe6fb30a2a96d0..2c5e221eab0f4047a8157dcacb85e5d31c956d3a
12
+ commit_count: 4
13
+ rows:
14
+ - sha: 4791e709a5f940404c7e40f04333f0996931453d
15
+ source_ref: git:4791e709a5f940404c7e40f04333f0996931453d
16
+ short_sha: 4791e70
17
+ changed_paths:
18
+ - .ledger/releaseledger/data/ledgers/main/events/events.jsonl
19
+ - .ledger/releaseledger/data/ledgers/main/releases/v0.2.3/entries/entry-0005.md
20
+ - .ledger/releaseledger/data/ledgers/main/releases/v0.2.3/release.md
21
+ - README.md
22
+ - docs/changelog.md
23
+ - docs/index.md
24
+ - readio/cli.py
25
+ - readio/config.py
26
+ - readio/plan.py
27
+ - readio/reader.py
28
+ - readio/synthesis.py
29
+ - skill/readio/references/cli.md
30
+ - skill/readio/references/troubleshooting.md
31
+ - tests/test_config.py
32
+ - tests/test_plan.py
33
+ - tests/test_plan_no_tts_load.py
34
+ - tests/test_reader_synthesis.py
35
+ - tests/test_render_from_plan.py
36
+ stats:
37
+ files_changed: 0
38
+ insertions: 369
39
+ deletions: 26
40
+ inspected: true
41
+ inspected_paths:
42
+ - readio/config.py
43
+ - readio/plan.py
44
+ - readio/reader.py
45
+ - readio/synthesis.py
46
+ - tests/test_config.py
47
+ - tests/test_plan.py
48
+ - tests/test_reader_synthesis.py
49
+ observed_behavior:
50
+ Reader synthesis planning now supports explicit spaCy tiers and
51
+ configurable short-sentence handling, with legacy required values normalized to
52
+ sm.
53
+ public_impact: public
54
+ decision: accepted
55
+ stale: false
56
+ evidence_subject: "feat: add spacy policy and parameter for short sentences"
57
+ target_entry_id: entry-0001
58
+ notes: ""
59
+ - sha: 18d17658338164cf7a62f805eece4802de217394
60
+ source_ref: git:18d17658338164cf7a62f805eece4802de217394
61
+ short_sha: 18d1765
62
+ changed_paths:
63
+ - .github/workflows/codecov.yml
64
+ - .github/workflows/tests.yml
65
+ - README.md
66
+ - docs/index.md
67
+ - llm-guides/README.md
68
+ - llm-guides/ssmd/audio-drama.md
69
+ - llm-guides/ssmd/debate-pro-con.md
70
+ - llm-guides/ssmd/document-summary.md
71
+ - llm-guides/ssmd/dramatic-story.md
72
+ - llm-guides/ssmd/educational-explainer.md
73
+ - llm-guides/ssmd/funny-story.md
74
+ - llm-guides/ssmd/general-narration.md
75
+ - llm-guides/ssmd/guided-meditation.md
76
+ - llm-guides/ssmd/kids-story.md
77
+ - llm-guides/ssmd/language-learning.md
78
+ - llm-guides/ssmd/news-briefing.md
79
+ - llm-guides/ssmd/podcast-interview.md
80
+ - llm-guides/ssmd/podcast-roundtable.md
81
+ - llm-guides/ssmd/podcast-solo.md
82
+ - llm-guides/ssmd/quiz-trivia.md
83
+ - pyproject.toml
84
+ - readio/cli.py
85
+ - readio/config.py
86
+ - readio/models.py
87
+ - readio/plan.py
88
+ - readio/ssmd.py
89
+ - readio/synthesis.py
90
+ - readio/voices.py
91
+ - skill/readio/SKILL.md
92
+ - skill/readio/references/cli.md
93
+ - skill/readio/references/ssmd.md
94
+ - skill/readio/references/troubleshooting.md
95
+ - tests/test_llm_guides.py
96
+ - tests/test_packaging_metadata.py
97
+ - tests/test_pykokoro_09_contract.py
98
+ - tests/test_pykokoro_09_regressions.py
99
+ - tests/test_voice_catalog.py
100
+ - tests/test_voices_cli.py
101
+ stats:
102
+ files_changed: 0
103
+ insertions: 817
104
+ deletions: 200
105
+ inspected: true
106
+ inspected_paths:
107
+ - readio/voices.py
108
+ - readio/cli.py
109
+ - readio/models.py
110
+ - tests/test_voice_catalog.py
111
+ - tests/test_voices_cli.py
112
+ observed_behavior:
113
+ Voice discovery now exposes stable locale-number selectors, metadata
114
+ filtering, selector inspection, and selector-aware role/default resolution.
115
+ public_impact: public
116
+ decision: accepted
117
+ stale: false
118
+ evidence_subject: "feat: short form for voice selection and new voices command"
119
+ target_entry_id: entry-0002
120
+ notes: ""
121
+ - sha: 5840ad53704ab4efd000346c048638c9b2271eb7
122
+ source_ref: git:5840ad53704ab4efd000346c048638c9b2271eb7
123
+ short_sha: 5840ad5
124
+ changed_paths:
125
+ - README.md
126
+ - docs/index.md
127
+ - readio/audio.py
128
+ - readio/backends/__init__.py
129
+ - readio/backends/base.py
130
+ - readio/backends/pykokoro.py
131
+ - readio/backends/registry.py
132
+ - readio/cli.py
133
+ - readio/config.py
134
+ - readio/lexicons.py
135
+ - readio/models.py
136
+ - readio/plan.py
137
+ - readio/reader.py
138
+ - readio/ssmd.py
139
+ - readio/synthesis.py
140
+ - readio/voices.py
141
+ - skill/readio/SKILL.md
142
+ - skill/readio/references/cli.md
143
+ - tests/test_backend_config.py
144
+ - tests/test_backend_dispatch.py
145
+ - tests/test_backends.py
146
+ - tests/test_lexicon_catalog.py
147
+ - tests/test_lexicons_cli.py
148
+ stats:
149
+ files_changed: 0
150
+ insertions: 1508
151
+ deletions: 366
152
+ inspected: true
153
+ inspected_paths:
154
+ - readio/backends/base.py
155
+ - readio/backends/pykokoro.py
156
+ - readio/lexicons.py
157
+ - readio/cli.py
158
+ - tests/test_lexicon_catalog.py
159
+ - tests/test_lexicons_cli.py
160
+ observed_behavior:
161
+ Synthesis backend contracts and the PyKokoro adapter now expose
162
+ backend-neutral lexicon discovery, filtering, inspection, and runtime option plumbing.
163
+ public_impact: public
164
+ decision: accepted
165
+ stale: false
166
+ evidence_subject: "feat: lexicon command to view lexicons"
167
+ target_entry_id: entry-0003
168
+ notes: ""
169
+ - sha: 2c5e221eab0f4047a8157dcacb85e5d31c956d3a
170
+ source_ref: git:2c5e221eab0f4047a8157dcacb85e5d31c956d3a
171
+ short_sha: 2c5e221
172
+ changed_paths:
173
+ - README.md
174
+ - docs/index.md
175
+ - readio/audio.py
176
+ - readio/backends/base.py
177
+ - readio/backends/pykokoro.py
178
+ - readio/cli.py
179
+ - readio/lexicons.py
180
+ - readio/models.py
181
+ - readio/plan.py
182
+ - readio/reader.py
183
+ - readio/ssmd.py
184
+ - readio/synthesis.py
185
+ - readio/voices.py
186
+ - skill/readio/SKILL.md
187
+ - skill/readio/references/cli.md
188
+ - tests/test_backend_dispatch.py
189
+ - tests/test_lexicons_cli.py
190
+ - tests/test_voice_catalog.py
191
+ - tests/test_voices_cli.py
192
+ stats:
193
+ files_changed: 0
194
+ insertions: 128
195
+ deletions: 88
196
+ inspected: true
197
+ inspected_paths:
198
+ - readio/lexicons.py
199
+ - readio/voices.py
200
+ - readio/cli.py
201
+ - tests/test_lexicons_cli.py
202
+ - tests/test_voice_catalog.py
203
+ - tests/test_voices_cli.py
204
+ observed_behavior:
205
+ Lexicon listing remains usable without a language filter and
206
+ backend-aware voice and lexicon selection is formatted and validated consistently.
207
+ public_impact: public
208
+ decision: accepted
209
+ stale: false
210
+ evidence_subject: "fix: lexicons list"
211
+ target_entry_id: entry-0004
212
+ notes: ""
@@ -0,0 +1,46 @@
1
+ ---
2
+ schema_version: 2
3
+ object_type: release_entry
4
+ versioning:
5
+ schema_version: 1
6
+ revision: 1
7
+ entry_id: entry-0001
8
+ release_version: v0.2.4
9
+ kind: added
10
+ summary:
11
+ Added explicit spaCy model tiers and configurable short-sentence synthesis
12
+ policies
13
+ status: accepted
14
+ audience: null
15
+ scopes: []
16
+ source_refs:
17
+ - git:4791e709a5f940404c7e40f04333f0996931453d
18
+ paths:
19
+ - .ledger/releaseledger/data/ledgers/main/events/events.jsonl
20
+ - .ledger/releaseledger/data/ledgers/main/releases/v0.2.3/entries/entry-0005.md
21
+ - .ledger/releaseledger/data/ledgers/main/releases/v0.2.3/release.md
22
+ - README.md
23
+ - docs/changelog.md
24
+ - docs/index.md
25
+ - readio/cli.py
26
+ - readio/config.py
27
+ - readio/plan.py
28
+ - readio/reader.py
29
+ - readio/synthesis.py
30
+ - skill/readio/references/cli.md
31
+ - skill/readio/references/troubleshooting.md
32
+ - tests/test_config.py
33
+ - tests/test_plan.py
34
+ - tests/test_plan_no_tts_load.py
35
+ - tests/test_reader_synthesis.py
36
+ - tests/test_render_from_plan.py
37
+ issues: []
38
+ prs: []
39
+ sources:
40
+ - git:4791e709a5f940404c7e40f04333f0996931453d
41
+ contributors:
42
+ - "@holgern"
43
+ breaking: false
44
+ internal: false
45
+ order: 1
46
+ ---
@@ -0,0 +1,66 @@
1
+ ---
2
+ schema_version: 2
3
+ object_type: release_entry
4
+ versioning:
5
+ schema_version: 1
6
+ revision: 1
7
+ entry_id: entry-0002
8
+ release_version: v0.2.4
9
+ kind: added
10
+ summary:
11
+ Added stable locale-number voice selectors with catalog discovery, filtering,
12
+ and selector-aware resolution
13
+ status: accepted
14
+ audience: null
15
+ scopes: []
16
+ source_refs:
17
+ - git:18d17658338164cf7a62f805eece4802de217394
18
+ paths:
19
+ - .github/workflows/codecov.yml
20
+ - .github/workflows/tests.yml
21
+ - README.md
22
+ - docs/index.md
23
+ - llm-guides/README.md
24
+ - llm-guides/ssmd/audio-drama.md
25
+ - llm-guides/ssmd/debate-pro-con.md
26
+ - llm-guides/ssmd/document-summary.md
27
+ - llm-guides/ssmd/dramatic-story.md
28
+ - llm-guides/ssmd/educational-explainer.md
29
+ - llm-guides/ssmd/funny-story.md
30
+ - llm-guides/ssmd/general-narration.md
31
+ - llm-guides/ssmd/guided-meditation.md
32
+ - llm-guides/ssmd/kids-story.md
33
+ - llm-guides/ssmd/language-learning.md
34
+ - llm-guides/ssmd/news-briefing.md
35
+ - llm-guides/ssmd/podcast-interview.md
36
+ - llm-guides/ssmd/podcast-roundtable.md
37
+ - llm-guides/ssmd/podcast-solo.md
38
+ - llm-guides/ssmd/quiz-trivia.md
39
+ - pyproject.toml
40
+ - readio/cli.py
41
+ - readio/config.py
42
+ - readio/models.py
43
+ - readio/plan.py
44
+ - readio/ssmd.py
45
+ - readio/synthesis.py
46
+ - readio/voices.py
47
+ - skill/readio/SKILL.md
48
+ - skill/readio/references/cli.md
49
+ - skill/readio/references/ssmd.md
50
+ - skill/readio/references/troubleshooting.md
51
+ - tests/test_llm_guides.py
52
+ - tests/test_packaging_metadata.py
53
+ - tests/test_pykokoro_09_contract.py
54
+ - tests/test_pykokoro_09_regressions.py
55
+ - tests/test_voice_catalog.py
56
+ - tests/test_voices_cli.py
57
+ issues: []
58
+ prs: []
59
+ sources:
60
+ - git:18d17658338164cf7a62f805eece4802de217394
61
+ contributors:
62
+ - "@holgern"
63
+ breaking: false
64
+ internal: false
65
+ order: 2
66
+ ---
@@ -0,0 +1,51 @@
1
+ ---
2
+ schema_version: 2
3
+ object_type: release_entry
4
+ versioning:
5
+ schema_version: 1
6
+ revision: 1
7
+ entry_id: entry-0003
8
+ release_version: v0.2.4
9
+ kind: added
10
+ summary:
11
+ Added backend-neutral lexicon discovery and CLI inspection with language,
12
+ model, and engine filters
13
+ status: accepted
14
+ audience: null
15
+ scopes: []
16
+ source_refs:
17
+ - git:5840ad53704ab4efd000346c048638c9b2271eb7
18
+ paths:
19
+ - README.md
20
+ - docs/index.md
21
+ - readio/audio.py
22
+ - readio/backends/__init__.py
23
+ - readio/backends/base.py
24
+ - readio/backends/pykokoro.py
25
+ - readio/backends/registry.py
26
+ - readio/cli.py
27
+ - readio/config.py
28
+ - readio/lexicons.py
29
+ - readio/models.py
30
+ - readio/plan.py
31
+ - readio/reader.py
32
+ - readio/ssmd.py
33
+ - readio/synthesis.py
34
+ - readio/voices.py
35
+ - skill/readio/SKILL.md
36
+ - skill/readio/references/cli.md
37
+ - tests/test_backend_config.py
38
+ - tests/test_backend_dispatch.py
39
+ - tests/test_backends.py
40
+ - tests/test_lexicon_catalog.py
41
+ - tests/test_lexicons_cli.py
42
+ issues: []
43
+ prs: []
44
+ sources:
45
+ - git:5840ad53704ab4efd000346c048638c9b2271eb7
46
+ contributors:
47
+ - "@holgern"
48
+ breaking: false
49
+ internal: false
50
+ order: 3
51
+ ---