voicerender 0.2.3__tar.gz → 0.2.5__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 (258) hide show
  1. {voicerender-0.2.3 → voicerender-0.2.5}/.github/workflows/tests.yml +1 -0
  2. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/data/ledgers/main/events/events.jsonl +13 -0
  3. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/data/ledgers/main/releases/0.2.3/release.md +3 -3
  4. voicerender-0.2.5/.ledger/releaseledger/data/ledgers/main/releases/0.2.4/audit/commit-audit.yaml +183 -0
  5. voicerender-0.2.5/.ledger/releaseledger/data/ledgers/main/releases/0.2.4/entries/entry-0001.md +36 -0
  6. voicerender-0.2.5/.ledger/releaseledger/data/ledgers/main/releases/0.2.4/entries/entry-0002.md +35 -0
  7. voicerender-0.2.5/.ledger/releaseledger/data/ledgers/main/releases/0.2.4/entries/entry-0003.md +28 -0
  8. voicerender-0.2.5/.ledger/releaseledger/data/ledgers/main/releases/0.2.4/entries/entry-0004.md +43 -0
  9. voicerender-0.2.5/.ledger/releaseledger/data/ledgers/main/releases/0.2.4/entries/entry-0005.md +27 -0
  10. voicerender-0.2.5/.ledger/releaseledger/data/ledgers/main/releases/0.2.4/release.md +27 -0
  11. voicerender-0.2.5/.ledger/releaseledger/data/ledgers/main/releases/0.2.5/audit/commit-audit.yaml +76 -0
  12. voicerender-0.2.5/.ledger/releaseledger/data/ledgers/main/releases/0.2.5/entries/entry-0001.md +49 -0
  13. voicerender-0.2.5/.ledger/releaseledger/data/ledgers/main/releases/0.2.5/release.md +27 -0
  14. voicerender-0.2.5/.ledger/releaseledger/work/0.2.4/audit-decisions.yaml +98 -0
  15. voicerender-0.2.5/.ledger/releaseledger/work/0.2.4/audit.yaml +121 -0
  16. voicerender-0.2.5/.ledger/releaseledger/work/0.2.4/entries.yaml +106 -0
  17. voicerender-0.2.5/.ledger/releaseledger/work/0.2.4/evidence/304b84d.patch +28 -0
  18. voicerender-0.2.5/.ledger/releaseledger/work/0.2.4/evidence/3d486d5.patch +1592 -0
  19. voicerender-0.2.5/.ledger/releaseledger/work/0.2.4/evidence/5ffdff4.patch +1108 -0
  20. voicerender-0.2.5/.ledger/releaseledger/work/0.2.4/evidence/ccd30d2.patch +16 -0
  21. voicerender-0.2.5/.ledger/releaseledger/work/0.2.4/evidence/efe4f37.patch +815 -0
  22. voicerender-0.2.5/.ledger/releaseledger/work/0.2.4/evidence/manifest.json +96 -0
  23. voicerender-0.2.5/.ledger/releaseledger/work/0.2.4/range.json +13 -0
  24. voicerender-0.2.5/.ledger/releaseledger/work/0.2.5/audit-decisions.yaml +32 -0
  25. voicerender-0.2.5/.ledger/releaseledger/work/0.2.5/audit.yaml +49 -0
  26. voicerender-0.2.5/.ledger/releaseledger/work/0.2.5/entries.yaml +44 -0
  27. voicerender-0.2.5/.ledger/releaseledger/work/0.2.5/evidence/0ab4075.patch +2227 -0
  28. voicerender-0.2.5/.ledger/releaseledger/work/0.2.5/evidence/manifest.json +45 -0
  29. voicerender-0.2.5/.ledger/releaseledger/work/0.2.5/range.json +13 -0
  30. {voicerender-0.2.3 → voicerender-0.2.5}/PKG-INFO +62 -91
  31. {voicerender-0.2.3 → voicerender-0.2.5}/README.md +60 -90
  32. {voicerender-0.2.3 → voicerender-0.2.5}/docs/changelog.md +22 -1
  33. voicerender-0.2.5/docs/index.md +55 -0
  34. {voicerender-0.2.3 → voicerender-0.2.5}/docs/renderprofile.md +89 -50
  35. {voicerender-0.2.3 → voicerender-0.2.5}/pyproject.toml +1 -0
  36. voicerender-0.2.5/tests/test_bundle_contract.py +150 -0
  37. voicerender-0.2.5/tests/test_bundle_render.py +268 -0
  38. {voicerender-0.2.3 → voicerender-0.2.5}/tests/test_cli.py +19 -18
  39. {voicerender-0.2.3 → voicerender-0.2.5}/tests/test_control_surface_exports.py +6 -0
  40. voicerender-0.2.5/tests/test_document_contract.py +320 -0
  41. {voicerender-0.2.3 → voicerender-0.2.5}/tests/test_engine_options.py +11 -0
  42. {voicerender-0.2.3 → voicerender-0.2.5}/tests/test_kittensynth_engine.py +1 -1
  43. {voicerender-0.2.3 → voicerender-0.2.5}/tests/test_kokoro_reference.py +401 -3
  44. voicerender-0.2.5/tests/test_profile_roles_cli.py +276 -0
  45. {voicerender-0.2.3 → voicerender-0.2.5}/tests/test_render_book.py +36 -18
  46. {voicerender-0.2.3 → voicerender-0.2.5}/tests/test_renderplan_render.py +59 -5
  47. {voicerender-0.2.3 → voicerender-0.2.5}/tests/test_voice_clone.py +71 -1
  48. {voicerender-0.2.3 → voicerender-0.2.5}/tests/wheel_smoke.py +10 -5
  49. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender/__init__.py +17 -3
  50. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender/_version.py +3 -3
  51. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender/book.py +13 -1
  52. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender/book_contract.py +1 -1
  53. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender/book_layout.py +8 -4
  54. voicerender-0.2.5/voicerender/bundle.py +87 -0
  55. voicerender-0.2.5/voicerender/bundle_contract.py +115 -0
  56. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender/cli.py +212 -115
  57. voicerender-0.2.5/voicerender/document.py +454 -0
  58. voicerender-0.2.5/voicerender/document_contract.py +128 -0
  59. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender/engines/base.py +57 -0
  60. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender/engines/kittensynth.py +8 -33
  61. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender/engines/kokoro.py +291 -19
  62. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender/errors.py +11 -0
  63. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender/estimates.py +41 -1
  64. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender/renderplan_render.py +36 -1
  65. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender/voice_clone.py +47 -16
  66. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender.egg-info/PKG-INFO +62 -91
  67. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender.egg-info/SOURCES.txt +33 -0
  68. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender.egg-info/requires.txt +1 -0
  69. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender.egg-info/scm_file_list.json +33 -0
  70. voicerender-0.2.5/voicerender.egg-info/scm_version.json +8 -0
  71. voicerender-0.2.3/docs/index.md +0 -79
  72. voicerender-0.2.3/tests/test_profile_roles_cli.py +0 -149
  73. voicerender-0.2.3/voicerender.egg-info/scm_version.json +0 -8
  74. {voicerender-0.2.3 → voicerender-0.2.5}/.codecrate.toml +0 -0
  75. {voicerender-0.2.3 → voicerender-0.2.5}/.github/workflows/codecov.yml +0 -0
  76. {voicerender-0.2.3 → voicerender-0.2.5}/.github/workflows/pre-commit.yml +0 -0
  77. {voicerender-0.2.3 → voicerender-0.2.5}/.github/workflows/python-publish.yml +0 -0
  78. {voicerender-0.2.3 → voicerender-0.2.5}/.gitignore +0 -0
  79. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/ledger.toml +0 -0
  80. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/.ledger-project.toml +0 -0
  81. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/config.toml +0 -0
  82. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/data/.ledger-project.toml +0 -0
  83. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/data/ledgers/main/releases/0.1.1/audit/commit-audit.yaml +0 -0
  84. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/data/ledgers/main/releases/0.1.1/entries/entry-0001.md +0 -0
  85. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/data/ledgers/main/releases/0.1.1/release.md +0 -0
  86. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/data/ledgers/main/releases/0.2.0/audit/commit-audit.yaml +0 -0
  87. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/data/ledgers/main/releases/0.2.0/entries/entry-0001.md +0 -0
  88. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/data/ledgers/main/releases/0.2.0/entries/entry-0002.md +0 -0
  89. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/data/ledgers/main/releases/0.2.0/entries/entry-0003.md +0 -0
  90. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/data/ledgers/main/releases/0.2.0/entries/entry-0004.md +0 -0
  91. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/data/ledgers/main/releases/0.2.0/entries/entry-0005.md +0 -0
  92. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/data/ledgers/main/releases/0.2.0/entries/entry-0006.md +0 -0
  93. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/data/ledgers/main/releases/0.2.0/entries/entry-0007.md +0 -0
  94. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/data/ledgers/main/releases/0.2.0/release.md +0 -0
  95. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/data/ledgers/main/releases/0.2.1/audit/commit-audit.yaml +0 -0
  96. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0001.md +0 -0
  97. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0002.md +0 -0
  98. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0003.md +0 -0
  99. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0004.md +0 -0
  100. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0005.md +0 -0
  101. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0006.md +0 -0
  102. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/data/ledgers/main/releases/0.2.1/release.md +0 -0
  103. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/data/ledgers/main/releases/0.2.2/audit/commit-audit.yaml +0 -0
  104. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/data/ledgers/main/releases/0.2.2/entries/entry-0001.md +0 -0
  105. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/data/ledgers/main/releases/0.2.2/entries/entry-0002.md +0 -0
  106. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/data/ledgers/main/releases/0.2.2/entries/entry-0003.md +0 -0
  107. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/data/ledgers/main/releases/0.2.2/entries/entry-0004.md +0 -0
  108. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/data/ledgers/main/releases/0.2.2/release.md +0 -0
  109. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/data/ledgers/main/releases/0.2.3/audit/commit-audit.yaml +0 -0
  110. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/data/ledgers/main/releases/0.2.3/entries/entry-0001.md +0 -0
  111. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/data/ledgers/main/releases/0.2.3/entries/entry-0002.md +0 -0
  112. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/data/ledgers/main/releases/v0.1.0/audit/commit-audit.yaml +0 -0
  113. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/data/ledgers/main/releases/v0.1.0/entries/entry-0001.md +0 -0
  114. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/data/ledgers/main/releases/v0.1.0/entries/entry-0002.md +0 -0
  115. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/data/ledgers/main/releases/v0.1.0/entries/entry-0003.md +0 -0
  116. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/data/ledgers/main/releases/v0.1.0/entries/entry-0004.md +0 -0
  117. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/data/ledgers/main/releases/v0.1.0/entries/entry-0005.md +0 -0
  118. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/data/ledgers/main/releases/v0.1.0/release.md +0 -0
  119. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/work/0.1.1/audit-decisions.yaml +0 -0
  120. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/work/0.1.1/entries.yaml +0 -0
  121. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/work/0.2.0/audit-decisions.yaml +0 -0
  122. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/work/0.2.0/audit.yaml +0 -0
  123. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/work/0.2.0/entries.yaml +0 -0
  124. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/work/0.2.0/evidence/19f5b06.patch +0 -0
  125. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/work/0.2.0/evidence/245ca9f.patch +0 -0
  126. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/work/0.2.0/evidence/42a90e3.patch +0 -0
  127. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/work/0.2.0/evidence/480cbea.patch +0 -0
  128. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/work/0.2.0/evidence/4eb3c28.patch +0 -0
  129. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/work/0.2.0/evidence/50f298e.patch +0 -0
  130. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/work/0.2.0/evidence/56ae327.patch +0 -0
  131. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/work/0.2.0/evidence/57f1e24.patch +0 -0
  132. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/work/0.2.0/evidence/6dae2b6.patch +0 -0
  133. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/work/0.2.0/evidence/84f29db.patch +0 -0
  134. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/work/0.2.0/evidence/a390661.patch +0 -0
  135. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/work/0.2.0/evidence/a431dfa.patch +0 -0
  136. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/work/0.2.0/evidence/c2be7b3.patch +0 -0
  137. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/work/0.2.0/evidence/da15247.patch +0 -0
  138. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/work/0.2.0/evidence/ede34ea.patch +0 -0
  139. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/work/0.2.0/evidence/manifest.json +0 -0
  140. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/work/0.2.0/range.json +0 -0
  141. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/work/0.2.1/audit-decisions.yaml +0 -0
  142. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/work/0.2.1/audit.yaml +0 -0
  143. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/work/0.2.1/entries.yaml +0 -0
  144. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/work/0.2.1/evidence/3342e15.patch +0 -0
  145. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/work/0.2.1/evidence/3c82349.patch +0 -0
  146. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/work/0.2.1/evidence/7f466cc.patch +0 -0
  147. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/work/0.2.1/evidence/84f629e.patch +0 -0
  148. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/work/0.2.1/evidence/b7e1917.patch +0 -0
  149. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/work/0.2.1/evidence/manifest.json +0 -0
  150. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/work/0.2.1/range.json +0 -0
  151. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/work/0.2.2/audit-decisions.yaml +0 -0
  152. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/work/0.2.2/audit.yaml +0 -0
  153. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/work/0.2.2/entries.yaml +0 -0
  154. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/work/0.2.2/evidence/6510540.patch +0 -0
  155. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/work/0.2.2/evidence/8861791.patch +0 -0
  156. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/work/0.2.2/evidence/f093d36.patch +0 -0
  157. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/work/0.2.2/evidence/fdb106d.patch +0 -0
  158. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/work/0.2.2/evidence/manifest.json +0 -0
  159. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/work/0.2.2/range.json +0 -0
  160. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/work/0.2.3/audit-decisions.yaml +0 -0
  161. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/work/0.2.3/audit.yaml +0 -0
  162. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/work/0.2.3/entries.yaml +0 -0
  163. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/work/0.2.3/evidence/67e4d8e.patch +0 -0
  164. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/work/0.2.3/evidence/b17f1a9.patch +0 -0
  165. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/work/0.2.3/evidence/manifest.json +0 -0
  166. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/work/0.2.3/range.json +0 -0
  167. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/work/v0.1.0/audit-decisions.yaml +0 -0
  168. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/work/v0.1.0/entries.yaml +0 -0
  169. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/work/v0.1.0/evidence/264eb9b.patch +0 -0
  170. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/work/v0.1.0/evidence/774f6f2.patch +0 -0
  171. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/work/v0.1.0/evidence/9e71e84.patch +0 -0
  172. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/work/v0.1.0/evidence/c4a2872.patch +0 -0
  173. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/work/v0.1.0/evidence/fb7faaf.patch +0 -0
  174. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/work/v0.1.0/evidence/manifest.json +0 -0
  175. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/releaseledger/write.lock +0 -0
  176. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/taskledger/.ledger-project.toml +0 -0
  177. {voicerender-0.2.3 → voicerender-0.2.5}/.ledger/taskledger/config.toml +0 -0
  178. {voicerender-0.2.3 → voicerender-0.2.5}/.pre-commit-config.yaml +0 -0
  179. {voicerender-0.2.3 → voicerender-0.2.5}/LICENSE +0 -0
  180. {voicerender-0.2.3 → voicerender-0.2.5}/MANIFEST.in +0 -0
  181. {voicerender-0.2.3 → voicerender-0.2.5}/docs/Makefile +0 -0
  182. {voicerender-0.2.3 → voicerender-0.2.5}/docs/conf.py +0 -0
  183. {voicerender-0.2.3 → voicerender-0.2.5}/docs/make.bat +0 -0
  184. {voicerender-0.2.3 → voicerender-0.2.5}/docs/make.py +0 -0
  185. {voicerender-0.2.3 → voicerender-0.2.5}/docs/requirements.txt +0 -0
  186. {voicerender-0.2.3 → voicerender-0.2.5}/examples/README.md +0 -0
  187. {voicerender-0.2.3 → voicerender-0.2.5}/examples/plans/chapter.renderplan.toml +0 -0
  188. {voicerender-0.2.3 → voicerender-0.2.5}/examples/plans/chapter.voiceplan.toml +0 -0
  189. {voicerender-0.2.3 → voicerender-0.2.5}/examples/voices/narration.renderprofile.toml +0 -0
  190. {voicerender-0.2.3 → voicerender-0.2.5}/examples/voices/piper.toml +0 -0
  191. {voicerender-0.2.3 → voicerender-0.2.5}/examples/voices/pocket-reference.toml +0 -0
  192. {voicerender-0.2.3 → voicerender-0.2.5}/setup.cfg +0 -0
  193. {voicerender-0.2.3 → voicerender-0.2.5}/tests/test_backends.py +0 -0
  194. {voicerender-0.2.3 → voicerender-0.2.5}/tests/test_capacity.py +0 -0
  195. {voicerender-0.2.3 → voicerender-0.2.5}/tests/test_chatterboxsynth_engine.py +0 -0
  196. {voicerender-0.2.3 → voicerender-0.2.5}/tests/test_engine_contracts.py +0 -0
  197. {voicerender-0.2.3 → voicerender-0.2.5}/tests/test_engine_registry.py +0 -0
  198. {voicerender-0.2.3 → voicerender-0.2.5}/tests/test_inflectsynth_engine.py +0 -0
  199. {voicerender-0.2.3 → voicerender-0.2.5}/tests/test_managed_voices.py +0 -0
  200. {voicerender-0.2.3 → voicerender-0.2.5}/tests/test_model_management_api.py +0 -0
  201. {voicerender-0.2.3 → voicerender-0.2.5}/tests/test_model_management_cli.py +0 -0
  202. {voicerender-0.2.3 → voicerender-0.2.5}/tests/test_package_metadata.py +0 -0
  203. {voicerender-0.2.3 → voicerender-0.2.5}/tests/test_pocketsynth_managed.py +0 -0
  204. {voicerender-0.2.3 → voicerender-0.2.5}/tests/test_preflight.py +0 -0
  205. {voicerender-0.2.3 → voicerender-0.2.5}/tests/test_profile_roles.py +0 -0
  206. {voicerender-0.2.3 → voicerender-0.2.5}/tests/test_progress.py +0 -0
  207. {voicerender-0.2.3 → voicerender-0.2.5}/tests/test_qwen3_voice_design.py +0 -0
  208. {voicerender-0.2.3 → voicerender-0.2.5}/tests/test_qwen3synth_engine.py +0 -0
  209. {voicerender-0.2.3 → voicerender-0.2.5}/tests/test_renderer.py +0 -0
  210. {voicerender-0.2.3 → voicerender-0.2.5}/tests/test_renderplan_input.py +0 -0
  211. {voicerender-0.2.3 → voicerender-0.2.5}/tests/test_renderprofile.py +0 -0
  212. {voicerender-0.2.3 → voicerender-0.2.5}/tests/test_soprosynth_engine.py +0 -0
  213. {voicerender-0.2.3 → voicerender-0.2.5}/tests/test_storage.py +0 -0
  214. {voicerender-0.2.3 → voicerender-0.2.5}/tests/test_voice_clone_cli.py +0 -0
  215. {voicerender-0.2.3 → voicerender-0.2.5}/tests/test_voice_descriptors.py +0 -0
  216. {voicerender-0.2.3 → voicerender-0.2.5}/tests/test_voice_source_cli.py +0 -0
  217. {voicerender-0.2.3 → voicerender-0.2.5}/tests/test_voice_source_codec.py +0 -0
  218. {voicerender-0.2.3 → voicerender-0.2.5}/tests/test_voice_sources.py +0 -0
  219. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender/__main__.py +0 -0
  220. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender/capacity.py +0 -0
  221. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender/engines/__init__.py +0 -0
  222. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender/engines/api_probe.py +0 -0
  223. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender/engines/assets.py +0 -0
  224. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender/engines/catalog.py +0 -0
  225. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender/engines/chatterboxsynth.py +0 -0
  226. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender/engines/inflectsynth.py +0 -0
  227. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender/engines/metadata.py +0 -0
  228. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender/engines/options.py +0 -0
  229. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender/engines/piper.py +0 -0
  230. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender/engines/pipersynth.py +0 -0
  231. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender/engines/pocket.py +0 -0
  232. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender/engines/pocketsynth.py +0 -0
  233. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender/engines/profiles.py +0 -0
  234. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender/engines/qwen3synth.py +0 -0
  235. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender/engines/registry.py +0 -0
  236. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender/engines/selection.py +0 -0
  237. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender/engines/soprosynth.py +0 -0
  238. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender/engines/supertonicsynth.py +0 -0
  239. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender/events.py +0 -0
  240. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender/lexicons.py +0 -0
  241. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender/managed_voices.py +0 -0
  242. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender/models.py +0 -0
  243. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender/models_api.py +0 -0
  244. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender/preflight.py +0 -0
  245. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender/profile_roles.py +0 -0
  246. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender/progress.py +0 -0
  247. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender/py.typed +0 -0
  248. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender/render.py +0 -0
  249. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender/renderplan_input.py +0 -0
  250. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender/renderprofile.py +0 -0
  251. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender/storage.py +0 -0
  252. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender/voice_design.py +0 -0
  253. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender/voice_source_codec.py +0 -0
  254. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender/voice_sources.py +0 -0
  255. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender/voices_api.py +0 -0
  256. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender.egg-info/dependency_links.txt +0 -0
  257. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender.egg-info/entry_points.txt +0 -0
  258. {voicerender-0.2.3 → voicerender-0.2.5}/voicerender.egg-info/top_level.txt +0 -0
@@ -101,6 +101,7 @@ jobs:
101
101
  "pytest==8.0.0" \
102
102
  "numpy==1.23.0" \
103
103
  "soundfile==0.12.1" \
104
+ "tomlkit==0.13.3" \
104
105
  "tomli==2.0.1" \
105
106
  "renderplan==0.1.2" \
106
107
  "voicefolio==0.1.1"
@@ -33,3 +33,16 @@
33
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
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
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}
36
+ {"data":{"status":"planned"},"event":"release.created","event_id":"event-0036","record_revisions":{"release:0.2.4":1},"release_version":"0.2.4","schema_version":2}
37
+ {"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-0037","record_revisions":{"release:0.2.4":2},"release_version":"0.2.4","schema_version":2}
38
+ {"data":{"row_count":5},"event":"audit.created","event_id":"event-0038","record_revisions":{"commit_audit_sheet":1},"release_version":"0.2.4","schema_version":2}
39
+ {"data":{"updated_rows":5},"event":"audit.updated","event_id":"event-0039","record_revisions":{"commit_audit_sheet":2},"release_version":"0.2.4","schema_version":2}
40
+ {"data":{"entry_ids":["entry-0001","entry-0002","entry-0003","entry-0004","entry-0005"],"synced_audit_rows":5},"event":"entry.batch_added","event_id":"event-0040","record_revisions":{"commit_audit_sheet":3,"entry:0.2.4/entry-0001":1,"entry:0.2.4/entry-0002":1,"entry:0.2.4/entry-0003":1,"entry:0.2.4/entry-0004":1,"entry:0.2.4/entry-0005":1,"release:0.2.4":3},"release_version":"0.2.4","schema_version":2}
41
+ {"data":{"released_at":"2026-10-18"},"event":"release.finalized","event_id":"event-0041","record_revisions":{"release:0.2.3":4},"release_version":"0.2.3","schema_version":2}
42
+ {"data":{"released_at":"2026-10-20"},"event":"release.finalized","event_id":"event-0042","record_revisions":{"release:0.2.4":4},"release_version":"0.2.4","schema_version":2}
43
+ {"data":{"status":"planned"},"event":"release.created","event_id":"event-0043","record_revisions":{"release:0.2.5":1},"release_version":"0.2.5","schema_version":2}
44
+ {"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-0044","record_revisions":{"release:0.2.5":2},"release_version":"0.2.5","schema_version":2}
45
+ {"data":{"row_count":1},"event":"audit.created","event_id":"event-0045","record_revisions":{"commit_audit_sheet":1},"release_version":"0.2.5","schema_version":2}
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
+ {"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
+ {"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}
@@ -3,12 +3,12 @@ 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.3
8
- status: planned
8
+ status: released
9
9
  history_state: curated
10
10
  title: null
11
- released_at: null
11
+ released_at: "2026-10-18"
12
12
  previous_version: 0.2.2
13
13
  cancel_reason: null
14
14
  superseded_by: null
@@ -0,0 +1,183 @@
1
+ schema_version: 1
2
+ object_type: commit_audit_sheet
3
+ versioning:
4
+ schema_version: 1
5
+ revision: 3
6
+ release_version: 0.2.4
7
+ git_base_ref: v0.2.3
8
+ git_base_sha: 817587bef3fafffbe39f6b8b715720263dec50dd
9
+ git_head_ref: HEAD
10
+ git_head_sha: ccd30d20fcc85c71d35c850accaf41ffdc5fc960
11
+ git_range: 817587bef3fafffbe39f6b8b715720263dec50dd..ccd30d20fcc85c71d35c850accaf41ffdc5fc960
12
+ commit_count: 5
13
+ rows:
14
+ - sha: 5ffdff4e822f5ea3bff212cf708a6d797029915d
15
+ source_ref: git:5ffdff4e822f5ea3bff212cf708a6d797029915d
16
+ short_sha: 5ffdff4
17
+ changed_paths:
18
+ - README.md
19
+ - tests/test_document_contract.py
20
+ - voicerender/__init__.py
21
+ - voicerender/cli.py
22
+ - voicerender/document.py
23
+ - voicerender/document_contract.py
24
+ - voicerender/errors.py
25
+ - voicerender/estimates.py
26
+ stats:
27
+ files_changed: 8
28
+ insertions: 970
29
+ deletions: 2
30
+ inspected: true
31
+ inspected_paths:
32
+ - README.md
33
+ - tests/test_document_contract.py
34
+ - voicerender/__init__.py
35
+ - voicerender/cli.py
36
+ - voicerender/document.py
37
+ - voicerender/document_contract.py
38
+ - voicerender/errors.py
39
+ - voicerender/estimates.py
40
+ observed_behavior:
41
+ Added SSMDDoc v1 workspace validation plus document-level render
42
+ and estimate operations that resolve a checked RenderPlan variant and keep outputs
43
+ and caches in variant-scoped workspace directories.
44
+ public_impact: public
45
+ decision: accepted
46
+ stale: false
47
+ evidence_subject: "feat: add support for document dir"
48
+ target_entry_key: document-workspace
49
+ target_entry_id: entry-0001
50
+ notes: Reviewed implementation and focused contract tests.
51
+ - sha: efe4f37393479c1143e37f5288b8b586d3fbcc8c
52
+ source_ref: git:efe4f37393479c1143e37f5288b8b586d3fbcc8c
53
+ short_sha: efe4f37
54
+ changed_paths:
55
+ - README.md
56
+ - docs/index.md
57
+ - docs/renderprofile.md
58
+ - tests/test_document_contract.py
59
+ - tests/test_profile_roles_cli.py
60
+ - voicerender/cli.py
61
+ - voicerender/document.py
62
+ stats:
63
+ files_changed: 7
64
+ insertions: 416
65
+ deletions: 86
66
+ inspected: true
67
+ inspected_paths:
68
+ - README.md
69
+ - docs/index.md
70
+ - docs/renderprofile.md
71
+ - tests/test_document_contract.py
72
+ - tests/test_profile_roles_cli.py
73
+ - voicerender/cli.py
74
+ - voicerender/document.py
75
+ observed_behavior:
76
+ Expanded RenderProfile role workflows so one profile can describe
77
+ a complete cast with mixed engine bindings, including first-class role binding
78
+ and descriptive human and JSON profile inspection.
79
+ public_impact: public
80
+ decision: accepted
81
+ stale: false
82
+ evidence_subject: "feat: better voice role binding"
83
+ target_entry_key: mixed-engine-casts
84
+ target_entry_id: entry-0002
85
+ notes: Reviewed CLI, documentation, and role presentation tests.
86
+ - sha: 304b84d7fca0509a1524e2d3131858740124ed1a
87
+ source_ref: git:304b84d7fca0509a1524e2d3131858740124ed1a
88
+ short_sha: 304b84d
89
+ changed_paths:
90
+ - .github/workflows/tests.yml
91
+ - pyproject.toml
92
+ stats:
93
+ files_changed: 2
94
+ insertions: 2
95
+ deletions: 0
96
+ inspected: true
97
+ inspected_paths:
98
+ - .github/workflows/tests.yml
99
+ - pyproject.toml
100
+ observed_behavior:
101
+ Added the tomlkit runtime dependency required by the release's
102
+ TOML report writing path and kept the dependency available in the test workflow.
103
+ public_impact: internal
104
+ decision: internal
105
+ stale: false
106
+ evidence_subject: "chore: fix tomli"
107
+ target_entry_key: tomlkit-dependency
108
+ target_entry_id: entry-0003
109
+ notes: Packaging and workflow support only; intentionally excluded from public notes.
110
+ - sha: 3d486d5fddcc8612430c321760e9ebd3d84607fc
111
+ source_ref: git:3d486d5fddcc8612430c321760e9ebd3d84607fc
112
+ short_sha: 3d486d5
113
+ changed_paths:
114
+ - README.md
115
+ - docs/renderprofile.md
116
+ - tests/test_engine_options.py
117
+ - tests/test_kittensynth_engine.py
118
+ - tests/test_kokoro_reference.py
119
+ - tests/test_renderplan_render.py
120
+ - tests/test_voice_clone.py
121
+ - voicerender/book.py
122
+ - voicerender/cli.py
123
+ - voicerender/document.py
124
+ - voicerender/engines/base.py
125
+ - voicerender/engines/kittensynth.py
126
+ - voicerender/engines/kokoro.py
127
+ - voicerender/renderplan_render.py
128
+ - voicerender/voice_clone.py
129
+ stats:
130
+ files_changed: 15
131
+ insertions: 1028
132
+ deletions: 73
133
+ inspected: true
134
+ inspected_paths:
135
+ - README.md
136
+ - docs/renderprofile.md
137
+ - tests/test_engine_options.py
138
+ - tests/test_kittensynth_engine.py
139
+ - tests/test_kokoro_reference.py
140
+ - tests/test_renderplan_render.py
141
+ - tests/test_voice_clone.py
142
+ - voicerender/book.py
143
+ - voicerender/cli.py
144
+ - voicerender/document.py
145
+ - voicerender/engines/base.py
146
+ - voicerender/engines/kittensynth.py
147
+ - voicerender/engines/kokoro.py
148
+ - voicerender/renderplan_render.py
149
+ - voicerender/voice_clone.py
150
+ observed_behavior:
151
+ Added configurable Kokoro short-sentence and voice-level controls,
152
+ normalized and clamped finite PCM overshoots with diagnostics, enforced AkinVox
153
+ transcript and speed constraints, delegated engine-specific clone binding, and
154
+ recorded segment and engine identity in render failures.
155
+ public_impact: public
156
+ decision: accepted
157
+ stale: false
158
+ evidence_subject: "feat: pykokoro improvements"
159
+ target_entry_key: kokoro-rendering
160
+ target_entry_id: entry-0004
161
+ notes: Reviewed adapter, cloning, diagnostics, and regression tests.
162
+ - sha: ccd30d20fcc85c71d35c850accaf41ffdc5fc960
163
+ source_ref: git:ccd30d20fcc85c71d35c850accaf41ffdc5fc960
164
+ short_sha: ccd30d2
165
+ changed_paths:
166
+ - voicerender/renderplan_render.py
167
+ stats:
168
+ files_changed: 1
169
+ insertions: 1
170
+ deletions: 1
171
+ inspected: true
172
+ inspected_paths:
173
+ - voicerender/renderplan_render.py
174
+ observed_behavior:
175
+ Refined render result typing for the existing failure-diagnostics
176
+ fields without changing runtime behavior.
177
+ public_impact: internal
178
+ decision: internal
179
+ stale: false
180
+ evidence_subject: "chore: mypy"
181
+ target_entry_key: typing-maintenance
182
+ target_entry_id: entry-0005
183
+ notes: Static typing maintenance only; intentionally excluded from public notes.
@@ -0,0 +1,36 @@
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.4
9
+ kind: added
10
+ summary:
11
+ Added document workspace rendering and estimation with safe SSMDDoc validation
12
+ and variant-scoped outputs
13
+ status: accepted
14
+ audience: null
15
+ scopes: []
16
+ source_refs:
17
+ - git:5ffdff4e822f5ea3bff212cf708a6d797029915d
18
+ paths:
19
+ - README.md
20
+ - tests/test_document_contract.py
21
+ - voicerender/__init__.py
22
+ - voicerender/cli.py
23
+ - voicerender/document.py
24
+ - voicerender/document_contract.py
25
+ - voicerender/errors.py
26
+ - voicerender/estimates.py
27
+ issues: []
28
+ prs: []
29
+ sources:
30
+ - git:5ffdff4e822f5ea3bff212cf708a6d797029915d
31
+ contributors:
32
+ - "@holgern"
33
+ breaking: false
34
+ internal: false
35
+ order: 1
36
+ ---
@@ -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-0002
8
+ release_version: 0.2.4
9
+ kind: added
10
+ summary:
11
+ Added mixed-engine RenderProfile casts with role binding and descriptive
12
+ cast inspection
13
+ status: accepted
14
+ audience: null
15
+ scopes: []
16
+ source_refs:
17
+ - git:efe4f37393479c1143e37f5288b8b586d3fbcc8c
18
+ paths:
19
+ - README.md
20
+ - docs/index.md
21
+ - docs/renderprofile.md
22
+ - tests/test_document_contract.py
23
+ - tests/test_profile_roles_cli.py
24
+ - voicerender/cli.py
25
+ - voicerender/document.py
26
+ issues: []
27
+ prs: []
28
+ sources:
29
+ - git:efe4f37393479c1143e37f5288b8b586d3fbcc8c
30
+ contributors:
31
+ - "@holgern"
32
+ breaking: false
33
+ internal: false
34
+ order: 2
35
+ ---
@@ -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-0003
8
+ release_version: 0.2.4
9
+ kind: internal
10
+ summary: Added the tomlkit runtime dependency for TOML report writing
11
+ status: accepted
12
+ audience: null
13
+ scopes: []
14
+ source_refs:
15
+ - git:304b84d7fca0509a1524e2d3131858740124ed1a
16
+ paths:
17
+ - .github/workflows/tests.yml
18
+ - pyproject.toml
19
+ issues: []
20
+ prs: []
21
+ sources:
22
+ - git:304b84d7fca0509a1524e2d3131858740124ed1a
23
+ contributors:
24
+ - "@holgern"
25
+ breaking: false
26
+ internal: true
27
+ order: 3
28
+ ---
@@ -0,0 +1,43 @@
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.4
9
+ kind: changed
10
+ summary:
11
+ Improved Kokoro controls, reference cloning, PCM safety, and render failure
12
+ diagnostics
13
+ status: accepted
14
+ audience: null
15
+ scopes: []
16
+ source_refs:
17
+ - git:3d486d5fddcc8612430c321760e9ebd3d84607fc
18
+ paths:
19
+ - README.md
20
+ - docs/renderprofile.md
21
+ - tests/test_engine_options.py
22
+ - tests/test_kittensynth_engine.py
23
+ - tests/test_kokoro_reference.py
24
+ - tests/test_renderplan_render.py
25
+ - tests/test_voice_clone.py
26
+ - voicerender/book.py
27
+ - voicerender/cli.py
28
+ - voicerender/document.py
29
+ - voicerender/engines/base.py
30
+ - voicerender/engines/kittensynth.py
31
+ - voicerender/engines/kokoro.py
32
+ - voicerender/renderplan_render.py
33
+ - voicerender/voice_clone.py
34
+ issues: []
35
+ prs: []
36
+ sources:
37
+ - git:3d486d5fddcc8612430c321760e9ebd3d84607fc
38
+ contributors:
39
+ - "@holgern"
40
+ breaking: false
41
+ internal: false
42
+ order: 4
43
+ ---
@@ -0,0 +1,27 @@
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.4
9
+ kind: internal
10
+ summary: Changed static typing for render failure diagnostics
11
+ status: accepted
12
+ audience: null
13
+ scopes: []
14
+ source_refs:
15
+ - git:ccd30d20fcc85c71d35c850accaf41ffdc5fc960
16
+ paths:
17
+ - voicerender/renderplan_render.py
18
+ issues: []
19
+ prs: []
20
+ sources:
21
+ - git:ccd30d20fcc85c71d35c850accaf41ffdc5fc960
22
+ contributors:
23
+ - "@holgern"
24
+ breaking: false
25
+ internal: true
26
+ order: 5
27
+ ---
@@ -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.4
8
+ status: released
9
+ history_state: curated
10
+ title: null
11
+ released_at: "2026-10-20"
12
+ previous_version: 0.2.3
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: 5
20
+ artifact_count: 0
21
+ git_base_ref: v0.2.3
22
+ git_base_sha: 817587bef3fafffbe39f6b8b715720263dec50dd
23
+ git_head_ref: HEAD
24
+ git_head_sha: ccd30d20fcc85c71d35c850accaf41ffdc5fc960
25
+ git_range: 817587bef3fafffbe39f6b8b715720263dec50dd..ccd30d20fcc85c71d35c850accaf41ffdc5fc960
26
+ git_commit_count: 5
27
+ ---
@@ -0,0 +1,76 @@
1
+ schema_version: 1
2
+ object_type: commit_audit_sheet
3
+ versioning:
4
+ schema_version: 1
5
+ revision: 3
6
+ release_version: 0.2.5
7
+ git_base_ref: v0.2.4
8
+ git_base_sha: fdaaa999eb67c26010092ee4d1770b0136a760d6
9
+ git_head_ref: HEAD
10
+ git_head_sha: 0ab40750b3ede2e90e62b643c33aedc8687bf1b0
11
+ git_range: fdaaa999eb67c26010092ee4d1770b0136a760d6..0ab40750b3ede2e90e62b643c33aedc8687bf1b0
12
+ commit_count: 1
13
+ rows:
14
+ - sha: 0ab40750b3ede2e90e62b643c33aedc8687bf1b0
15
+ source_ref: git:0ab40750b3ede2e90e62b643c33aedc8687bf1b0
16
+ short_sha: 0ab4075
17
+ changed_paths:
18
+ - README.md
19
+ - docs/index.md
20
+ - docs/renderprofile.md
21
+ - tests/test_bundle_contract.py
22
+ - tests/test_bundle_render.py
23
+ - tests/test_cli.py
24
+ - tests/test_control_surface_exports.py
25
+ - tests/test_document_contract.py
26
+ - tests/test_render_book.py
27
+ - tests/test_renderplan_render.py
28
+ - tests/wheel_smoke.py
29
+ - voicerender/__init__.py
30
+ - voicerender/book.py
31
+ - voicerender/book_contract.py
32
+ - voicerender/book_layout.py
33
+ - voicerender/bundle.py
34
+ - voicerender/bundle_contract.py
35
+ - voicerender/cli.py
36
+ - voicerender/document.py
37
+ - voicerender/document_contract.py
38
+ - voicerender/errors.py
39
+ stats:
40
+ files_changed: 21
41
+ insertions: 986
42
+ deletions: 494
43
+ inspected: true
44
+ inspected_paths:
45
+ - README.md
46
+ - docs/index.md
47
+ - docs/renderprofile.md
48
+ - tests/test_bundle_contract.py
49
+ - tests/test_bundle_render.py
50
+ - tests/test_cli.py
51
+ - tests/test_control_surface_exports.py
52
+ - tests/test_document_contract.py
53
+ - tests/test_render_book.py
54
+ - tests/test_renderplan_render.py
55
+ - tests/wheel_smoke.py
56
+ - voicerender/__init__.py
57
+ - voicerender/book.py
58
+ - voicerender/book_contract.py
59
+ - voicerender/book_layout.py
60
+ - voicerender/bundle.py
61
+ - voicerender/bundle_contract.py
62
+ - voicerender/cli.py
63
+ - voicerender/document.py
64
+ - voicerender/document_contract.py
65
+ - voicerender/errors.py
66
+ observed_behavior:
67
+ Introduced a manifest-driven SSMD bundle contract and unified
68
+ bundle rendering facade for book and document workflows; replaced legacy render
69
+ command paths, added canonical .ssmd-bundle validation, and updated reports, CLI
70
+ output, public exports, and integration coverage.
71
+ public_impact: public
72
+ decision: accepted
73
+ stale: false
74
+ evidence_subject: "feat: remove ssmdbook and ssmdoc and introduce ssmd bundle support"
75
+ target_entry_id: entry-0001
76
+ notes: ""
@@ -0,0 +1,49 @@
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.5
9
+ kind: changed
10
+ summary:
11
+ Changed separate book/document rendering to manifest-driven SSMD bundle rendering
12
+ with a unified bundle API
13
+ status: accepted
14
+ audience: null
15
+ scopes: []
16
+ source_refs:
17
+ - git:0ab40750b3ede2e90e62b643c33aedc8687bf1b0
18
+ paths:
19
+ - README.md
20
+ - docs/index.md
21
+ - docs/renderprofile.md
22
+ - tests/test_bundle_contract.py
23
+ - tests/test_bundle_render.py
24
+ - tests/test_cli.py
25
+ - tests/test_control_surface_exports.py
26
+ - tests/test_document_contract.py
27
+ - tests/test_render_book.py
28
+ - tests/test_renderplan_render.py
29
+ - tests/wheel_smoke.py
30
+ - voicerender/__init__.py
31
+ - voicerender/book.py
32
+ - voicerender/book_contract.py
33
+ - voicerender/book_layout.py
34
+ - voicerender/bundle.py
35
+ - voicerender/bundle_contract.py
36
+ - voicerender/cli.py
37
+ - voicerender/document.py
38
+ - voicerender/document_contract.py
39
+ - voicerender/errors.py
40
+ issues: []
41
+ prs: []
42
+ sources:
43
+ - git:0ab40750b3ede2e90e62b643c33aedc8687bf1b0
44
+ contributors:
45
+ - "@holgern"
46
+ breaking: true
47
+ internal: false
48
+ order: 1
49
+ ---
@@ -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.5
8
+ status: released
9
+ history_state: curated
10
+ title: null
11
+ released_at: "2026-10-21"
12
+ previous_version: 0.2.4
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: 1
20
+ artifact_count: 0
21
+ git_base_ref: v0.2.4
22
+ git_base_sha: fdaaa999eb67c26010092ee4d1770b0136a760d6
23
+ git_head_ref: HEAD
24
+ git_head_sha: 0ab40750b3ede2e90e62b643c33aedc8687bf1b0
25
+ git_range: fdaaa999eb67c26010092ee4d1770b0136a760d6..0ab40750b3ede2e90e62b643c33aedc8687bf1b0
26
+ git_commit_count: 1
27
+ ---
@@ -0,0 +1,98 @@
1
+ rows:
2
+ - sha: 5ffdff4e822f5ea3bff212cf708a6d797029915d
3
+ inspected: true
4
+ inspected_paths:
5
+ - README.md
6
+ - tests/test_document_contract.py
7
+ - voicerender/__init__.py
8
+ - voicerender/cli.py
9
+ - voicerender/document.py
10
+ - voicerender/document_contract.py
11
+ - voicerender/errors.py
12
+ - voicerender/estimates.py
13
+ observed_behavior: >-
14
+ Added SSMDDoc v1 workspace validation plus document-level render and estimate
15
+ operations that resolve a checked RenderPlan variant and keep outputs and
16
+ caches in variant-scoped workspace directories.
17
+ public_impact: public
18
+ decision: accepted
19
+ target_entry_key: document-workspace
20
+ target_entry_id: null
21
+ notes: Reviewed implementation and focused contract tests.
22
+ stale: false
23
+ - sha: efe4f37393479c1143e37f5288b8b586d3fbcc8c
24
+ inspected: true
25
+ inspected_paths:
26
+ - README.md
27
+ - docs/index.md
28
+ - docs/renderprofile.md
29
+ - tests/test_document_contract.py
30
+ - tests/test_profile_roles_cli.py
31
+ - voicerender/cli.py
32
+ - voicerender/document.py
33
+ observed_behavior: >-
34
+ Expanded RenderProfile role workflows so one profile can describe a complete
35
+ cast with mixed engine bindings, including first-class role binding and
36
+ descriptive human and JSON profile inspection.
37
+ public_impact: public
38
+ decision: accepted
39
+ target_entry_key: mixed-engine-casts
40
+ target_entry_id: null
41
+ notes: Reviewed CLI, documentation, and role presentation tests.
42
+ stale: false
43
+ - sha: 304b84d7fca0509a1524e2d3131858740124ed1a
44
+ inspected: true
45
+ inspected_paths:
46
+ - .github/workflows/tests.yml
47
+ - pyproject.toml
48
+ observed_behavior: >-
49
+ Added the tomlkit runtime dependency required by the release's TOML report
50
+ writing path and kept the dependency available in the test workflow.
51
+ public_impact: internal
52
+ decision: internal
53
+ target_entry_key: tomlkit-dependency
54
+ target_entry_id: null
55
+ notes: Packaging and workflow support only; intentionally excluded from public notes.
56
+ stale: false
57
+ - sha: 3d486d5fddcc8612430c321760e9ebd3d84607fc
58
+ inspected: true
59
+ inspected_paths:
60
+ - README.md
61
+ - docs/renderprofile.md
62
+ - tests/test_engine_options.py
63
+ - tests/test_kittensynth_engine.py
64
+ - tests/test_kokoro_reference.py
65
+ - tests/test_renderplan_render.py
66
+ - tests/test_voice_clone.py
67
+ - voicerender/book.py
68
+ - voicerender/cli.py
69
+ - voicerender/document.py
70
+ - voicerender/engines/base.py
71
+ - voicerender/engines/kittensynth.py
72
+ - voicerender/engines/kokoro.py
73
+ - voicerender/renderplan_render.py
74
+ - voicerender/voice_clone.py
75
+ observed_behavior: >-
76
+ Added configurable Kokoro short-sentence and voice-level controls, normalized
77
+ and clamped finite PCM overshoots with diagnostics, enforced AkinVox transcript
78
+ and speed constraints, delegated engine-specific clone binding, and recorded
79
+ segment and engine identity in render failures.
80
+ public_impact: public
81
+ decision: accepted
82
+ target_entry_key: kokoro-rendering
83
+ target_entry_id: null
84
+ notes: Reviewed adapter, cloning, diagnostics, and regression tests.
85
+ stale: false
86
+ - sha: ccd30d20fcc85c71d35c850accaf41ffdc5fc960
87
+ inspected: true
88
+ inspected_paths:
89
+ - voicerender/renderplan_render.py
90
+ observed_behavior: >-
91
+ Refined render result typing for the existing failure-diagnostics fields
92
+ without changing runtime behavior.
93
+ public_impact: internal
94
+ decision: internal
95
+ target_entry_key: typing-maintenance
96
+ target_entry_id: null
97
+ notes: Static typing maintenance only; intentionally excluded from public notes.
98
+ stale: false