voicerender 0.2.5__tar.gz → 0.2.8__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 (383) hide show
  1. {voicerender-0.2.5 → voicerender-0.2.8}/.github/workflows/tests.yml +30 -7
  2. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/data/ledgers/main/events/events.jsonl +22 -0
  3. voicerender-0.2.8/.ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0007.md +28 -0
  4. voicerender-0.2.8/.ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0008.md +29 -0
  5. voicerender-0.2.8/.ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0009.md +32 -0
  6. voicerender-0.2.8/.ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0010.md +33 -0
  7. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/data/ledgers/main/releases/0.2.1/release.md +2 -2
  8. voicerender-0.2.8/.ledger/releaseledger/data/ledgers/main/releases/0.2.6/audit/commit-audit.yaml +220 -0
  9. voicerender-0.2.8/.ledger/releaseledger/data/ledgers/main/releases/0.2.6/entries/entry-0001.md +37 -0
  10. voicerender-0.2.8/.ledger/releaseledger/data/ledgers/main/releases/0.2.6/entries/entry-0002.md +40 -0
  11. voicerender-0.2.8/.ledger/releaseledger/data/ledgers/main/releases/0.2.6/entries/entry-0003.md +33 -0
  12. voicerender-0.2.8/.ledger/releaseledger/data/ledgers/main/releases/0.2.6/entries/entry-0004.md +37 -0
  13. voicerender-0.2.8/.ledger/releaseledger/data/ledgers/main/releases/0.2.6/entries/entry-0005.md +29 -0
  14. voicerender-0.2.8/.ledger/releaseledger/data/ledgers/main/releases/0.2.6/entries/entry-0006.md +35 -0
  15. voicerender-0.2.8/.ledger/releaseledger/data/ledgers/main/releases/0.2.6/release.md +27 -0
  16. voicerender-0.2.8/.ledger/releaseledger/data/ledgers/main/releases/0.2.7/audit/commit-audit.yaml +579 -0
  17. voicerender-0.2.8/.ledger/releaseledger/data/ledgers/main/releases/0.2.7/entries/entry-0001.md +39 -0
  18. voicerender-0.2.8/.ledger/releaseledger/data/ledgers/main/releases/0.2.7/entries/entry-0002.md +60 -0
  19. voicerender-0.2.8/.ledger/releaseledger/data/ledgers/main/releases/0.2.7/entries/entry-0003.md +50 -0
  20. voicerender-0.2.8/.ledger/releaseledger/data/ledgers/main/releases/0.2.7/entries/entry-0004.md +66 -0
  21. voicerender-0.2.8/.ledger/releaseledger/data/ledgers/main/releases/0.2.7/release.md +27 -0
  22. voicerender-0.2.8/.ledger/releaseledger/data/ledgers/main/releases/v0.2.8/audit/commit-audit.yaml +699 -0
  23. voicerender-0.2.8/.ledger/releaseledger/data/ledgers/main/releases/v0.2.8/entries/entry-0001.md +28 -0
  24. voicerender-0.2.8/.ledger/releaseledger/data/ledgers/main/releases/v0.2.8/entries/entry-0002.md +35 -0
  25. voicerender-0.2.8/.ledger/releaseledger/data/ledgers/main/releases/v0.2.8/entries/entry-0003.md +30 -0
  26. voicerender-0.2.8/.ledger/releaseledger/data/ledgers/main/releases/v0.2.8/entries/entry-0004.md +30 -0
  27. voicerender-0.2.8/.ledger/releaseledger/data/ledgers/main/releases/v0.2.8/entries/entry-0005.md +32 -0
  28. voicerender-0.2.8/.ledger/releaseledger/data/ledgers/main/releases/v0.2.8/entries/entry-0006.md +32 -0
  29. voicerender-0.2.8/.ledger/releaseledger/data/ledgers/main/releases/v0.2.8/entries/entry-0007.md +32 -0
  30. voicerender-0.2.8/.ledger/releaseledger/data/ledgers/main/releases/v0.2.8/entries/entry-0008.md +36 -0
  31. voicerender-0.2.8/.ledger/releaseledger/data/ledgers/main/releases/v0.2.8/entries/entry-0009.md +30 -0
  32. voicerender-0.2.8/.ledger/releaseledger/data/ledgers/main/releases/v0.2.8/entries/entry-0010.md +31 -0
  33. voicerender-0.2.8/.ledger/releaseledger/data/ledgers/main/releases/v0.2.8/entries/entry-0011.md +29 -0
  34. voicerender-0.2.8/.ledger/releaseledger/data/ledgers/main/releases/v0.2.8/release.md +27 -0
  35. voicerender-0.2.8/.ledger/releaseledger/work/0.2.6/audit-decisions.yaml +104 -0
  36. voicerender-0.2.8/.ledger/releaseledger/work/0.2.6/audit.yaml +146 -0
  37. voicerender-0.2.8/.ledger/releaseledger/work/0.2.6/entries.yaml +126 -0
  38. voicerender-0.2.8/.ledger/releaseledger/work/0.2.6/evidence/4ab4750.patch +362 -0
  39. voicerender-0.2.8/.ledger/releaseledger/work/0.2.6/evidence/5d929c9.patch +254 -0
  40. voicerender-0.2.8/.ledger/releaseledger/work/0.2.6/evidence/9a323b2.patch +1822 -0
  41. voicerender-0.2.8/.ledger/releaseledger/work/0.2.6/evidence/ade44bc.patch +1494 -0
  42. voicerender-0.2.8/.ledger/releaseledger/work/0.2.6/evidence/bc7551a.patch +53 -0
  43. voicerender-0.2.8/.ledger/releaseledger/work/0.2.6/evidence/fdfe8ca.patch +969 -0
  44. voicerender-0.2.8/.ledger/releaseledger/work/0.2.6/evidence/manifest.json +120 -0
  45. voicerender-0.2.8/.ledger/releaseledger/work/0.2.6/range.json +13 -0
  46. voicerender-0.2.8/.ledger/releaseledger/work/0.2.7/audit-decisions.yaml +294 -0
  47. voicerender-0.2.8/.ledger/releaseledger/work/0.2.7/audit.yaml +399 -0
  48. voicerender-0.2.8/.ledger/releaseledger/work/0.2.7/entries.yaml +162 -0
  49. voicerender-0.2.8/.ledger/releaseledger/work/0.2.7/evidence/009bc2f.patch +73 -0
  50. voicerender-0.2.8/.ledger/releaseledger/work/0.2.7/evidence/01ebf18.patch +74 -0
  51. voicerender-0.2.8/.ledger/releaseledger/work/0.2.7/evidence/1132f5f.patch +20 -0
  52. voicerender-0.2.8/.ledger/releaseledger/work/0.2.7/evidence/1ba5920.patch +269 -0
  53. voicerender-0.2.8/.ledger/releaseledger/work/0.2.7/evidence/4b52e71.patch +134 -0
  54. voicerender-0.2.8/.ledger/releaseledger/work/0.2.7/evidence/636402c.patch +19 -0
  55. voicerender-0.2.8/.ledger/releaseledger/work/0.2.7/evidence/6a21eef.patch +20 -0
  56. voicerender-0.2.8/.ledger/releaseledger/work/0.2.7/evidence/7f6f053.patch +1911 -0
  57. voicerender-0.2.8/.ledger/releaseledger/work/0.2.7/evidence/88a2bde.patch +666 -0
  58. voicerender-0.2.8/.ledger/releaseledger/work/0.2.7/evidence/8f7b701.patch +71 -0
  59. voicerender-0.2.8/.ledger/releaseledger/work/0.2.7/evidence/9fa235e.patch +1908 -0
  60. voicerender-0.2.8/.ledger/releaseledger/work/0.2.7/evidence/a8df404.patch +2456 -0
  61. voicerender-0.2.8/.ledger/releaseledger/work/0.2.7/evidence/b089c79.patch +93 -0
  62. voicerender-0.2.8/.ledger/releaseledger/work/0.2.7/evidence/c384d1e.patch +3053 -0
  63. voicerender-0.2.8/.ledger/releaseledger/work/0.2.7/evidence/d124fff.patch +77 -0
  64. voicerender-0.2.8/.ledger/releaseledger/work/0.2.7/evidence/e5e6839.patch +347 -0
  65. voicerender-0.2.8/.ledger/releaseledger/work/0.2.7/evidence/ed53140.patch +54 -0
  66. voicerender-0.2.8/.ledger/releaseledger/work/0.2.7/evidence/f74ce00.patch +63 -0
  67. voicerender-0.2.8/.ledger/releaseledger/work/0.2.7/evidence/manifest.json +305 -0
  68. voicerender-0.2.8/.ledger/releaseledger/work/0.2.7/range.json +13 -0
  69. voicerender-0.2.8/.ledger/releaseledger/work/v0.2.8/audit-decisions.yaml +259 -0
  70. voicerender-0.2.8/.ledger/releaseledger/work/v0.2.8/audit.yaml +540 -0
  71. voicerender-0.2.8/.ledger/releaseledger/work/v0.2.8/entries.yaml +156 -0
  72. voicerender-0.2.8/.ledger/releaseledger/work/v0.2.8/evidence/01e1ff8.patch +95 -0
  73. voicerender-0.2.8/.ledger/releaseledger/work/v0.2.8/evidence/05451ee.patch +164 -0
  74. voicerender-0.2.8/.ledger/releaseledger/work/v0.2.8/evidence/0eedac5.patch +381 -0
  75. voicerender-0.2.8/.ledger/releaseledger/work/v0.2.8/evidence/1eac844.patch +25 -0
  76. voicerender-0.2.8/.ledger/releaseledger/work/v0.2.8/evidence/3bad4f0.patch +150 -0
  77. voicerender-0.2.8/.ledger/releaseledger/work/v0.2.8/evidence/4baf17e.patch +289 -0
  78. voicerender-0.2.8/.ledger/releaseledger/work/v0.2.8/evidence/5089184.patch +331 -0
  79. voicerender-0.2.8/.ledger/releaseledger/work/v0.2.8/evidence/58f64e9.patch +1040 -0
  80. voicerender-0.2.8/.ledger/releaseledger/work/v0.2.8/evidence/5b4f1f2.patch +346 -0
  81. voicerender-0.2.8/.ledger/releaseledger/work/v0.2.8/evidence/72676e0.patch +1135 -0
  82. voicerender-0.2.8/.ledger/releaseledger/work/v0.2.8/evidence/7875994.patch +985 -0
  83. voicerender-0.2.8/.ledger/releaseledger/work/v0.2.8/evidence/a37bba8.patch +588 -0
  84. voicerender-0.2.8/.ledger/releaseledger/work/v0.2.8/evidence/a47820e.patch +16 -0
  85. voicerender-0.2.8/.ledger/releaseledger/work/v0.2.8/evidence/a48ba9b.patch +15 -0
  86. voicerender-0.2.8/.ledger/releaseledger/work/v0.2.8/evidence/a561679.patch +1912 -0
  87. voicerender-0.2.8/.ledger/releaseledger/work/v0.2.8/evidence/a61d829.patch +1609 -0
  88. voicerender-0.2.8/.ledger/releaseledger/work/v0.2.8/evidence/a929bbd.patch +764 -0
  89. voicerender-0.2.8/.ledger/releaseledger/work/v0.2.8/evidence/db46ed5.patch +2032 -0
  90. voicerender-0.2.8/.ledger/releaseledger/work/v0.2.8/evidence/e1011f0.patch +30 -0
  91. voicerender-0.2.8/.ledger/releaseledger/work/v0.2.8/evidence/f41ea26.patch +89 -0
  92. voicerender-0.2.8/.ledger/releaseledger/work/v0.2.8/evidence/f9e1660.patch +1115 -0
  93. voicerender-0.2.8/.ledger/releaseledger/work/v0.2.8/evidence/facf152.patch +320 -0
  94. voicerender-0.2.8/.ledger/releaseledger/work/v0.2.8/evidence/fd8b266.patch +470 -0
  95. voicerender-0.2.8/.ledger/releaseledger/work/v0.2.8/evidence/fecfbff.patch +25 -0
  96. voicerender-0.2.8/.ledger/releaseledger/work/v0.2.8/evidence/manifest.json +433 -0
  97. voicerender-0.2.8/.ledger/releaseledger/work/v0.2.8/range.json +13 -0
  98. {voicerender-0.2.5/voicerender.egg-info → voicerender-0.2.8}/PKG-INFO +213 -21
  99. {voicerender-0.2.5 → voicerender-0.2.8}/README.md +206 -16
  100. voicerender-0.2.8/docs/changelog.md +150 -0
  101. voicerender-0.2.8/docs/index.md +84 -0
  102. {voicerender-0.2.5 → voicerender-0.2.8}/docs/renderprofile.md +122 -10
  103. {voicerender-0.2.5 → voicerender-0.2.8}/examples/README.md +30 -9
  104. {voicerender-0.2.5 → voicerender-0.2.8}/pyproject.toml +7 -6
  105. voicerender-0.2.8/tests/test_audio_boundaries.py +107 -0
  106. voicerender-0.2.8/tests/test_bundle_batch_render.py +741 -0
  107. {voicerender-0.2.5 → voicerender-0.2.8}/tests/test_bundle_contract.py +34 -0
  108. voicerender-0.2.8/tests/test_bundle_inspect.py +424 -0
  109. {voicerender-0.2.5 → voicerender-0.2.8}/tests/test_bundle_render.py +9 -0
  110. voicerender-0.2.8/tests/test_bundle_roles.py +778 -0
  111. {voicerender-0.2.5 → voicerender-0.2.8}/tests/test_capacity.py +90 -0
  112. {voicerender-0.2.5 → voicerender-0.2.8}/tests/test_chatterboxsynth_engine.py +156 -7
  113. {voicerender-0.2.5 → voicerender-0.2.8}/tests/test_cli.py +479 -4
  114. {voicerender-0.2.5 → voicerender-0.2.8}/tests/test_control_surface_exports.py +1 -0
  115. voicerender-0.2.8/tests/test_document_contract.py +690 -0
  116. {voicerender-0.2.5 → voicerender-0.2.8}/tests/test_engine_contracts.py +29 -0
  117. {voicerender-0.2.5 → voicerender-0.2.8}/tests/test_engine_options.py +15 -0
  118. {voicerender-0.2.5 → voicerender-0.2.8}/tests/test_engine_registry.py +83 -17
  119. voicerender-0.2.8/tests/test_error_diagnostics.py +142 -0
  120. voicerender-0.2.8/tests/test_jsonutil.py +88 -0
  121. {voicerender-0.2.5 → voicerender-0.2.8}/tests/test_kittensynth_engine.py +125 -0
  122. voicerender-0.2.8/tests/test_kittensynth_pronunciation.py +619 -0
  123. {voicerender-0.2.5 → voicerender-0.2.8}/tests/test_kokoro_reference.py +697 -17
  124. voicerender-0.2.8/tests/test_lexicons_cli.py +450 -0
  125. {voicerender-0.2.5 → voicerender-0.2.8}/tests/test_managed_voices.py +51 -6
  126. voicerender-0.2.8/tests/test_model_management_api.py +383 -0
  127. voicerender-0.2.8/tests/test_model_management_cli.py +228 -0
  128. {voicerender-0.2.5 → voicerender-0.2.8}/tests/test_pocketsynth_managed.py +254 -4
  129. {voicerender-0.2.5 → voicerender-0.2.8}/tests/test_preflight.py +396 -8
  130. voicerender-0.2.8/tests/test_profile_reidentify.py +102 -0
  131. {voicerender-0.2.5 → voicerender-0.2.8}/tests/test_profile_roles.py +187 -2
  132. {voicerender-0.2.5 → voicerender-0.2.8}/tests/test_profile_roles_cli.py +226 -14
  133. {voicerender-0.2.5 → voicerender-0.2.8}/tests/test_qwen3synth_engine.py +13 -0
  134. {voicerender-0.2.5 → voicerender-0.2.8}/tests/test_render_book.py +230 -24
  135. voicerender-0.2.8/tests/test_render_lock.py +527 -0
  136. {voicerender-0.2.5 → voicerender-0.2.8}/tests/test_renderer.py +76 -1
  137. {voicerender-0.2.5 → voicerender-0.2.8}/tests/test_renderplan_input.py +189 -1
  138. {voicerender-0.2.5 → voicerender-0.2.8}/tests/test_renderplan_render.py +380 -3
  139. {voicerender-0.2.5 → voicerender-0.2.8}/tests/test_renderprofile.py +64 -3
  140. voicerender-0.2.8/tests/test_runtime.py +294 -0
  141. voicerender-0.2.8/tests/test_runtime_cli.py +159 -0
  142. voicerender-0.2.8/tests/test_session_pool.py +112 -0
  143. voicerender-0.2.8/tests/test_sopro_release_compatibility.py +57 -0
  144. {voicerender-0.2.5 → voicerender-0.2.8}/tests/test_soprosynth_engine.py +405 -14
  145. voicerender-0.2.8/tests/test_variants.py +491 -0
  146. {voicerender-0.2.5 → voicerender-0.2.8}/tests/test_voice_clone.py +20 -83
  147. {voicerender-0.2.5 → voicerender-0.2.8}/tests/test_voice_descriptors.py +16 -0
  148. {voicerender-0.2.5 → voicerender-0.2.8}/tests/test_voice_source_codec.py +35 -0
  149. {voicerender-0.2.5 → voicerender-0.2.8}/tests/test_voice_sources.py +59 -0
  150. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender/__init__.py +73 -0
  151. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender/_version.py +3 -3
  152. voicerender-0.2.8/voicerender/audio_boundaries.py +93 -0
  153. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender/book.py +93 -7
  154. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender/book_layout.py +8 -4
  155. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender/bundle.py +5 -0
  156. voicerender-0.2.8/voicerender/bundle_batch.py +500 -0
  157. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender/bundle_contract.py +8 -4
  158. voicerender-0.2.8/voicerender/bundle_inspect.py +350 -0
  159. voicerender-0.2.8/voicerender/bundle_roles.py +901 -0
  160. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender/capacity.py +22 -24
  161. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender/cli.py +1489 -88
  162. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender/document.py +69 -9
  163. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender/document_contract.py +12 -5
  164. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender/engines/api_probe.py +12 -1
  165. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender/engines/base.py +45 -0
  166. voicerender-0.2.8/voicerender/engines/chatterbox_assets.py +223 -0
  167. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender/engines/chatterboxsynth.py +72 -4
  168. voicerender-0.2.8/voicerender/engines/kittensynth.py +1517 -0
  169. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender/engines/kokoro.py +693 -16
  170. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender/engines/pipersynth.py +6 -3
  171. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender/engines/pocketsynth.py +19 -3
  172. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender/engines/qwen3synth.py +4 -1
  173. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender/engines/registry.py +21 -4
  174. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender/engines/soprosynth.py +138 -34
  175. voicerender-0.2.8/voicerender/error_diagnostics.py +298 -0
  176. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender/errors.py +30 -1
  177. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender/events.py +7 -0
  178. voicerender-0.2.8/voicerender/jsonutil.py +67 -0
  179. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender/lexicons.py +6 -0
  180. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender/managed_voices.py +41 -11
  181. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender/models_api.py +41 -11
  182. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender/preflight.py +130 -31
  183. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender/profile_roles.py +2 -0
  184. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender/render.py +78 -24
  185. voicerender-0.2.8/voicerender/render_lock.py +589 -0
  186. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender/renderplan_input.py +102 -12
  187. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender/renderplan_render.py +283 -86
  188. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender/renderprofile.py +230 -18
  189. voicerender-0.2.8/voicerender/role_bindings.py +172 -0
  190. voicerender-0.2.8/voicerender/runtime.py +139 -0
  191. voicerender-0.2.8/voicerender/session_pool.py +224 -0
  192. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender/storage.py +18 -2
  193. voicerender-0.2.8/voicerender/variants.py +869 -0
  194. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender/voice_clone.py +3 -76
  195. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender/voice_source_codec.py +1 -0
  196. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender/voice_sources.py +106 -10
  197. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender/voices_api.py +30 -7
  198. {voicerender-0.2.5 → voicerender-0.2.8/voicerender.egg-info}/PKG-INFO +213 -21
  199. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender.egg-info/SOURCES.txt +121 -0
  200. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender.egg-info/requires.txt +6 -4
  201. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender.egg-info/scm_file_list.json +121 -0
  202. voicerender-0.2.8/voicerender.egg-info/scm_version.json +8 -0
  203. voicerender-0.2.5/docs/changelog.md +0 -92
  204. voicerender-0.2.5/docs/index.md +0 -55
  205. voicerender-0.2.5/tests/test_document_contract.py +0 -320
  206. voicerender-0.2.5/tests/test_model_management_api.py +0 -127
  207. voicerender-0.2.5/tests/test_model_management_cli.py +0 -87
  208. voicerender-0.2.5/voicerender/engines/kittensynth.py +0 -720
  209. voicerender-0.2.5/voicerender.egg-info/scm_version.json +0 -8
  210. {voicerender-0.2.5 → voicerender-0.2.8}/.codecrate.toml +0 -0
  211. {voicerender-0.2.5 → voicerender-0.2.8}/.github/workflows/codecov.yml +0 -0
  212. {voicerender-0.2.5 → voicerender-0.2.8}/.github/workflows/pre-commit.yml +0 -0
  213. {voicerender-0.2.5 → voicerender-0.2.8}/.github/workflows/python-publish.yml +0 -0
  214. {voicerender-0.2.5 → voicerender-0.2.8}/.gitignore +0 -0
  215. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/ledger.toml +0 -0
  216. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/.ledger-project.toml +0 -0
  217. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/config.toml +0 -0
  218. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/data/.ledger-project.toml +0 -0
  219. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/data/ledgers/main/releases/0.1.1/audit/commit-audit.yaml +0 -0
  220. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/data/ledgers/main/releases/0.1.1/entries/entry-0001.md +0 -0
  221. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/data/ledgers/main/releases/0.1.1/release.md +0 -0
  222. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/data/ledgers/main/releases/0.2.0/audit/commit-audit.yaml +0 -0
  223. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/data/ledgers/main/releases/0.2.0/entries/entry-0001.md +0 -0
  224. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/data/ledgers/main/releases/0.2.0/entries/entry-0002.md +0 -0
  225. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/data/ledgers/main/releases/0.2.0/entries/entry-0003.md +0 -0
  226. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/data/ledgers/main/releases/0.2.0/entries/entry-0004.md +0 -0
  227. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/data/ledgers/main/releases/0.2.0/entries/entry-0005.md +0 -0
  228. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/data/ledgers/main/releases/0.2.0/entries/entry-0006.md +0 -0
  229. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/data/ledgers/main/releases/0.2.0/entries/entry-0007.md +0 -0
  230. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/data/ledgers/main/releases/0.2.0/release.md +0 -0
  231. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/data/ledgers/main/releases/0.2.1/audit/commit-audit.yaml +0 -0
  232. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0001.md +0 -0
  233. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0002.md +0 -0
  234. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0003.md +0 -0
  235. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0004.md +0 -0
  236. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0005.md +0 -0
  237. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0006.md +0 -0
  238. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/data/ledgers/main/releases/0.2.2/audit/commit-audit.yaml +0 -0
  239. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/data/ledgers/main/releases/0.2.2/entries/entry-0001.md +0 -0
  240. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/data/ledgers/main/releases/0.2.2/entries/entry-0002.md +0 -0
  241. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/data/ledgers/main/releases/0.2.2/entries/entry-0003.md +0 -0
  242. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/data/ledgers/main/releases/0.2.2/entries/entry-0004.md +0 -0
  243. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/data/ledgers/main/releases/0.2.2/release.md +0 -0
  244. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/data/ledgers/main/releases/0.2.3/audit/commit-audit.yaml +0 -0
  245. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/data/ledgers/main/releases/0.2.3/entries/entry-0001.md +0 -0
  246. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/data/ledgers/main/releases/0.2.3/entries/entry-0002.md +0 -0
  247. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/data/ledgers/main/releases/0.2.3/release.md +0 -0
  248. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/data/ledgers/main/releases/0.2.4/audit/commit-audit.yaml +0 -0
  249. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/data/ledgers/main/releases/0.2.4/entries/entry-0001.md +0 -0
  250. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/data/ledgers/main/releases/0.2.4/entries/entry-0002.md +0 -0
  251. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/data/ledgers/main/releases/0.2.4/entries/entry-0003.md +0 -0
  252. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/data/ledgers/main/releases/0.2.4/entries/entry-0004.md +0 -0
  253. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/data/ledgers/main/releases/0.2.4/entries/entry-0005.md +0 -0
  254. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/data/ledgers/main/releases/0.2.4/release.md +0 -0
  255. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/data/ledgers/main/releases/0.2.5/audit/commit-audit.yaml +0 -0
  256. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/data/ledgers/main/releases/0.2.5/entries/entry-0001.md +0 -0
  257. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/data/ledgers/main/releases/0.2.5/release.md +0 -0
  258. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/data/ledgers/main/releases/v0.1.0/audit/commit-audit.yaml +0 -0
  259. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/data/ledgers/main/releases/v0.1.0/entries/entry-0001.md +0 -0
  260. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/data/ledgers/main/releases/v0.1.0/entries/entry-0002.md +0 -0
  261. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/data/ledgers/main/releases/v0.1.0/entries/entry-0003.md +0 -0
  262. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/data/ledgers/main/releases/v0.1.0/entries/entry-0004.md +0 -0
  263. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/data/ledgers/main/releases/v0.1.0/entries/entry-0005.md +0 -0
  264. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/data/ledgers/main/releases/v0.1.0/release.md +0 -0
  265. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.1.1/audit-decisions.yaml +0 -0
  266. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.1.1/entries.yaml +0 -0
  267. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.0/audit-decisions.yaml +0 -0
  268. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.0/audit.yaml +0 -0
  269. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.0/entries.yaml +0 -0
  270. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.0/evidence/19f5b06.patch +0 -0
  271. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.0/evidence/245ca9f.patch +0 -0
  272. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.0/evidence/42a90e3.patch +0 -0
  273. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.0/evidence/480cbea.patch +0 -0
  274. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.0/evidence/4eb3c28.patch +0 -0
  275. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.0/evidence/50f298e.patch +0 -0
  276. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.0/evidence/56ae327.patch +0 -0
  277. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.0/evidence/57f1e24.patch +0 -0
  278. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.0/evidence/6dae2b6.patch +0 -0
  279. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.0/evidence/84f29db.patch +0 -0
  280. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.0/evidence/a390661.patch +0 -0
  281. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.0/evidence/a431dfa.patch +0 -0
  282. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.0/evidence/c2be7b3.patch +0 -0
  283. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.0/evidence/da15247.patch +0 -0
  284. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.0/evidence/ede34ea.patch +0 -0
  285. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.0/evidence/manifest.json +0 -0
  286. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.0/range.json +0 -0
  287. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.1/audit-decisions.yaml +0 -0
  288. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.1/audit.yaml +0 -0
  289. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.1/entries.yaml +0 -0
  290. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.1/evidence/3342e15.patch +0 -0
  291. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.1/evidence/3c82349.patch +0 -0
  292. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.1/evidence/7f466cc.patch +0 -0
  293. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.1/evidence/84f629e.patch +0 -0
  294. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.1/evidence/b7e1917.patch +0 -0
  295. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.1/evidence/manifest.json +0 -0
  296. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.1/range.json +0 -0
  297. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.2/audit-decisions.yaml +0 -0
  298. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.2/audit.yaml +0 -0
  299. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.2/entries.yaml +0 -0
  300. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.2/evidence/6510540.patch +0 -0
  301. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.2/evidence/8861791.patch +0 -0
  302. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.2/evidence/f093d36.patch +0 -0
  303. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.2/evidence/fdb106d.patch +0 -0
  304. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.2/evidence/manifest.json +0 -0
  305. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.2/range.json +0 -0
  306. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.3/audit-decisions.yaml +0 -0
  307. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.3/audit.yaml +0 -0
  308. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.3/entries.yaml +0 -0
  309. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.3/evidence/67e4d8e.patch +0 -0
  310. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.3/evidence/b17f1a9.patch +0 -0
  311. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.3/evidence/manifest.json +0 -0
  312. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.3/range.json +0 -0
  313. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.4/audit-decisions.yaml +0 -0
  314. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.4/audit.yaml +0 -0
  315. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.4/entries.yaml +0 -0
  316. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.4/evidence/304b84d.patch +0 -0
  317. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.4/evidence/3d486d5.patch +0 -0
  318. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.4/evidence/5ffdff4.patch +0 -0
  319. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.4/evidence/ccd30d2.patch +0 -0
  320. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.4/evidence/efe4f37.patch +0 -0
  321. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.4/evidence/manifest.json +0 -0
  322. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.4/range.json +0 -0
  323. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.5/audit-decisions.yaml +0 -0
  324. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.5/audit.yaml +0 -0
  325. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.5/entries.yaml +0 -0
  326. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.5/evidence/0ab4075.patch +0 -0
  327. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.5/evidence/manifest.json +0 -0
  328. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/0.2.5/range.json +0 -0
  329. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/v0.1.0/audit-decisions.yaml +0 -0
  330. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/v0.1.0/entries.yaml +0 -0
  331. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/v0.1.0/evidence/264eb9b.patch +0 -0
  332. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/v0.1.0/evidence/774f6f2.patch +0 -0
  333. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/v0.1.0/evidence/9e71e84.patch +0 -0
  334. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/v0.1.0/evidence/c4a2872.patch +0 -0
  335. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/v0.1.0/evidence/fb7faaf.patch +0 -0
  336. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/work/v0.1.0/evidence/manifest.json +0 -0
  337. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/releaseledger/write.lock +0 -0
  338. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/taskledger/.ledger-project.toml +0 -0
  339. {voicerender-0.2.5 → voicerender-0.2.8}/.ledger/taskledger/config.toml +0 -0
  340. {voicerender-0.2.5 → voicerender-0.2.8}/.pre-commit-config.yaml +0 -0
  341. {voicerender-0.2.5 → voicerender-0.2.8}/LICENSE +0 -0
  342. {voicerender-0.2.5 → voicerender-0.2.8}/MANIFEST.in +0 -0
  343. {voicerender-0.2.5 → voicerender-0.2.8}/docs/Makefile +0 -0
  344. {voicerender-0.2.5 → voicerender-0.2.8}/docs/conf.py +0 -0
  345. {voicerender-0.2.5 → voicerender-0.2.8}/docs/make.bat +0 -0
  346. {voicerender-0.2.5 → voicerender-0.2.8}/docs/make.py +0 -0
  347. {voicerender-0.2.5 → voicerender-0.2.8}/docs/requirements.txt +0 -0
  348. {voicerender-0.2.5 → voicerender-0.2.8}/examples/plans/chapter.renderplan.toml +0 -0
  349. {voicerender-0.2.5 → voicerender-0.2.8}/examples/plans/chapter.voiceplan.toml +0 -0
  350. {voicerender-0.2.5 → voicerender-0.2.8}/examples/voices/narration.renderprofile.toml +0 -0
  351. {voicerender-0.2.5 → voicerender-0.2.8}/examples/voices/piper.toml +0 -0
  352. {voicerender-0.2.5 → voicerender-0.2.8}/examples/voices/pocket-reference.toml +0 -0
  353. {voicerender-0.2.5 → voicerender-0.2.8}/setup.cfg +0 -0
  354. {voicerender-0.2.5 → voicerender-0.2.8}/tests/test_backends.py +0 -0
  355. {voicerender-0.2.5 → voicerender-0.2.8}/tests/test_inflectsynth_engine.py +0 -0
  356. {voicerender-0.2.5 → voicerender-0.2.8}/tests/test_package_metadata.py +0 -0
  357. {voicerender-0.2.5 → voicerender-0.2.8}/tests/test_progress.py +0 -0
  358. {voicerender-0.2.5 → voicerender-0.2.8}/tests/test_qwen3_voice_design.py +0 -0
  359. {voicerender-0.2.5 → voicerender-0.2.8}/tests/test_storage.py +0 -0
  360. {voicerender-0.2.5 → voicerender-0.2.8}/tests/test_voice_clone_cli.py +0 -0
  361. {voicerender-0.2.5 → voicerender-0.2.8}/tests/test_voice_source_cli.py +0 -0
  362. {voicerender-0.2.5 → voicerender-0.2.8}/tests/wheel_smoke.py +0 -0
  363. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender/__main__.py +0 -0
  364. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender/book_contract.py +0 -0
  365. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender/engines/__init__.py +0 -0
  366. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender/engines/assets.py +0 -0
  367. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender/engines/catalog.py +0 -0
  368. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender/engines/inflectsynth.py +0 -0
  369. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender/engines/metadata.py +0 -0
  370. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender/engines/options.py +0 -0
  371. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender/engines/piper.py +0 -0
  372. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender/engines/pocket.py +0 -0
  373. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender/engines/profiles.py +0 -0
  374. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender/engines/selection.py +0 -0
  375. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender/engines/supertonicsynth.py +0 -0
  376. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender/estimates.py +0 -0
  377. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender/models.py +0 -0
  378. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender/progress.py +0 -0
  379. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender/py.typed +0 -0
  380. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender/voice_design.py +0 -0
  381. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender.egg-info/dependency_links.txt +0 -0
  382. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender.egg-info/entry_points.txt +0 -0
  383. {voicerender-0.2.5 → voicerender-0.2.8}/voicerender.egg-info/top_level.txt +0 -0
@@ -9,6 +9,7 @@ jobs:
9
9
  test:
10
10
  runs-on: ${{ matrix.os }}
11
11
  strategy:
12
+ fail-fast: false
12
13
  matrix:
13
14
  os: [ubuntu-latest, windows-latest, macos-latest]
14
15
  python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
@@ -24,7 +25,7 @@ jobs:
24
25
  python -m pip install -e ".[dev]"
25
26
  python -m compileall -q voicerender tests
26
27
  - name: Run tests
27
- run: python -m pytest -q
28
+ run: python -m pytest -q --full-trace
28
29
 
29
30
  quality:
30
31
  runs-on: ubuntu-latest
@@ -64,6 +65,26 @@ jobs:
64
65
  - name: Run API and adapter contracts without model downloads
65
66
  run: python -m pytest -q tests/test_engine_registry.py tests/test_backends.py
66
67
 
68
+ sopro-contract:
69
+ runs-on: ubuntu-latest
70
+ steps:
71
+ - uses: actions/checkout@v4
72
+ - name: Set up Python
73
+ uses: actions/setup-python@v5
74
+ with:
75
+ python-version: "3.12"
76
+ - name: Install Sopro extra and test tools
77
+ run: |
78
+ python -m pip install --upgrade "pip<26.2"
79
+ python -m pip install -e ".[sopro]" pytest
80
+ - name: Run Sopro contracts without model downloads
81
+ run: >
82
+ python -m pytest -q
83
+ tests/test_soprosynth_engine.py
84
+ tests/test_model_management_api.py
85
+ tests/test_model_management_cli.py
86
+ tests/test_sopro_release_compatibility.py
87
+
67
88
  exact-released-set:
68
89
  runs-on: ubuntu-latest
69
90
  steps:
@@ -76,7 +97,7 @@ jobs:
76
97
  run: |
77
98
  python -m pip install --upgrade "pip<26.2" pytest
78
99
  python -m pip install -e . \
79
- "pykokoro==0.10.5" \
100
+ "pykokoro==0.10.8" \
80
101
  "pipersynth==0.2.5" \
81
102
  "pocketsynth[cpu]==0.2.5" \
82
103
  "kittensynth[cpu]==0.1.4" \
@@ -84,7 +105,7 @@ jobs:
84
105
  "supertonicsynth[cpu]==0.1.2" \
85
106
  "inflectsynth[cpu]==0.1.1"
86
107
  - name: Run released-set compatibility contracts
87
- run: python -m pytest -q tests/test_engine_registry.py tests/test_backends.py
108
+ run: python -m pytest -q tests/test_engine_registry.py tests/test_backends.py tests/test_soprosynth_engine.py tests/test_sopro_release_compatibility.py
88
109
 
89
110
  lower-bounds:
90
111
  runs-on: ubuntu-latest
@@ -99,12 +120,14 @@ jobs:
99
120
  python -m pip install --upgrade "pip<26.2"
100
121
  python -m pip install \
101
122
  "pytest==8.0.0" \
102
- "numpy==1.23.0" \
123
+ "numpy==1.24.0" \
124
+ "audiosig==0.1.8" \
103
125
  "soundfile==0.12.1" \
104
126
  "tomlkit==0.13.3" \
105
127
  "tomli==2.0.1" \
106
- "renderplan==0.1.2" \
107
- "voicefolio==0.1.1"
128
+ "renderplan==0.2.1" \
129
+ "voicefolio @ git+https://github.com/buchwandler/voicefolio.git@93bea04d210d509b59e8e616f1be1cf1d816a19d" \
130
+ "onnxvoice==0.2.14"
108
131
  python -m pip install --no-deps -e .
109
132
  - name: Run lower-bound tests
110
133
  run: python -m pytest -q
@@ -186,7 +209,7 @@ jobs:
186
209
  for value in metadata.get_all("Requires-Dist", [])
187
210
  if Requirement(value).name.lower() == "renderplan"
188
211
  )
189
- assert {">=0.1.2", "<0.2"} <= {
212
+ assert {">=0.2.1", "<0.3"} <= {
190
213
  str(specifier) for specifier in renderplan_requirement.specifier
191
214
  }
192
215
  base_requirements = set()
@@ -46,3 +46,25 @@
46
46
  {"data":{"updated_rows":1},"event":"audit.updated","event_id":"event-0046","record_revisions":{"commit_audit_sheet":2},"release_version":"0.2.5","schema_version":2}
47
47
  {"data":{"entry_ids":["entry-0001"],"synced_audit_rows":1},"event":"entry.batch_added","event_id":"event-0047","record_revisions":{"commit_audit_sheet":3,"entry:0.2.5/entry-0001":1,"release:0.2.5":3},"release_version":"0.2.5","schema_version":2}
48
48
  {"data":{"released_at":"2026-10-21"},"event":"release.finalized","event_id":"event-0048","record_revisions":{"release:0.2.5":4},"release_version":"0.2.5","schema_version":2}
49
+ {"data":{"kind":"added","status":"accepted"},"entry_id":"entry-0007","event":"entry.added","event_id":"event-0049","record_revisions":{"entry:0.2.1/entry-0007":1,"release:0.2.1":5},"release_version":"0.2.1","schema_version":2}
50
+ {"data":{"kind":"changed","status":"accepted"},"entry_id":"entry-0008","event":"entry.added","event_id":"event-0050","record_revisions":{"entry:0.2.1/entry-0008":1,"release:0.2.1":6},"release_version":"0.2.1","schema_version":2}
51
+ {"data":{"status":"planned"},"event":"release.created","event_id":"event-0051","record_revisions":{"release:0.2.6":1},"release_version":"0.2.6","schema_version":2}
52
+ {"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-0052","record_revisions":{"release:0.2.6":2},"release_version":"0.2.6","schema_version":2}
53
+ {"data":{"row_count":6},"event":"audit.created","event_id":"event-0053","record_revisions":{"commit_audit_sheet":1},"release_version":"0.2.6","schema_version":2}
54
+ {"data":{"updated_rows":6},"event":"audit.updated","event_id":"event-0054","record_revisions":{"commit_audit_sheet":2},"release_version":"0.2.6","schema_version":2}
55
+ {"data":{"entry_ids":["entry-0001","entry-0002","entry-0003","entry-0004","entry-0005","entry-0006"],"synced_audit_rows":6},"event":"entry.batch_added","event_id":"event-0055","record_revisions":{"commit_audit_sheet":3,"entry:0.2.6/entry-0001":1,"entry:0.2.6/entry-0002":1,"entry:0.2.6/entry-0003":1,"entry:0.2.6/entry-0004":1,"entry:0.2.6/entry-0005":1,"entry:0.2.6/entry-0006":1,"release:0.2.6":3},"release_version":"0.2.6","schema_version":2}
56
+ {"data":{"released_at":"2026-10-22"},"event":"release.finalized","event_id":"event-0056","record_revisions":{"release:0.2.6":4},"release_version":"0.2.6","schema_version":2}
57
+ {"data":{"kind":"added","status":"accepted"},"entry_id":"entry-0009","event":"entry.added","event_id":"event-0057","record_revisions":{"entry:0.2.1/entry-0009":1,"release:0.2.1":7},"release_version":"0.2.1","schema_version":2}
58
+ {"data":{"status":"planned"},"event":"release.created","event_id":"event-0058","record_revisions":{"release:0.2.7":1},"release_version":"0.2.7","schema_version":2}
59
+ {"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-0059","record_revisions":{"release:0.2.7":2},"release_version":"0.2.7","schema_version":2}
60
+ {"data":{"row_count":18},"event":"audit.created","event_id":"event-0060","record_revisions":{"commit_audit_sheet":1},"release_version":"0.2.7","schema_version":2}
61
+ {"data":{"updated_rows":18},"event":"audit.updated","event_id":"event-0061","record_revisions":{"commit_audit_sheet":2},"release_version":"0.2.7","schema_version":2}
62
+ {"data":{"entry_ids":["entry-0001","entry-0002","entry-0003","entry-0004"],"synced_audit_rows":16},"event":"entry.batch_added","event_id":"event-0062","record_revisions":{"commit_audit_sheet":3,"entry:0.2.7/entry-0001":1,"entry:0.2.7/entry-0002":1,"entry:0.2.7/entry-0003":1,"entry:0.2.7/entry-0004":1,"release:0.2.7":3},"release_version":"0.2.7","schema_version":2}
63
+ {"data":{"released_at":"2026-10-24"},"event":"release.finalized","event_id":"event-0063","record_revisions":{"release:0.2.7":4},"release_version":"0.2.7","schema_version":2}
64
+ {"data":{"kind":"fixed","status":"accepted"},"entry_id":"entry-0010","event":"entry.added","event_id":"event-0064","record_revisions":{"entry:0.2.1/entry-0010":1,"release:0.2.1":8},"release_version":"0.2.1","schema_version":2}
65
+ {"data":{"status":"planned"},"event":"release.created","event_id":"event-0065","record_revisions":{"release:v0.2.8":1},"release_version":"v0.2.8","schema_version":2}
66
+ {"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-0066","record_revisions":{"release:v0.2.8":2},"release_version":"v0.2.8","schema_version":2}
67
+ {"data":{"row_count":24},"event":"audit.created","event_id":"event-0067","record_revisions":{"commit_audit_sheet":1},"release_version":"v0.2.8","schema_version":2}
68
+ {"data":{"updated_rows":24},"event":"audit.updated","event_id":"event-0068","record_revisions":{"commit_audit_sheet":2},"release_version":"v0.2.8","schema_version":2}
69
+ {"data":{"entry_ids":["entry-0001","entry-0002","entry-0003","entry-0004","entry-0005","entry-0006","entry-0007","entry-0008","entry-0009","entry-0010","entry-0011"],"synced_audit_rows":19},"event":"entry.batch_added","event_id":"event-0069","record_revisions":{"commit_audit_sheet":3,"entry:v0.2.8/entry-0001":1,"entry:v0.2.8/entry-0002":1,"entry:v0.2.8/entry-0003":1,"entry:v0.2.8/entry-0004":1,"entry:v0.2.8/entry-0005":1,"entry:v0.2.8/entry-0006":1,"entry:v0.2.8/entry-0007":1,"entry:v0.2.8/entry-0008":1,"entry:v0.2.8/entry-0009":1,"entry:v0.2.8/entry-0010":1,"entry:v0.2.8/entry-0011":1,"release:v0.2.8":3},"release_version":"v0.2.8","schema_version":2}
70
+ {"data":{"released_at":"2026-10-31"},"event":"release.finalized","event_id":"event-0070","record_revisions":{"release:v0.2.8":4},"release_version":"v0.2.8","schema_version":2}
@@ -0,0 +1,28 @@
1
+ ---
2
+ schema_version: 2
3
+ object_type: release_entry
4
+ versioning:
5
+ schema_version: 1
6
+ revision: 1
7
+ entry_id: entry-0007
8
+ release_version: 0.2.1
9
+ kind: added
10
+ summary: Added read-only RenderPlan variant discovery for book and document bundles
11
+ status: accepted
12
+ audience: null
13
+ scopes: []
14
+ source_refs:
15
+ - tl:task-0028
16
+ paths:
17
+ - voicerender/variants.py
18
+ - voicerender/cli.py
19
+ - tests/test_variants.py
20
+ - tests/test_cli.py
21
+ issues: []
22
+ prs: []
23
+ sources: []
24
+ contributors: []
25
+ breaking: false
26
+ internal: false
27
+ order: 7
28
+ ---
@@ -0,0 +1,29 @@
1
+ ---
2
+ schema_version: 2
3
+ object_type: release_entry
4
+ versioning:
5
+ schema_version: 1
6
+ revision: 1
7
+ entry_id: entry-0008
8
+ release_version: 0.2.1
9
+ kind: changed
10
+ summary:
11
+ Normalized profile create destinations to the canonical .renderprofile.toml
12
+ suffix
13
+ status: accepted
14
+ audience: null
15
+ scopes: []
16
+ source_refs: []
17
+ paths:
18
+ - voicerender/cli.py
19
+ - tests/test_cli.py
20
+ - docs/renderprofile.md
21
+ issues: []
22
+ prs: []
23
+ sources:
24
+ - tl:task-0028
25
+ contributors: []
26
+ breaking: false
27
+ internal: false
28
+ order: 8
29
+ ---
@@ -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-0009
8
+ release_version: 0.2.1
9
+ kind: added
10
+ summary: Added read-only bundle role and cast-readiness inspection
11
+ status: accepted
12
+ audience: null
13
+ scopes: []
14
+ source_refs:
15
+ - tl:task-0032
16
+ paths:
17
+ - README.md
18
+ - docs/index.md
19
+ - docs/renderprofile.md
20
+ - voicerender/bundle_roles.py
21
+ - voicerender/bundle_inspect.py
22
+ - voicerender/cli.py
23
+ issues: []
24
+ prs: []
25
+ sources: []
26
+ contributors: []
27
+ breaking: false
28
+ internal: false
29
+ order: 9
30
+ ---
31
+
32
+ Introduced bundle roles for fresh source-role discovery and profile/variant cast checks, plus bundle inspect for integrated variant and render-state reporting.
@@ -0,0 +1,33 @@
1
+ ---
2
+ schema_version: 2
3
+ object_type: release_entry
4
+ versioning:
5
+ schema_version: 1
6
+ revision: 1
7
+ entry_id: entry-0010
8
+ release_version: 0.2.1
9
+ kind: fixed
10
+ summary: Fixed Sopro preflight capacity handling for authoritative and legacy measurements
11
+ status: accepted
12
+ audience: null
13
+ scopes: []
14
+ source_refs:
15
+ - tl:task-0041
16
+ paths:
17
+ - README.md
18
+ - .github/workflows/tests.yml
19
+ - tests/test_soprosynth_engine.py
20
+ - tests/test_sopro_release_compatibility.py
21
+ - voicerender/engines/api_probe.py
22
+ - voicerender/engines/soprosynth.py
23
+ - voicerender/cli.py
24
+ issues: []
25
+ prs: []
26
+ sources: []
27
+ contributors: []
28
+ breaking: false
29
+ internal: false
30
+ order: 10
31
+ ---
32
+
33
+ VoiceRender validates Sopro's exact model-token measurements, honors producer fit results without requiring a finite maximum, and enables a narrow compatibility bridge for SoproSynth 0.1.0/0.1.1 only when API v1 confirms engine-owned text boundaries. Other unknown-fit measurements remain rejected; character limits are never converted into token limits.
@@ -3,7 +3,7 @@ schema_version: 2
3
3
  object_type: release
4
4
  versioning:
5
5
  schema_version: 1
6
- revision: 4
6
+ revision: 8
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: 6
19
+ entry_count: 10
20
20
  artifact_count: 0
21
21
  git_base_ref: v0.2.0
22
22
  git_base_sha: a627d2d625bc3e6daae8e3bee58abb77231918ec
@@ -0,0 +1,220 @@
1
+ schema_version: 1
2
+ object_type: commit_audit_sheet
3
+ versioning:
4
+ schema_version: 1
5
+ revision: 3
6
+ release_version: 0.2.6
7
+ git_base_ref: v0.2.5
8
+ git_base_sha: 23b84f88fdf7bd101fbd8f2b0986004483a8d63b
9
+ git_head_ref: HEAD
10
+ git_head_sha: ade44bcbbcc223db372f6e7821d133b1777b1048
11
+ git_range: 23b84f88fdf7bd101fbd8f2b0986004483a8d63b..ade44bcbbcc223db372f6e7821d133b1777b1048
12
+ commit_count: 6
13
+ rows:
14
+ - sha: fdfe8ca0754a9cb3b3bfc9f792d6c2cf6e44af7d
15
+ source_ref: git:fdfe8ca0754a9cb3b3bfc9f792d6c2cf6e44af7d
16
+ short_sha: fdfe8ca
17
+ changed_paths:
18
+ - README.md
19
+ - docs/index.md
20
+ - pyproject.toml
21
+ - tests/test_runtime.py
22
+ - tests/test_runtime_cli.py
23
+ - voicerender/__init__.py
24
+ - voicerender/cli.py
25
+ - voicerender/errors.py
26
+ - voicerender/runtime.py
27
+ stats:
28
+ files_changed: 9
29
+ insertions: 809
30
+ deletions: 0
31
+ inspected: true
32
+ inspected_paths:
33
+ - README.md
34
+ - docs/index.md
35
+ - pyproject.toml
36
+ - tests/test_runtime.py
37
+ - tests/test_runtime_cli.py
38
+ - voicerender/__init__.py
39
+ - voicerender/cli.py
40
+ - voicerender/errors.py
41
+ - voicerender/runtime.py
42
+ observed_behavior:
43
+ Added public ONNX Runtime status inspection and saved provider-policy
44
+ controls for future compatible sessions, with package and CLI support.
45
+ public_impact: public
46
+ decision: accepted
47
+ stale: false
48
+ evidence_subject: "feat: onnx runtime policy"
49
+ target_entry_id: entry-0001
50
+ notes: Reviewed implementation, CLI behavior, documentation, and tests.
51
+ - sha: 9a323b21cc87657ece1aa324ccf84ca1cdb1ef34
52
+ source_ref: git:9a323b21cc87657ece1aa324ccf84ca1cdb1ef34
53
+ short_sha: 9a323b2
54
+ changed_paths:
55
+ - .ledger/releaseledger/data/ledgers/main/events/events.jsonl
56
+ - .ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0007.md
57
+ - .ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0008.md
58
+ - .ledger/releaseledger/data/ledgers/main/releases/0.2.1/release.md
59
+ - README.md
60
+ - docs/changelog.md
61
+ - docs/renderprofile.md
62
+ - tests/test_cli.py
63
+ - tests/test_variants.py
64
+ - voicerender/__init__.py
65
+ - voicerender/cli.py
66
+ - voicerender/variants.py
67
+ stats:
68
+ files_changed: 12
69
+ insertions: 1563
70
+ deletions: 7
71
+ inspected: true
72
+ inspected_paths:
73
+ - .ledger/releaseledger/data/ledgers/main/events/events.jsonl
74
+ - .ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0007.md
75
+ - .ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0008.md
76
+ - .ledger/releaseledger/data/ledgers/main/releases/0.2.1/release.md
77
+ - README.md
78
+ - docs/changelog.md
79
+ - docs/renderprofile.md
80
+ - tests/test_cli.py
81
+ - tests/test_variants.py
82
+ - voicerender/__init__.py
83
+ - voicerender/cli.py
84
+ - voicerender/variants.py
85
+ observed_behavior:
86
+ Added read-only bundle variant discovery with plan validation
87
+ and render-state reporting, and normalized profile-create output names to the
88
+ canonical suffix.
89
+ public_impact: public
90
+ decision: accepted
91
+ stale: false
92
+ evidence_subject: "feat: variant detection and output ending completion"
93
+ target_entry_id: entry-0002
94
+ notes:
95
+ Reviewed implementation, documentation, and tests; releaseledger metadata
96
+ changes are incidental to the public feature.
97
+ - sha: 5d929c9e092cd142238cc05a91b237dd00a65cd8
98
+ source_ref: git:5d929c9e092cd142238cc05a91b237dd00a65cd8
99
+ short_sha: 5d929c9
100
+ changed_paths:
101
+ - tests/test_cli.py
102
+ - tests/test_kokoro_reference.py
103
+ - tests/test_qwen3synth_engine.py
104
+ - voicerender/engines/kokoro.py
105
+ - voicerender/engines/qwen3synth.py
106
+ stats:
107
+ files_changed: 5
108
+ insertions: 141
109
+ deletions: 15
110
+ inspected: true
111
+ inspected_paths:
112
+ - tests/test_cli.py
113
+ - tests/test_kokoro_reference.py
114
+ - tests/test_qwen3synth_engine.py
115
+ - voicerender/engines/kokoro.py
116
+ - voicerender/engines/qwen3synth.py
117
+ observed_behavior:
118
+ Fixed voice-level option normalization so omitted gain settings
119
+ remain absent, and preserved Qwen3 seed options only when explicitly set.
120
+ public_impact: public
121
+ decision: accepted
122
+ stale: false
123
+ evidence_subject: "fix: kokoro gain setting"
124
+ target_entry_id: entry-0003
125
+ notes: Reviewed engine changes and regression tests.
126
+ - sha: 4ab4750c673eadbd57ca91a42099fa87f13797cb
127
+ source_ref: git:4ab4750c673eadbd57ca91a42099fa87f13797cb
128
+ short_sha: 4ab4750
129
+ changed_paths:
130
+ - README.md
131
+ - tests/test_bundle_contract.py
132
+ - tests/test_cli.py
133
+ - tests/test_document_contract.py
134
+ - tests/test_render_book.py
135
+ - voicerender/book_layout.py
136
+ - voicerender/bundle_contract.py
137
+ - voicerender/cli.py
138
+ - voicerender/document_contract.py
139
+ stats:
140
+ files_changed: 9
141
+ insertions: 194
142
+ deletions: 16
143
+ inspected: true
144
+ inspected_paths:
145
+ - README.md
146
+ - tests/test_bundle_contract.py
147
+ - tests/test_cli.py
148
+ - tests/test_document_contract.py
149
+ - tests/test_render_book.py
150
+ - voicerender/book_layout.py
151
+ - voicerender/bundle_contract.py
152
+ - voicerender/cli.py
153
+ - voicerender/document_contract.py
154
+ observed_behavior:
155
+ Fixed bundle-root validation for paths and aliases that resolve
156
+ to canonical .ssmd-bundle directories while retaining rejection of inner paths
157
+ and unsafe roots.
158
+ public_impact: public
159
+ decision: accepted
160
+ stale: false
161
+ evidence_subject: "fix: bundle dir detection"
162
+ target_entry_id: entry-0004
163
+ notes: Reviewed path-validation changes, CLI help, and regression tests.
164
+ - sha: bc7551a9d81cc66dd8d740fbf7f1541a4f50d02f
165
+ source_ref: git:bc7551a9d81cc66dd8d740fbf7f1541a4f50d02f
166
+ short_sha: bc7551a
167
+ changed_paths:
168
+ - voicerender/cli.py
169
+ stats:
170
+ files_changed: 1
171
+ insertions: 9
172
+ deletions: 6
173
+ inspected: true
174
+ inspected_paths:
175
+ - voicerender/cli.py
176
+ observed_behavior:
177
+ Made runtime status and distribution paths use stable POSIX separators
178
+ in human and JSON CLI output.
179
+ public_impact: public
180
+ decision: accepted
181
+ stale: false
182
+ evidence_subject: "fix: cli"
183
+ target_entry_id: entry-0005
184
+ notes: Reviewed the CLI serialization change.
185
+ - sha: ade44bcbbcc223db372f6e7821d133b1777b1048
186
+ source_ref: git:ade44bcbbcc223db372f6e7821d133b1777b1048
187
+ short_sha: ade44bc
188
+ changed_paths:
189
+ - README.md
190
+ - docs/index.md
191
+ - tests/test_bundle_batch_render.py
192
+ - tests/test_bundle_render.py
193
+ - voicerender/__init__.py
194
+ - voicerender/bundle_batch.py
195
+ - voicerender/cli.py
196
+ stats:
197
+ files_changed: 7
198
+ insertions: 1298
199
+ deletions: 28
200
+ inspected: true
201
+ inspected_paths:
202
+ - README.md
203
+ - docs/index.md
204
+ - tests/test_bundle_batch_render.py
205
+ - tests/test_bundle_render.py
206
+ - voicerender/__init__.py
207
+ - voicerender/bundle_batch.py
208
+ - voicerender/cli.py
209
+ observed_behavior:
210
+ Added state-aware batch rendering for SSMD bundle variants, selecting
211
+ incomplete valid variants, skipping completed ones by default, reporting invalid
212
+ variants, and supporting forced reruns.
213
+ public_impact: public
214
+ decision: accepted
215
+ stale: false
216
+ evidence_subject: "feat: render all variants at once cmd added"
217
+ target_entry_id: entry-0006
218
+ notes:
219
+ Reviewed batch orchestration, CLI behavior, documentation, and comprehensive
220
+ tests.
@@ -0,0 +1,37 @@
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.6
9
+ kind: added
10
+ summary:
11
+ Added ONNX Runtime status inspection and saved provider-policy controls for
12
+ future compatible sessions
13
+ status: accepted
14
+ audience: null
15
+ scopes: []
16
+ source_refs:
17
+ - git:fdfe8ca0754a9cb3b3bfc9f792d6c2cf6e44af7d
18
+ paths:
19
+ - README.md
20
+ - docs/index.md
21
+ - pyproject.toml
22
+ - tests/test_runtime.py
23
+ - tests/test_runtime_cli.py
24
+ - voicerender/__init__.py
25
+ - voicerender/cli.py
26
+ - voicerender/errors.py
27
+ - voicerender/runtime.py
28
+ issues: []
29
+ prs: []
30
+ sources:
31
+ - git:fdfe8ca0754a9cb3b3bfc9f792d6c2cf6e44af7d
32
+ contributors:
33
+ - "@holgern"
34
+ breaking: false
35
+ internal: false
36
+ order: 1
37
+ ---
@@ -0,0 +1,40 @@
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.6
9
+ kind: added
10
+ summary:
11
+ Added read-only bundle variant discovery with render-state reporting and
12
+ canonical profile-create output normalization
13
+ status: accepted
14
+ audience: null
15
+ scopes: []
16
+ source_refs:
17
+ - git:9a323b21cc87657ece1aa324ccf84ca1cdb1ef34
18
+ paths:
19
+ - .ledger/releaseledger/data/ledgers/main/events/events.jsonl
20
+ - .ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0007.md
21
+ - .ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0008.md
22
+ - .ledger/releaseledger/data/ledgers/main/releases/0.2.1/release.md
23
+ - README.md
24
+ - docs/changelog.md
25
+ - docs/renderprofile.md
26
+ - tests/test_cli.py
27
+ - tests/test_variants.py
28
+ - voicerender/__init__.py
29
+ - voicerender/cli.py
30
+ - voicerender/variants.py
31
+ issues: []
32
+ prs: []
33
+ sources:
34
+ - git:9a323b21cc87657ece1aa324ccf84ca1cdb1ef34
35
+ contributors:
36
+ - "@holgern"
37
+ breaking: false
38
+ internal: false
39
+ order: 2
40
+ ---
@@ -0,0 +1,33 @@
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.6
9
+ kind: fixed
10
+ summary:
11
+ Fixed voice-level option normalization and preserved Qwen3 seed options only
12
+ when explicitly set
13
+ status: accepted
14
+ audience: null
15
+ scopes: []
16
+ source_refs:
17
+ - git:5d929c9e092cd142238cc05a91b237dd00a65cd8
18
+ paths:
19
+ - tests/test_cli.py
20
+ - tests/test_kokoro_reference.py
21
+ - tests/test_qwen3synth_engine.py
22
+ - voicerender/engines/kokoro.py
23
+ - voicerender/engines/qwen3synth.py
24
+ issues: []
25
+ prs: []
26
+ sources:
27
+ - git:5d929c9e092cd142238cc05a91b237dd00a65cd8
28
+ contributors:
29
+ - "@holgern"
30
+ breaking: false
31
+ internal: false
32
+ order: 3
33
+ ---
@@ -0,0 +1,37 @@
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.6
9
+ kind: fixed
10
+ summary:
11
+ Fixed bundle-root validation for paths that resolve to canonical .ssmd-bundle
12
+ directories
13
+ status: accepted
14
+ audience: null
15
+ scopes: []
16
+ source_refs:
17
+ - git:4ab4750c673eadbd57ca91a42099fa87f13797cb
18
+ paths:
19
+ - README.md
20
+ - tests/test_bundle_contract.py
21
+ - tests/test_cli.py
22
+ - tests/test_document_contract.py
23
+ - tests/test_render_book.py
24
+ - voicerender/book_layout.py
25
+ - voicerender/bundle_contract.py
26
+ - voicerender/cli.py
27
+ - voicerender/document_contract.py
28
+ issues: []
29
+ prs: []
30
+ sources:
31
+ - git:4ab4750c673eadbd57ca91a42099fa87f13797cb
32
+ contributors:
33
+ - "@holgern"
34
+ breaking: false
35
+ internal: false
36
+ order: 4
37
+ ---
@@ -0,0 +1,29 @@
1
+ ---
2
+ schema_version: 2
3
+ object_type: release_entry
4
+ versioning:
5
+ schema_version: 1
6
+ revision: 1
7
+ entry_id: entry-0005
8
+ release_version: 0.2.6
9
+ kind: fixed
10
+ summary:
11
+ Fixed runtime status and distribution paths for stable cross-platform CLI
12
+ output
13
+ status: accepted
14
+ audience: null
15
+ scopes: []
16
+ source_refs:
17
+ - git:bc7551a9d81cc66dd8d740fbf7f1541a4f50d02f
18
+ paths:
19
+ - voicerender/cli.py
20
+ issues: []
21
+ prs: []
22
+ sources:
23
+ - git:bc7551a9d81cc66dd8d740fbf7f1541a4f50d02f
24
+ contributors:
25
+ - "@holgern"
26
+ breaking: false
27
+ internal: false
28
+ order: 5
29
+ ---