voicerender 0.2.1__tar.gz → 0.2.3__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 (226) hide show
  1. {voicerender-0.2.1 → voicerender-0.2.3}/.codecrate.toml +1 -0
  2. {voicerender-0.2.1 → voicerender-0.2.3}/.github/workflows/tests.yml +3 -0
  3. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/data/ledgers/main/events/events.jsonl +12 -0
  4. voicerender-0.2.3/.ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0006.md +31 -0
  5. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/data/ledgers/main/releases/0.2.1/release.md +2 -2
  6. voicerender-0.2.3/.ledger/releaseledger/data/ledgers/main/releases/0.2.2/audit/commit-audit.yaml +245 -0
  7. voicerender-0.2.3/.ledger/releaseledger/data/ledgers/main/releases/0.2.2/entries/entry-0001.md +46 -0
  8. voicerender-0.2.3/.ledger/releaseledger/data/ledgers/main/releases/0.2.2/entries/entry-0002.md +56 -0
  9. voicerender-0.2.3/.ledger/releaseledger/data/ledgers/main/releases/0.2.2/entries/entry-0003.md +48 -0
  10. voicerender-0.2.3/.ledger/releaseledger/data/ledgers/main/releases/0.2.2/entries/entry-0004.md +35 -0
  11. voicerender-0.2.3/.ledger/releaseledger/data/ledgers/main/releases/0.2.2/release.md +27 -0
  12. voicerender-0.2.3/.ledger/releaseledger/data/ledgers/main/releases/0.2.3/audit/commit-audit.yaml +74 -0
  13. voicerender-0.2.3/.ledger/releaseledger/data/ledgers/main/releases/0.2.3/entries/entry-0001.md +32 -0
  14. voicerender-0.2.3/.ledger/releaseledger/data/ledgers/main/releases/0.2.3/entries/entry-0002.md +34 -0
  15. voicerender-0.2.3/.ledger/releaseledger/data/ledgers/main/releases/0.2.3/release.md +27 -0
  16. voicerender-0.2.3/.ledger/releaseledger/work/0.2.2/audit-decisions.yaml +118 -0
  17. voicerender-0.2.3/.ledger/releaseledger/work/0.2.2/audit.yaml +150 -0
  18. voicerender-0.2.3/.ledger/releaseledger/work/0.2.2/entries.yaml +138 -0
  19. voicerender-0.2.3/.ledger/releaseledger/work/0.2.2/evidence/6510540.patch +3613 -0
  20. voicerender-0.2.3/.ledger/releaseledger/work/0.2.2/evidence/8861791.patch +3992 -0
  21. voicerender-0.2.3/.ledger/releaseledger/work/0.2.2/evidence/f093d36.patch +312 -0
  22. voicerender-0.2.3/.ledger/releaseledger/work/0.2.2/evidence/fdb106d.patch +6839 -0
  23. voicerender-0.2.3/.ledger/releaseledger/work/0.2.2/evidence/manifest.json +134 -0
  24. voicerender-0.2.3/.ledger/releaseledger/work/0.2.2/range.json +13 -0
  25. voicerender-0.2.3/.ledger/releaseledger/work/0.2.3/audit-decisions.yaml +31 -0
  26. voicerender-0.2.3/.ledger/releaseledger/work/0.2.3/audit.yaml +53 -0
  27. voicerender-0.2.3/.ledger/releaseledger/work/0.2.3/entries.yaml +45 -0
  28. voicerender-0.2.3/.ledger/releaseledger/work/0.2.3/evidence/67e4d8e.patch +145 -0
  29. voicerender-0.2.3/.ledger/releaseledger/work/0.2.3/evidence/b17f1a9.patch +1868 -0
  30. voicerender-0.2.3/.ledger/releaseledger/work/0.2.3/evidence/manifest.json +45 -0
  31. voicerender-0.2.3/.ledger/releaseledger/work/0.2.3/range.json +13 -0
  32. {voicerender-0.2.1/voicerender.egg-info → voicerender-0.2.3}/PKG-INFO +105 -3
  33. {voicerender-0.2.1 → voicerender-0.2.3}/README.md +101 -1
  34. {voicerender-0.2.1 → voicerender-0.2.3}/docs/changelog.md +22 -0
  35. {voicerender-0.2.1 → voicerender-0.2.3}/docs/index.md +12 -0
  36. {voicerender-0.2.1 → voicerender-0.2.3}/docs/renderprofile.md +51 -0
  37. {voicerender-0.2.1 → voicerender-0.2.3}/pyproject.toml +4 -1
  38. voicerender-0.2.3/tests/test_chatterboxsynth_engine.py +668 -0
  39. {voicerender-0.2.1 → voicerender-0.2.3}/tests/test_cli.py +323 -0
  40. voicerender-0.2.3/tests/test_control_surface_exports.py +91 -0
  41. voicerender-0.2.3/tests/test_engine_options.py +87 -0
  42. {voicerender-0.2.1 → voicerender-0.2.3}/tests/test_engine_registry.py +68 -6
  43. {voicerender-0.2.1 → voicerender-0.2.3}/tests/test_kittensynth_engine.py +30 -0
  44. voicerender-0.2.3/tests/test_model_management_api.py +127 -0
  45. voicerender-0.2.3/tests/test_model_management_cli.py +87 -0
  46. {voicerender-0.2.1 → voicerender-0.2.3}/tests/test_preflight.py +83 -0
  47. voicerender-0.2.3/tests/test_profile_roles.py +250 -0
  48. voicerender-0.2.3/tests/test_profile_roles_cli.py +149 -0
  49. voicerender-0.2.3/tests/test_progress.py +145 -0
  50. {voicerender-0.2.1 → voicerender-0.2.3}/tests/test_render_book.py +268 -3
  51. {voicerender-0.2.1 → voicerender-0.2.3}/tests/test_renderer.py +68 -1
  52. {voicerender-0.2.1 → voicerender-0.2.3}/tests/test_renderplan_render.py +246 -0
  53. voicerender-0.2.3/tests/test_storage.py +36 -0
  54. voicerender-0.2.3/tests/test_voice_clone.py +149 -0
  55. voicerender-0.2.3/tests/test_voice_clone_cli.py +68 -0
  56. voicerender-0.2.3/tests/test_voice_descriptors.py +122 -0
  57. voicerender-0.2.3/tests/test_voice_source_cli.py +145 -0
  58. {voicerender-0.2.1 → voicerender-0.2.3}/tests/wheel_smoke.py +3 -0
  59. {voicerender-0.2.1 → voicerender-0.2.3}/voicerender/__init__.py +79 -1
  60. {voicerender-0.2.1 → voicerender-0.2.3}/voicerender/_version.py +3 -3
  61. {voicerender-0.2.1 → voicerender-0.2.3}/voicerender/book.py +347 -7
  62. voicerender-0.2.3/voicerender/cli.py +1877 -0
  63. voicerender-0.2.3/voicerender/engines/assets.py +124 -0
  64. {voicerender-0.2.1 → voicerender-0.2.3}/voicerender/engines/base.py +17 -0
  65. voicerender-0.2.3/voicerender/engines/chatterboxsynth.py +906 -0
  66. {voicerender-0.2.1 → voicerender-0.2.3}/voicerender/engines/kittensynth.py +5 -0
  67. voicerender-0.2.3/voicerender/engines/options.py +53 -0
  68. {voicerender-0.2.1 → voicerender-0.2.3}/voicerender/engines/registry.py +40 -0
  69. voicerender-0.2.3/voicerender/estimates.py +179 -0
  70. voicerender-0.2.3/voicerender/events.py +101 -0
  71. voicerender-0.2.3/voicerender/models_api.py +290 -0
  72. {voicerender-0.2.1 → voicerender-0.2.3}/voicerender/preflight.py +119 -16
  73. voicerender-0.2.3/voicerender/profile_roles.py +123 -0
  74. voicerender-0.2.3/voicerender/progress.py +177 -0
  75. {voicerender-0.2.1 → voicerender-0.2.3}/voicerender/render.py +138 -4
  76. {voicerender-0.2.1 → voicerender-0.2.3}/voicerender/renderplan_render.py +210 -8
  77. {voicerender-0.2.1 → voicerender-0.2.3}/voicerender/storage.py +29 -0
  78. voicerender-0.2.3/voicerender/voice_clone.py +166 -0
  79. {voicerender-0.2.1 → voicerender-0.2.3}/voicerender/voice_design.py +2 -2
  80. {voicerender-0.2.1 → voicerender-0.2.3}/voicerender/voice_source_codec.py +41 -9
  81. {voicerender-0.2.1 → voicerender-0.2.3}/voicerender/voice_sources.py +74 -5
  82. voicerender-0.2.3/voicerender/voices_api.py +298 -0
  83. {voicerender-0.2.1 → voicerender-0.2.3/voicerender.egg-info}/PKG-INFO +105 -3
  84. {voicerender-0.2.1 → voicerender-0.2.3}/voicerender.egg-info/SOURCES.txt +48 -0
  85. {voicerender-0.2.1 → voicerender-0.2.3}/voicerender.egg-info/requires.txt +4 -1
  86. {voicerender-0.2.1 → voicerender-0.2.3}/voicerender.egg-info/scm_file_list.json +49 -1
  87. voicerender-0.2.3/voicerender.egg-info/scm_version.json +8 -0
  88. voicerender-0.2.1/tests/test_storage.py +0 -16
  89. voicerender-0.2.1/voicerender/cli.py +0 -981
  90. voicerender-0.2.1/voicerender/events.py +0 -43
  91. voicerender-0.2.1/voicerender.egg-info/scm_version.json +0 -8
  92. {voicerender-0.2.1 → voicerender-0.2.3}/.github/workflows/codecov.yml +0 -0
  93. {voicerender-0.2.1 → voicerender-0.2.3}/.github/workflows/pre-commit.yml +0 -0
  94. {voicerender-0.2.1 → voicerender-0.2.3}/.github/workflows/python-publish.yml +0 -0
  95. {voicerender-0.2.1 → voicerender-0.2.3}/.gitignore +0 -0
  96. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/ledger.toml +0 -0
  97. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/.ledger-project.toml +0 -0
  98. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/config.toml +0 -0
  99. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/data/.ledger-project.toml +0 -0
  100. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/data/ledgers/main/releases/0.1.1/audit/commit-audit.yaml +0 -0
  101. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/data/ledgers/main/releases/0.1.1/entries/entry-0001.md +0 -0
  102. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/data/ledgers/main/releases/0.1.1/release.md +0 -0
  103. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/data/ledgers/main/releases/0.2.0/audit/commit-audit.yaml +0 -0
  104. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/data/ledgers/main/releases/0.2.0/entries/entry-0001.md +0 -0
  105. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/data/ledgers/main/releases/0.2.0/entries/entry-0002.md +0 -0
  106. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/data/ledgers/main/releases/0.2.0/entries/entry-0003.md +0 -0
  107. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/data/ledgers/main/releases/0.2.0/entries/entry-0004.md +0 -0
  108. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/data/ledgers/main/releases/0.2.0/entries/entry-0005.md +0 -0
  109. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/data/ledgers/main/releases/0.2.0/entries/entry-0006.md +0 -0
  110. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/data/ledgers/main/releases/0.2.0/entries/entry-0007.md +0 -0
  111. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/data/ledgers/main/releases/0.2.0/release.md +0 -0
  112. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/data/ledgers/main/releases/0.2.1/audit/commit-audit.yaml +0 -0
  113. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0001.md +0 -0
  114. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0002.md +0 -0
  115. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0003.md +0 -0
  116. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0004.md +0 -0
  117. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0005.md +0 -0
  118. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/data/ledgers/main/releases/v0.1.0/audit/commit-audit.yaml +0 -0
  119. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/data/ledgers/main/releases/v0.1.0/entries/entry-0001.md +0 -0
  120. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/data/ledgers/main/releases/v0.1.0/entries/entry-0002.md +0 -0
  121. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/data/ledgers/main/releases/v0.1.0/entries/entry-0003.md +0 -0
  122. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/data/ledgers/main/releases/v0.1.0/entries/entry-0004.md +0 -0
  123. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/data/ledgers/main/releases/v0.1.0/entries/entry-0005.md +0 -0
  124. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/data/ledgers/main/releases/v0.1.0/release.md +0 -0
  125. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/work/0.1.1/audit-decisions.yaml +0 -0
  126. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/work/0.1.1/entries.yaml +0 -0
  127. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/work/0.2.0/audit-decisions.yaml +0 -0
  128. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/work/0.2.0/audit.yaml +0 -0
  129. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/work/0.2.0/entries.yaml +0 -0
  130. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/work/0.2.0/evidence/19f5b06.patch +0 -0
  131. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/work/0.2.0/evidence/245ca9f.patch +0 -0
  132. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/work/0.2.0/evidence/42a90e3.patch +0 -0
  133. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/work/0.2.0/evidence/480cbea.patch +0 -0
  134. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/work/0.2.0/evidence/4eb3c28.patch +0 -0
  135. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/work/0.2.0/evidence/50f298e.patch +0 -0
  136. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/work/0.2.0/evidence/56ae327.patch +0 -0
  137. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/work/0.2.0/evidence/57f1e24.patch +0 -0
  138. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/work/0.2.0/evidence/6dae2b6.patch +0 -0
  139. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/work/0.2.0/evidence/84f29db.patch +0 -0
  140. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/work/0.2.0/evidence/a390661.patch +0 -0
  141. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/work/0.2.0/evidence/a431dfa.patch +0 -0
  142. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/work/0.2.0/evidence/c2be7b3.patch +0 -0
  143. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/work/0.2.0/evidence/da15247.patch +0 -0
  144. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/work/0.2.0/evidence/ede34ea.patch +0 -0
  145. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/work/0.2.0/evidence/manifest.json +0 -0
  146. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/work/0.2.0/range.json +0 -0
  147. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/work/0.2.1/audit-decisions.yaml +0 -0
  148. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/work/0.2.1/audit.yaml +0 -0
  149. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/work/0.2.1/entries.yaml +0 -0
  150. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/work/0.2.1/evidence/3342e15.patch +0 -0
  151. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/work/0.2.1/evidence/3c82349.patch +0 -0
  152. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/work/0.2.1/evidence/7f466cc.patch +0 -0
  153. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/work/0.2.1/evidence/84f629e.patch +0 -0
  154. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/work/0.2.1/evidence/b7e1917.patch +0 -0
  155. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/work/0.2.1/evidence/manifest.json +0 -0
  156. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/work/0.2.1/range.json +0 -0
  157. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/work/v0.1.0/audit-decisions.yaml +0 -0
  158. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/work/v0.1.0/entries.yaml +0 -0
  159. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/work/v0.1.0/evidence/264eb9b.patch +0 -0
  160. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/work/v0.1.0/evidence/774f6f2.patch +0 -0
  161. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/work/v0.1.0/evidence/9e71e84.patch +0 -0
  162. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/work/v0.1.0/evidence/c4a2872.patch +0 -0
  163. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/work/v0.1.0/evidence/fb7faaf.patch +0 -0
  164. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/work/v0.1.0/evidence/manifest.json +0 -0
  165. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/releaseledger/write.lock +0 -0
  166. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/taskledger/.ledger-project.toml +0 -0
  167. {voicerender-0.2.1 → voicerender-0.2.3}/.ledger/taskledger/config.toml +0 -0
  168. {voicerender-0.2.1 → voicerender-0.2.3}/.pre-commit-config.yaml +0 -0
  169. {voicerender-0.2.1 → voicerender-0.2.3}/LICENSE +0 -0
  170. {voicerender-0.2.1 → voicerender-0.2.3}/MANIFEST.in +0 -0
  171. {voicerender-0.2.1 → voicerender-0.2.3}/docs/Makefile +0 -0
  172. {voicerender-0.2.1 → voicerender-0.2.3}/docs/conf.py +0 -0
  173. {voicerender-0.2.1 → voicerender-0.2.3}/docs/make.bat +0 -0
  174. {voicerender-0.2.1 → voicerender-0.2.3}/docs/make.py +0 -0
  175. {voicerender-0.2.1 → voicerender-0.2.3}/docs/requirements.txt +0 -0
  176. {voicerender-0.2.1 → voicerender-0.2.3}/examples/README.md +0 -0
  177. {voicerender-0.2.1 → voicerender-0.2.3}/examples/plans/chapter.renderplan.toml +0 -0
  178. {voicerender-0.2.1 → voicerender-0.2.3}/examples/plans/chapter.voiceplan.toml +0 -0
  179. {voicerender-0.2.1 → voicerender-0.2.3}/examples/voices/narration.renderprofile.toml +0 -0
  180. {voicerender-0.2.1 → voicerender-0.2.3}/examples/voices/piper.toml +0 -0
  181. {voicerender-0.2.1 → voicerender-0.2.3}/examples/voices/pocket-reference.toml +0 -0
  182. {voicerender-0.2.1 → voicerender-0.2.3}/setup.cfg +0 -0
  183. {voicerender-0.2.1 → voicerender-0.2.3}/tests/test_backends.py +0 -0
  184. {voicerender-0.2.1 → voicerender-0.2.3}/tests/test_capacity.py +0 -0
  185. {voicerender-0.2.1 → voicerender-0.2.3}/tests/test_engine_contracts.py +0 -0
  186. {voicerender-0.2.1 → voicerender-0.2.3}/tests/test_inflectsynth_engine.py +0 -0
  187. {voicerender-0.2.1 → voicerender-0.2.3}/tests/test_kokoro_reference.py +0 -0
  188. {voicerender-0.2.1 → voicerender-0.2.3}/tests/test_managed_voices.py +0 -0
  189. {voicerender-0.2.1 → voicerender-0.2.3}/tests/test_package_metadata.py +0 -0
  190. {voicerender-0.2.1 → voicerender-0.2.3}/tests/test_pocketsynth_managed.py +0 -0
  191. {voicerender-0.2.1 → voicerender-0.2.3}/tests/test_qwen3_voice_design.py +0 -0
  192. {voicerender-0.2.1 → voicerender-0.2.3}/tests/test_qwen3synth_engine.py +0 -0
  193. {voicerender-0.2.1 → voicerender-0.2.3}/tests/test_renderplan_input.py +0 -0
  194. {voicerender-0.2.1 → voicerender-0.2.3}/tests/test_renderprofile.py +0 -0
  195. {voicerender-0.2.1 → voicerender-0.2.3}/tests/test_soprosynth_engine.py +0 -0
  196. {voicerender-0.2.1 → voicerender-0.2.3}/tests/test_voice_source_codec.py +0 -0
  197. {voicerender-0.2.1 → voicerender-0.2.3}/tests/test_voice_sources.py +0 -0
  198. {voicerender-0.2.1 → voicerender-0.2.3}/voicerender/__main__.py +0 -0
  199. {voicerender-0.2.1 → voicerender-0.2.3}/voicerender/book_contract.py +0 -0
  200. {voicerender-0.2.1 → voicerender-0.2.3}/voicerender/book_layout.py +0 -0
  201. {voicerender-0.2.1 → voicerender-0.2.3}/voicerender/capacity.py +0 -0
  202. {voicerender-0.2.1 → voicerender-0.2.3}/voicerender/engines/__init__.py +0 -0
  203. {voicerender-0.2.1 → voicerender-0.2.3}/voicerender/engines/api_probe.py +0 -0
  204. {voicerender-0.2.1 → voicerender-0.2.3}/voicerender/engines/catalog.py +0 -0
  205. {voicerender-0.2.1 → voicerender-0.2.3}/voicerender/engines/inflectsynth.py +0 -0
  206. {voicerender-0.2.1 → voicerender-0.2.3}/voicerender/engines/kokoro.py +0 -0
  207. {voicerender-0.2.1 → voicerender-0.2.3}/voicerender/engines/metadata.py +0 -0
  208. {voicerender-0.2.1 → voicerender-0.2.3}/voicerender/engines/piper.py +0 -0
  209. {voicerender-0.2.1 → voicerender-0.2.3}/voicerender/engines/pipersynth.py +0 -0
  210. {voicerender-0.2.1 → voicerender-0.2.3}/voicerender/engines/pocket.py +0 -0
  211. {voicerender-0.2.1 → voicerender-0.2.3}/voicerender/engines/pocketsynth.py +0 -0
  212. {voicerender-0.2.1 → voicerender-0.2.3}/voicerender/engines/profiles.py +0 -0
  213. {voicerender-0.2.1 → voicerender-0.2.3}/voicerender/engines/qwen3synth.py +0 -0
  214. {voicerender-0.2.1 → voicerender-0.2.3}/voicerender/engines/selection.py +0 -0
  215. {voicerender-0.2.1 → voicerender-0.2.3}/voicerender/engines/soprosynth.py +0 -0
  216. {voicerender-0.2.1 → voicerender-0.2.3}/voicerender/engines/supertonicsynth.py +0 -0
  217. {voicerender-0.2.1 → voicerender-0.2.3}/voicerender/errors.py +0 -0
  218. {voicerender-0.2.1 → voicerender-0.2.3}/voicerender/lexicons.py +0 -0
  219. {voicerender-0.2.1 → voicerender-0.2.3}/voicerender/managed_voices.py +0 -0
  220. {voicerender-0.2.1 → voicerender-0.2.3}/voicerender/models.py +0 -0
  221. {voicerender-0.2.1 → voicerender-0.2.3}/voicerender/py.typed +0 -0
  222. {voicerender-0.2.1 → voicerender-0.2.3}/voicerender/renderplan_input.py +0 -0
  223. {voicerender-0.2.1 → voicerender-0.2.3}/voicerender/renderprofile.py +0 -0
  224. {voicerender-0.2.1 → voicerender-0.2.3}/voicerender.egg-info/dependency_links.txt +0 -0
  225. {voicerender-0.2.1 → voicerender-0.2.3}/voicerender.egg-info/entry_points.txt +0 -0
  226. {voicerender-0.2.1 → voicerender-0.2.3}/voicerender.egg-info/top_level.txt +0 -0
@@ -16,6 +16,7 @@ include = [
16
16
  "**/*.yaml",
17
17
  "**/*.yml",
18
18
  "**/*.ssmd",
19
+ "**/*.typed",
19
20
  "LICENSE",
20
21
  ]
21
22
  split_max_chars = 0
@@ -197,6 +197,7 @@ jobs:
197
197
  ):
198
198
  base_requirements.add(requirement.name.lower())
199
199
  engine_sdks = {
200
+ "chatterboxsynth",
200
201
  "inflectsynth", "kittensynth", "pykokoro", "pipersynth",
201
202
  "pocketsynth", "soprosynth", "supertonicsynth",
202
203
  "qwen3synth",
@@ -235,6 +236,7 @@ jobs:
235
236
  assert resources.files("voicerender").joinpath("book_layout.py").is_file()
236
237
  assert RenderPlanSet is not None
237
238
  assert {item["id"] for item in list_engines()} == {
239
+ "chatterbox",
238
240
  "inflect",
239
241
  "kitten",
240
242
  "kokoro",
@@ -246,6 +248,7 @@ jobs:
246
248
  }
247
249
  assert not any(
248
250
  name.split(".", 1)[0] in {
251
+ "chatterboxsynth",
249
252
  "inflectsynth", "kittensynth", "pykokoro", "pipersynth",
250
253
  "pocketsynth", "soprosynth", "supertonicsynth", "utterplan",
251
254
  "qwen3synth",
@@ -21,3 +21,15 @@
21
21
  {"data":{"row_count":5},"event":"audit.created","event_id":"event-0021","record_revisions":{"commit_audit_sheet":1},"release_version":"0.2.1","schema_version":2}
22
22
  {"data":{"updated_rows":5},"event":"audit.updated","event_id":"event-0022","record_revisions":{"commit_audit_sheet":2},"release_version":"0.2.1","schema_version":2}
23
23
  {"data":{"entry_ids":["entry-0001","entry-0002","entry-0003","entry-0004","entry-0005"],"synced_audit_rows":5},"event":"entry.batch_added","event_id":"event-0023","record_revisions":{"commit_audit_sheet":3,"entry:0.2.1/entry-0001":1,"entry:0.2.1/entry-0002":1,"entry:0.2.1/entry-0003":1,"entry:0.2.1/entry-0004":1,"entry:0.2.1/entry-0005":1,"release:0.2.1":3},"release_version":"0.2.1","schema_version":2}
24
+ {"data":{"kind":"added","status":"accepted"},"entry_id":"entry-0006","event":"entry.added","event_id":"event-0024","record_revisions":{"entry:0.2.1/entry-0006":1,"release:0.2.1":4},"release_version":"0.2.1","schema_version":2}
25
+ {"data":{"status":"planned"},"event":"release.created","event_id":"event-0025","record_revisions":{"release:0.2.2":1},"release_version":"0.2.2","schema_version":2}
26
+ {"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-0026","record_revisions":{"release:0.2.2":2},"release_version":"0.2.2","schema_version":2}
27
+ {"data":{"row_count":4},"event":"audit.created","event_id":"event-0027","record_revisions":{"commit_audit_sheet":1},"release_version":"0.2.2","schema_version":2}
28
+ {"data":{"updated_rows":4},"event":"audit.updated","event_id":"event-0028","record_revisions":{"commit_audit_sheet":2},"release_version":"0.2.2","schema_version":2}
29
+ {"data":{"entry_ids":["entry-0001","entry-0002","entry-0003","entry-0004"],"synced_audit_rows":4},"event":"entry.batch_added","event_id":"event-0029","record_revisions":{"commit_audit_sheet":3,"entry:0.2.2/entry-0001":1,"entry:0.2.2/entry-0002":1,"entry:0.2.2/entry-0003":1,"entry:0.2.2/entry-0004":1,"release:0.2.2":3},"release_version":"0.2.2","schema_version":2}
30
+ {"data":{"released_at":"2026-10-17"},"event":"release.finalized","event_id":"event-0030","record_revisions":{"release:0.2.2":4},"release_version":"0.2.2","schema_version":2}
31
+ {"data":{"status":"planned"},"event":"release.created","event_id":"event-0031","record_revisions":{"release:0.2.3":1},"release_version":"0.2.3","schema_version":2}
32
+ {"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-0032","record_revisions":{"release:0.2.3":2},"release_version":"0.2.3","schema_version":2}
33
+ {"data":{"row_count":2},"event":"audit.created","event_id":"event-0033","record_revisions":{"commit_audit_sheet":1},"release_version":"0.2.3","schema_version":2}
34
+ {"data":{"updated_rows":2},"event":"audit.updated","event_id":"event-0034","record_revisions":{"commit_audit_sheet":2},"release_version":"0.2.3","schema_version":2}
35
+ {"data":{"entry_ids":["entry-0001","entry-0002"],"synced_audit_rows":2},"event":"entry.batch_added","event_id":"event-0035","record_revisions":{"commit_audit_sheet":3,"entry:0.2.3/entry-0001":1,"entry:0.2.3/entry-0002":1,"release:0.2.3":3},"release_version":"0.2.3","schema_version":2}
@@ -0,0 +1,31 @@
1
+ ---
2
+ schema_version: 2
3
+ object_type: release_entry
4
+ versioning:
5
+ schema_version: 1
6
+ revision: 1
7
+ entry_id: entry-0006
8
+ release_version: 0.2.1
9
+ kind: added
10
+ summary: Added typed progress, evidence-based ETA, and workload estimates
11
+ status: accepted
12
+ audience: null
13
+ scopes: []
14
+ source_refs: []
15
+ paths:
16
+ - voicerender/events.py
17
+ - voicerender/progress.py
18
+ - voicerender/cli.py
19
+ - voicerender/estimates.py
20
+ - README.md
21
+ - docs/index.md
22
+ issues: []
23
+ prs: []
24
+ sources: []
25
+ contributors: []
26
+ breaking: false
27
+ internal: false
28
+ order: 6
29
+ ---
30
+
31
+ Render and preflight callbacks expose item and chapter progress with ETA only after successful synthesis timing samples. CLI progress stays on stderr, while pre-run estimates report verified output reuse and unknown duration without a calibrated timing model.
@@ -3,7 +3,7 @@ schema_version: 2
3
3
  object_type: release
4
4
  versioning:
5
5
  schema_version: 1
6
- revision: 3
6
+ revision: 4
7
7
  version: 0.2.1
8
8
  status: planned
9
9
  history_state: curated
@@ -16,7 +16,7 @@ changelog_file: null
16
16
  boundary_ref: null
17
17
  source_refs: []
18
18
  source_count: null
19
- entry_count: 5
19
+ entry_count: 6
20
20
  artifact_count: 0
21
21
  git_base_ref: v0.2.0
22
22
  git_base_sha: a627d2d625bc3e6daae8e3bee58abb77231918ec
@@ -0,0 +1,245 @@
1
+ schema_version: 1
2
+ object_type: commit_audit_sheet
3
+ versioning:
4
+ schema_version: 1
5
+ revision: 3
6
+ release_version: 0.2.2
7
+ git_base_ref: 7f466cc
8
+ git_base_sha: 7f466cc98bb9644372a562b621411ba778a9dba5
9
+ git_head_ref: HEAD
10
+ git_head_sha: f093d362eb1e35533c997d9e97c850690848b94a
11
+ git_range: 7f466cc98bb9644372a562b621411ba778a9dba5..f093d362eb1e35533c997d9e97c850690848b94a
12
+ commit_count: 4
13
+ rows:
14
+ - sha: fdb106d099e7085933d3573089ec9bb7ff5f86ea
15
+ source_ref: git:fdb106d099e7085933d3573089ec9bb7ff5f86ea
16
+ short_sha: fdb106d
17
+ changed_paths:
18
+ - .ledger/releaseledger/data/ledgers/main/events/events.jsonl
19
+ - .ledger/releaseledger/data/ledgers/main/releases/0.2.0/release.md
20
+ - .ledger/releaseledger/data/ledgers/main/releases/0.2.1/audit/commit-audit.yaml
21
+ - .ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0001.md
22
+ - .ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0002.md
23
+ - .ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0003.md
24
+ - .ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0004.md
25
+ - .ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0005.md
26
+ - .ledger/releaseledger/data/ledgers/main/releases/0.2.1/release.md
27
+ - .ledger/releaseledger/work/0.2.1/audit-decisions.yaml
28
+ - .ledger/releaseledger/work/0.2.1/audit.yaml
29
+ - .ledger/releaseledger/work/0.2.1/entries.yaml
30
+ - .ledger/releaseledger/work/0.2.1/evidence/3342e15.patch
31
+ - .ledger/releaseledger/work/0.2.1/evidence/3c82349.patch
32
+ - .ledger/releaseledger/work/0.2.1/evidence/7f466cc.patch
33
+ - .ledger/releaseledger/work/0.2.1/evidence/84f629e.patch
34
+ - .ledger/releaseledger/work/0.2.1/evidence/b7e1917.patch
35
+ - .ledger/releaseledger/work/0.2.1/evidence/manifest.json
36
+ - .ledger/releaseledger/work/0.2.1/range.json
37
+ - docs/changelog.md
38
+ stats:
39
+ files_changed: 20
40
+ insertions: 6669
41
+ deletions: 5
42
+ inspected: true
43
+ inspected_paths:
44
+ - .ledger/releaseledger/data/ledgers/main/events/events.jsonl
45
+ - .ledger/releaseledger/data/ledgers/main/releases/0.2.0/release.md
46
+ - .ledger/releaseledger/data/ledgers/main/releases/0.2.1/audit/commit-audit.yaml
47
+ - .ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0001.md
48
+ - .ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0002.md
49
+ - .ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0003.md
50
+ - .ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0004.md
51
+ - .ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0005.md
52
+ - .ledger/releaseledger/data/ledgers/main/releases/0.2.1/release.md
53
+ - .ledger/releaseledger/work/0.2.1/audit-decisions.yaml
54
+ - .ledger/releaseledger/work/0.2.1/audit.yaml
55
+ - .ledger/releaseledger/work/0.2.1/entries.yaml
56
+ - .ledger/releaseledger/work/0.2.1/evidence/3342e15.patch
57
+ - .ledger/releaseledger/work/0.2.1/evidence/3c82349.patch
58
+ - .ledger/releaseledger/work/0.2.1/evidence/7f466cc.patch
59
+ - .ledger/releaseledger/work/0.2.1/evidence/84f629e.patch
60
+ - .ledger/releaseledger/work/0.2.1/evidence/b7e1917.patch
61
+ - .ledger/releaseledger/work/0.2.1/evidence/manifest.json
62
+ - .ledger/releaseledger/work/0.2.1/range.json
63
+ - docs/changelog.md
64
+ observed_behavior:
65
+ Updated releaseledger metadata and generated changelog source
66
+ for the prior release; no product behavior changed.
67
+ public_impact: none
68
+ decision: internal
69
+ stale: false
70
+ evidence_subject: "doc: changelog"
71
+ target_entry_id: entry-0001
72
+ notes: Release bookkeeping only.
73
+ - sha: 88617914750a7ab2f973bd9fac4992093136dd56
74
+ source_ref: git:88617914750a7ab2f973bd9fac4992093136dd56
75
+ short_sha: "8861791"
76
+ changed_paths:
77
+ - README.md
78
+ - docs/index.md
79
+ - docs/renderprofile.md
80
+ - tests/test_control_surface_exports.py
81
+ - tests/test_engine_options.py
82
+ - tests/test_model_management_api.py
83
+ - tests/test_model_management_cli.py
84
+ - tests/test_profile_roles.py
85
+ - tests/test_profile_roles_cli.py
86
+ - tests/test_storage.py
87
+ - tests/test_voice_clone.py
88
+ - tests/test_voice_clone_cli.py
89
+ - tests/test_voice_descriptors.py
90
+ - tests/test_voice_source_cli.py
91
+ - voicerender/__init__.py
92
+ - voicerender/cli.py
93
+ - voicerender/engines/assets.py
94
+ - voicerender/engines/base.py
95
+ - voicerender/engines/options.py
96
+ - voicerender/engines/registry.py
97
+ - voicerender/models_api.py
98
+ - voicerender/profile_roles.py
99
+ - voicerender/storage.py
100
+ - voicerender/voice_clone.py
101
+ - voicerender/voice_design.py
102
+ - voicerender/voice_source_codec.py
103
+ - voicerender/voice_sources.py
104
+ - voicerender/voices_api.py
105
+ stats:
106
+ files_changed: 28
107
+ insertions: 3320
108
+ deletions: 35
109
+ inspected: true
110
+ inspected_paths:
111
+ - README.md
112
+ - docs/index.md
113
+ - docs/renderprofile.md
114
+ - tests/test_control_surface_exports.py
115
+ - tests/test_engine_options.py
116
+ - tests/test_model_management_api.py
117
+ - tests/test_model_management_cli.py
118
+ - tests/test_profile_roles.py
119
+ - tests/test_profile_roles_cli.py
120
+ - tests/test_storage.py
121
+ - tests/test_voice_clone.py
122
+ - tests/test_voice_clone_cli.py
123
+ - tests/test_voice_descriptors.py
124
+ - tests/test_voice_source_cli.py
125
+ - voicerender/__init__.py
126
+ - voicerender/cli.py
127
+ - voicerender/engines/assets.py
128
+ - voicerender/engines/base.py
129
+ - voicerender/engines/options.py
130
+ - voicerender/engines/registry.py
131
+ - voicerender/models_api.py
132
+ - voicerender/profile_roles.py
133
+ - voicerender/storage.py
134
+ - voicerender/voice_clone.py
135
+ - voicerender/voice_design.py
136
+ - voicerender/voice_source_codec.py
137
+ - voicerender/voice_sources.py
138
+ - voicerender/voices_api.py
139
+ observed_behavior:
140
+ Added public engine and voice control APIs for model management,
141
+ voice discovery, voice cloning, and RenderProfile role mutations, with matching
142
+ CLI commands and documentation.
143
+ public_impact: public
144
+ decision: accepted
145
+ stale: false
146
+ evidence_subject: "feat: control surface added"
147
+ target_entry_id: entry-0002
148
+ notes: User-facing API and CLI capabilities.
149
+ - sha: 651054065218edf3812fedb2ec7963111a2cde13
150
+ source_ref: git:651054065218edf3812fedb2ec7963111a2cde13
151
+ short_sha: "6510540"
152
+ changed_paths:
153
+ - .ledger/releaseledger/data/ledgers/main/events/events.jsonl
154
+ - .ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0006.md
155
+ - .ledger/releaseledger/data/ledgers/main/releases/0.2.1/release.md
156
+ - README.md
157
+ - docs/changelog.md
158
+ - docs/index.md
159
+ - tests/test_cli.py
160
+ - tests/test_control_surface_exports.py
161
+ - tests/test_preflight.py
162
+ - tests/test_progress.py
163
+ - tests/test_render_book.py
164
+ - tests/test_renderer.py
165
+ - tests/test_renderplan_render.py
166
+ - voicerender/__init__.py
167
+ - voicerender/book.py
168
+ - voicerender/cli.py
169
+ - voicerender/estimates.py
170
+ - voicerender/events.py
171
+ - voicerender/preflight.py
172
+ - voicerender/progress.py
173
+ - voicerender/render.py
174
+ - voicerender/renderplan_render.py
175
+ stats:
176
+ files_changed: 22
177
+ insertions: 2733
178
+ deletions: 69
179
+ inspected: true
180
+ inspected_paths:
181
+ - .ledger/releaseledger/data/ledgers/main/events/events.jsonl
182
+ - .ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0006.md
183
+ - .ledger/releaseledger/data/ledgers/main/releases/0.2.1/release.md
184
+ - README.md
185
+ - docs/changelog.md
186
+ - docs/index.md
187
+ - tests/test_cli.py
188
+ - tests/test_control_surface_exports.py
189
+ - tests/test_preflight.py
190
+ - tests/test_progress.py
191
+ - tests/test_render_book.py
192
+ - tests/test_renderer.py
193
+ - tests/test_renderplan_render.py
194
+ - voicerender/__init__.py
195
+ - voicerender/book.py
196
+ - voicerender/cli.py
197
+ - voicerender/estimates.py
198
+ - voicerender/events.py
199
+ - voicerender/preflight.py
200
+ - voicerender/progress.py
201
+ - voicerender/render.py
202
+ - voicerender/renderplan_render.py
203
+ observed_behavior:
204
+ Added typed render progress events, workload estimates, and evidence-based
205
+ ETA reporting across preflight, single-plan rendering, book rendering, and CLI
206
+ progress output.
207
+ public_impact: public
208
+ decision: accepted
209
+ stale: false
210
+ evidence_subject: "feat: progress view added"
211
+ target_entry_id: entry-0003
212
+ notes: User-facing progress and estimation capabilities.
213
+ - sha: f093d362eb1e35533c997d9e97c850690848b94a
214
+ source_ref: git:f093d362eb1e35533c997d9e97c850690848b94a
215
+ short_sha: f093d36
216
+ changed_paths:
217
+ - pyproject.toml
218
+ - voicerender/book.py
219
+ - voicerender/cli.py
220
+ - voicerender/engines/options.py
221
+ - voicerender/models_api.py
222
+ - voicerender/profile_roles.py
223
+ - voicerender/voices_api.py
224
+ stats:
225
+ files_changed: 7
226
+ insertions: 53
227
+ deletions: 42
228
+ inspected: true
229
+ inspected_paths:
230
+ - pyproject.toml
231
+ - voicerender/book.py
232
+ - voicerender/cli.py
233
+ - voicerender/engines/options.py
234
+ - voicerender/models_api.py
235
+ - voicerender/profile_roles.py
236
+ - voicerender/voices_api.py
237
+ observed_behavior:
238
+ Adjusted annotations and typing configuration to satisfy mypy
239
+ without changing runtime behavior.
240
+ public_impact: internal
241
+ decision: internal
242
+ stale: false
243
+ evidence_subject: "chore: mypy"
244
+ target_entry_id: entry-0004
245
+ notes: Type-checking maintenance only.
@@ -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: 0.2.2
9
+ kind: docs
10
+ summary: Documented release metadata for the prior release
11
+ status: accepted
12
+ audience: null
13
+ scopes: []
14
+ source_refs:
15
+ - git:fdb106d099e7085933d3573089ec9bb7ff5f86ea
16
+ paths:
17
+ - .ledger/releaseledger/data/ledgers/main/events/events.jsonl
18
+ - .ledger/releaseledger/data/ledgers/main/releases/0.2.0/release.md
19
+ - .ledger/releaseledger/data/ledgers/main/releases/0.2.1/audit/commit-audit.yaml
20
+ - .ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0001.md
21
+ - .ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0002.md
22
+ - .ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0003.md
23
+ - .ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0004.md
24
+ - .ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0005.md
25
+ - .ledger/releaseledger/data/ledgers/main/releases/0.2.1/release.md
26
+ - .ledger/releaseledger/work/0.2.1/audit-decisions.yaml
27
+ - .ledger/releaseledger/work/0.2.1/audit.yaml
28
+ - .ledger/releaseledger/work/0.2.1/entries.yaml
29
+ - .ledger/releaseledger/work/0.2.1/evidence/3342e15.patch
30
+ - .ledger/releaseledger/work/0.2.1/evidence/3c82349.patch
31
+ - .ledger/releaseledger/work/0.2.1/evidence/7f466cc.patch
32
+ - .ledger/releaseledger/work/0.2.1/evidence/84f629e.patch
33
+ - .ledger/releaseledger/work/0.2.1/evidence/b7e1917.patch
34
+ - .ledger/releaseledger/work/0.2.1/evidence/manifest.json
35
+ - .ledger/releaseledger/work/0.2.1/range.json
36
+ - docs/changelog.md
37
+ issues: []
38
+ prs: []
39
+ sources:
40
+ - git:fdb106d099e7085933d3573089ec9bb7ff5f86ea
41
+ contributors:
42
+ - "@holgern"
43
+ breaking: false
44
+ internal: true
45
+ order: 1
46
+ ---
@@ -0,0 +1,56 @@
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: 0.2.2
9
+ kind: added
10
+ summary:
11
+ Added model management, voice discovery, voice cloning, and RenderProfile
12
+ role APIs and CLI commands
13
+ status: accepted
14
+ audience: null
15
+ scopes: []
16
+ source_refs:
17
+ - git:88617914750a7ab2f973bd9fac4992093136dd56
18
+ paths:
19
+ - README.md
20
+ - docs/index.md
21
+ - docs/renderprofile.md
22
+ - tests/test_control_surface_exports.py
23
+ - tests/test_engine_options.py
24
+ - tests/test_model_management_api.py
25
+ - tests/test_model_management_cli.py
26
+ - tests/test_profile_roles.py
27
+ - tests/test_profile_roles_cli.py
28
+ - tests/test_storage.py
29
+ - tests/test_voice_clone.py
30
+ - tests/test_voice_clone_cli.py
31
+ - tests/test_voice_descriptors.py
32
+ - tests/test_voice_source_cli.py
33
+ - voicerender/__init__.py
34
+ - voicerender/cli.py
35
+ - voicerender/engines/assets.py
36
+ - voicerender/engines/base.py
37
+ - voicerender/engines/options.py
38
+ - voicerender/engines/registry.py
39
+ - voicerender/models_api.py
40
+ - voicerender/profile_roles.py
41
+ - voicerender/storage.py
42
+ - voicerender/voice_clone.py
43
+ - voicerender/voice_design.py
44
+ - voicerender/voice_source_codec.py
45
+ - voicerender/voice_sources.py
46
+ - voicerender/voices_api.py
47
+ issues: []
48
+ prs: []
49
+ sources:
50
+ - git:88617914750a7ab2f973bd9fac4992093136dd56
51
+ contributors:
52
+ - "@holgern"
53
+ breaking: false
54
+ internal: false
55
+ order: 2
56
+ ---
@@ -0,0 +1,48 @@
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: 0.2.2
9
+ kind: added
10
+ summary: Added typed progress, workload estimates, and evidence-based ETA reporting
11
+ status: accepted
12
+ audience: null
13
+ scopes: []
14
+ source_refs:
15
+ - git:651054065218edf3812fedb2ec7963111a2cde13
16
+ paths:
17
+ - .ledger/releaseledger/data/ledgers/main/events/events.jsonl
18
+ - .ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0006.md
19
+ - .ledger/releaseledger/data/ledgers/main/releases/0.2.1/release.md
20
+ - README.md
21
+ - docs/changelog.md
22
+ - docs/index.md
23
+ - tests/test_cli.py
24
+ - tests/test_control_surface_exports.py
25
+ - tests/test_preflight.py
26
+ - tests/test_progress.py
27
+ - tests/test_render_book.py
28
+ - tests/test_renderer.py
29
+ - tests/test_renderplan_render.py
30
+ - voicerender/__init__.py
31
+ - voicerender/book.py
32
+ - voicerender/cli.py
33
+ - voicerender/estimates.py
34
+ - voicerender/events.py
35
+ - voicerender/preflight.py
36
+ - voicerender/progress.py
37
+ - voicerender/render.py
38
+ - voicerender/renderplan_render.py
39
+ issues: []
40
+ prs: []
41
+ sources:
42
+ - git:651054065218edf3812fedb2ec7963111a2cde13
43
+ contributors:
44
+ - "@holgern"
45
+ breaking: false
46
+ internal: false
47
+ order: 3
48
+ ---
@@ -0,0 +1,35 @@
1
+ ---
2
+ schema_version: 2
3
+ object_type: release_entry
4
+ versioning:
5
+ schema_version: 1
6
+ revision: 1
7
+ entry_id: entry-0004
8
+ release_version: 0.2.2
9
+ kind: internal
10
+ summary:
11
+ Changed type annotations and mypy configuration without affecting runtime
12
+ behavior
13
+ status: accepted
14
+ audience: null
15
+ scopes: []
16
+ source_refs:
17
+ - git:f093d362eb1e35533c997d9e97c850690848b94a
18
+ paths:
19
+ - pyproject.toml
20
+ - voicerender/book.py
21
+ - voicerender/cli.py
22
+ - voicerender/engines/options.py
23
+ - voicerender/models_api.py
24
+ - voicerender/profile_roles.py
25
+ - voicerender/voices_api.py
26
+ issues: []
27
+ prs: []
28
+ sources:
29
+ - git:f093d362eb1e35533c997d9e97c850690848b94a
30
+ contributors:
31
+ - "@holgern"
32
+ breaking: false
33
+ internal: true
34
+ order: 4
35
+ ---
@@ -0,0 +1,27 @@
1
+ ---
2
+ schema_version: 2
3
+ object_type: release
4
+ versioning:
5
+ schema_version: 1
6
+ revision: 4
7
+ version: 0.2.2
8
+ status: released
9
+ history_state: curated
10
+ title: null
11
+ released_at: "2026-10-17"
12
+ previous_version: 0.2.1
13
+ cancel_reason: null
14
+ superseded_by: null
15
+ changelog_file: docs/changelog.md
16
+ boundary_ref: null
17
+ source_refs: []
18
+ source_count: null
19
+ entry_count: 4
20
+ artifact_count: 0
21
+ git_base_ref: 7f466cc
22
+ git_base_sha: 7f466cc98bb9644372a562b621411ba778a9dba5
23
+ git_head_ref: HEAD
24
+ git_head_sha: f093d362eb1e35533c997d9e97c850690848b94a
25
+ git_range: 7f466cc98bb9644372a562b621411ba778a9dba5..f093d362eb1e35533c997d9e97c850690848b94a
26
+ git_commit_count: 4
27
+ ---
@@ -0,0 +1,74 @@
1
+ schema_version: 1
2
+ object_type: commit_audit_sheet
3
+ versioning:
4
+ schema_version: 1
5
+ revision: 3
6
+ release_version: 0.2.3
7
+ git_base_ref: v0.2.2
8
+ git_base_sha: aecc0461fdecf55f60f20991e796efd1c240679a
9
+ git_head_ref: HEAD
10
+ git_head_sha: b17f1a9010849b0e6aec846f222e12a86f04ad79
11
+ git_range: aecc0461fdecf55f60f20991e796efd1c240679a..b17f1a9010849b0e6aec846f222e12a86f04ad79
12
+ commit_count: 2
13
+ rows:
14
+ - sha: 67e4d8ec44e04f96d7041afa8c87c762bec87b6f
15
+ source_ref: git:67e4d8ec44e04f96d7041afa8c87c762bec87b6f
16
+ short_sha: 67e4d8e
17
+ changed_paths:
18
+ - pyproject.toml
19
+ - tests/test_kittensynth_engine.py
20
+ - tests/test_preflight.py
21
+ - voicerender/engines/kittensynth.py
22
+ stats:
23
+ files_changed: 4
24
+ insertions: 73
25
+ deletions: 1
26
+ inspected: true
27
+ inspected_paths:
28
+ - pyproject.toml
29
+ - tests/test_kittensynth_engine.py
30
+ - tests/test_preflight.py
31
+ - voicerender/engines/kittensynth.py
32
+ observed_behavior:
33
+ Preflight now classifies managed model dependency failures as
34
+ non-replanable runtime rejects, preserving native error context instead of treating
35
+ the failure as a text-capacity issue; the KittenSynth optional dependency floor
36
+ is raised to 0.1.6.
37
+ public_impact: public
38
+ decision: accepted
39
+ stale: false
40
+ evidence_subject: "feat: raise kittensynth floor"
41
+ target_entry_id: entry-0001
42
+ notes: ""
43
+ - sha: b17f1a9010849b0e6aec846f222e12a86f04ad79
44
+ source_ref: git:b17f1a9010849b0e6aec846f222e12a86f04ad79
45
+ short_sha: b17f1a9
46
+ changed_paths:
47
+ - README.md
48
+ - pyproject.toml
49
+ - tests/test_chatterboxsynth_engine.py
50
+ - tests/test_engine_registry.py
51
+ - voicerender/engines/chatterboxsynth.py
52
+ - voicerender/engines/registry.py
53
+ stats:
54
+ files_changed: 6
55
+ insertions: 1672
56
+ deletions: 7
57
+ inspected: true
58
+ inspected_paths:
59
+ - README.md
60
+ - pyproject.toml
61
+ - tests/test_chatterboxsynth_engine.py
62
+ - tests/test_engine_registry.py
63
+ - voicerender/engines/chatterboxsynth.py
64
+ - voicerender/engines/registry.py
65
+ observed_behavior:
66
+ Adds optional English-only ChatterboxSynth rendering with installed-model
67
+ discovery, pinned local or managed reference voices, exact preflight measurement,
68
+ and lazy voice preparation.
69
+ public_impact: public
70
+ decision: accepted
71
+ stale: false
72
+ evidence_subject: "feat: add chatterbox"
73
+ target_entry_id: entry-0002
74
+ notes: ""
@@ -0,0 +1,32 @@
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: 0.2.3
9
+ kind: changed
10
+ summary:
11
+ Changed preflight handling so unavailable managed KittenSynth dependencies
12
+ reject without scheduling a replan
13
+ status: accepted
14
+ audience: null
15
+ scopes: []
16
+ source_refs:
17
+ - git:67e4d8ec44e04f96d7041afa8c87c762bec87b6f
18
+ paths:
19
+ - pyproject.toml
20
+ - tests/test_kittensynth_engine.py
21
+ - tests/test_preflight.py
22
+ - voicerender/engines/kittensynth.py
23
+ issues: []
24
+ prs: []
25
+ sources:
26
+ - git:67e4d8ec44e04f96d7041afa8c87c762bec87b6f
27
+ contributors:
28
+ - "@holgern"
29
+ breaking: false
30
+ internal: false
31
+ order: 1
32
+ ---