voicerender 0.2.8__tar.gz → 0.2.10__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 (416) hide show
  1. {voicerender-0.2.8 → voicerender-0.2.10}/.github/workflows/tests.yml +10 -4
  2. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/events/events.jsonl +11 -0
  3. voicerender-0.2.10/.ledger/releaseledger/data/ledgers/main/releases/v0.2.10/audit/commit-audit.yaml +36 -0
  4. voicerender-0.2.10/.ledger/releaseledger/data/ledgers/main/releases/v0.2.10/entries/entry-0001.md +30 -0
  5. voicerender-0.2.10/.ledger/releaseledger/data/ledgers/main/releases/v0.2.10/release.md +27 -0
  6. voicerender-0.2.10/.ledger/releaseledger/data/ledgers/main/releases/v0.2.9/audit/commit-audit.yaml +300 -0
  7. voicerender-0.2.10/.ledger/releaseledger/data/ledgers/main/releases/v0.2.9/entries/entry-0001.md +33 -0
  8. voicerender-0.2.10/.ledger/releaseledger/data/ledgers/main/releases/v0.2.9/entries/entry-0002.md +35 -0
  9. voicerender-0.2.10/.ledger/releaseledger/data/ledgers/main/releases/v0.2.9/entries/entry-0003.md +34 -0
  10. voicerender-0.2.10/.ledger/releaseledger/data/ledgers/main/releases/v0.2.9/entries/entry-0004.md +37 -0
  11. voicerender-0.2.10/.ledger/releaseledger/data/ledgers/main/releases/v0.2.9/entries/entry-0005.md +36 -0
  12. voicerender-0.2.10/.ledger/releaseledger/data/ledgers/main/releases/v0.2.9/entries/entry-0006.md +33 -0
  13. voicerender-0.2.10/.ledger/releaseledger/data/ledgers/main/releases/v0.2.9/entries/entry-0007.md +29 -0
  14. voicerender-0.2.10/.ledger/releaseledger/data/ledgers/main/releases/v0.2.9/entries/entry-0008.md +28 -0
  15. voicerender-0.2.10/.ledger/releaseledger/data/ledgers/main/releases/v0.2.9/entries/entry-0009.md +27 -0
  16. voicerender-0.2.10/.ledger/releaseledger/data/ledgers/main/releases/v0.2.9/release.md +27 -0
  17. voicerender-0.2.10/.ledger/releaseledger/work/v0.2.10/audit-decisions.yaml +13 -0
  18. voicerender-0.2.10/.ledger/releaseledger/work/v0.2.10/audit.yaml +30 -0
  19. voicerender-0.2.10/.ledger/releaseledger/work/v0.2.10/entries.yaml +25 -0
  20. voicerender-0.2.10/.ledger/releaseledger/work/v0.2.10/evidence/4828dad.patch +92 -0
  21. voicerender-0.2.10/.ledger/releaseledger/work/v0.2.10/evidence/manifest.json +23 -0
  22. voicerender-0.2.10/.ledger/releaseledger/work/v0.2.10/range.json +13 -0
  23. voicerender-0.2.10/.ledger/releaseledger/work/v0.2.9/audit-decisions.yaml +145 -0
  24. voicerender-0.2.10/.ledger/releaseledger/work/v0.2.9/audit.yaml +202 -0
  25. voicerender-0.2.10/.ledger/releaseledger/work/v0.2.9/entries.yaml +176 -0
  26. voicerender-0.2.10/.ledger/releaseledger/work/v0.2.9/evidence/0581372.patch +115 -0
  27. voicerender-0.2.10/.ledger/releaseledger/work/v0.2.9/evidence/05e2511.patch +582 -0
  28. voicerender-0.2.10/.ledger/releaseledger/work/v0.2.9/evidence/0b951e4.patch +198 -0
  29. voicerender-0.2.10/.ledger/releaseledger/work/v0.2.9/evidence/16913d4.patch +232 -0
  30. voicerender-0.2.10/.ledger/releaseledger/work/v0.2.9/evidence/3819783.patch +35 -0
  31. voicerender-0.2.10/.ledger/releaseledger/work/v0.2.9/evidence/7c59333.patch +2169 -0
  32. voicerender-0.2.10/.ledger/releaseledger/work/v0.2.9/evidence/81f5f51.patch +1027 -0
  33. voicerender-0.2.10/.ledger/releaseledger/work/v0.2.9/evidence/d72b779.patch +1631 -0
  34. voicerender-0.2.10/.ledger/releaseledger/work/v0.2.9/evidence/f3679d3.patch +287 -0
  35. voicerender-0.2.10/.ledger/releaseledger/work/v0.2.9/evidence/manifest.json +164 -0
  36. voicerender-0.2.10/.ledger/releaseledger/work/v0.2.9/range.json +13 -0
  37. {voicerender-0.2.8/voicerender.egg-info → voicerender-0.2.10}/PKG-INFO +49 -5
  38. {voicerender-0.2.8 → voicerender-0.2.10}/README.md +45 -3
  39. {voicerender-0.2.8 → voicerender-0.2.10}/docs/changelog.md +27 -0
  40. {voicerender-0.2.8 → voicerender-0.2.10}/docs/renderprofile.md +23 -0
  41. {voicerender-0.2.8 → voicerender-0.2.10}/pyproject.toml +4 -1
  42. {voicerender-0.2.8 → voicerender-0.2.10}/tests/test_bundle_inspect.py +100 -0
  43. {voicerender-0.2.8 → voicerender-0.2.10}/tests/test_cli.py +2 -0
  44. {voicerender-0.2.8 → voicerender-0.2.10}/tests/test_engine_registry.py +83 -6
  45. {voicerender-0.2.8 → voicerender-0.2.10}/tests/test_kokoro_reference.py +292 -7
  46. voicerender-0.2.10/tests/test_phononsynth_engine.py +812 -0
  47. {voicerender-0.2.8 → voicerender-0.2.10}/tests/test_preflight.py +233 -2
  48. {voicerender-0.2.8 → voicerender-0.2.10}/tests/test_profile_roles_cli.py +162 -0
  49. {voicerender-0.2.8 → voicerender-0.2.10}/tests/test_render_book.py +109 -0
  50. {voicerender-0.2.8 → voicerender-0.2.10}/tests/test_renderplan_input.py +81 -0
  51. {voicerender-0.2.8 → voicerender-0.2.10}/tests/test_renderplan_render.py +38 -7
  52. voicerender-0.2.10/tests/test_supertonicsynth_engine.py +228 -0
  53. {voicerender-0.2.8 → voicerender-0.2.10}/tests/test_voice_descriptors.py +117 -0
  54. {voicerender-0.2.8 → voicerender-0.2.10}/tests/wheel_smoke.py +3 -0
  55. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/__init__.py +18 -1
  56. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/_version.py +3 -3
  57. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/book.py +44 -27
  58. voicerender-0.2.10/voicerender/bundle_render_inspect.py +472 -0
  59. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/engines/kokoro.py +77 -2
  60. voicerender-0.2.10/voicerender/engines/phononsynth.py +954 -0
  61. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/engines/registry.py +6 -0
  62. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/engines/supertonicsynth.py +5 -2
  63. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/models.py +4 -2
  64. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/preflight.py +4 -3
  65. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/renderplan_render.py +476 -161
  66. voicerender-0.2.10/voicerender/report_contract.py +5 -0
  67. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/variants.py +3 -3
  68. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/voices_api.py +2 -2
  69. {voicerender-0.2.8 → voicerender-0.2.10/voicerender.egg-info}/PKG-INFO +49 -5
  70. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender.egg-info/SOURCES.txt +39 -0
  71. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender.egg-info/requires.txt +4 -1
  72. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender.egg-info/scm_file_list.json +39 -0
  73. voicerender-0.2.10/voicerender.egg-info/scm_version.json +8 -0
  74. voicerender-0.2.8/voicerender.egg-info/scm_version.json +0 -8
  75. {voicerender-0.2.8 → voicerender-0.2.10}/.codecrate.toml +0 -0
  76. {voicerender-0.2.8 → voicerender-0.2.10}/.github/workflows/codecov.yml +0 -0
  77. {voicerender-0.2.8 → voicerender-0.2.10}/.github/workflows/pre-commit.yml +0 -0
  78. {voicerender-0.2.8 → voicerender-0.2.10}/.github/workflows/python-publish.yml +0 -0
  79. {voicerender-0.2.8 → voicerender-0.2.10}/.gitignore +0 -0
  80. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/ledger.toml +0 -0
  81. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/.ledger-project.toml +0 -0
  82. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/config.toml +0 -0
  83. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/.ledger-project.toml +0 -0
  84. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.1.1/audit/commit-audit.yaml +0 -0
  85. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.1.1/entries/entry-0001.md +0 -0
  86. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.1.1/release.md +0 -0
  87. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.2.0/audit/commit-audit.yaml +0 -0
  88. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.2.0/entries/entry-0001.md +0 -0
  89. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.2.0/entries/entry-0002.md +0 -0
  90. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.2.0/entries/entry-0003.md +0 -0
  91. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.2.0/entries/entry-0004.md +0 -0
  92. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.2.0/entries/entry-0005.md +0 -0
  93. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.2.0/entries/entry-0006.md +0 -0
  94. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.2.0/entries/entry-0007.md +0 -0
  95. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.2.0/release.md +0 -0
  96. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.2.1/audit/commit-audit.yaml +0 -0
  97. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0001.md +0 -0
  98. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0002.md +0 -0
  99. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0003.md +0 -0
  100. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0004.md +0 -0
  101. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0005.md +0 -0
  102. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0006.md +0 -0
  103. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0007.md +0 -0
  104. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0008.md +0 -0
  105. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0009.md +0 -0
  106. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0010.md +0 -0
  107. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.2.1/release.md +0 -0
  108. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.2.2/audit/commit-audit.yaml +0 -0
  109. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.2.2/entries/entry-0001.md +0 -0
  110. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.2.2/entries/entry-0002.md +0 -0
  111. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.2.2/entries/entry-0003.md +0 -0
  112. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.2.2/entries/entry-0004.md +0 -0
  113. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.2.2/release.md +0 -0
  114. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.2.3/audit/commit-audit.yaml +0 -0
  115. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.2.3/entries/entry-0001.md +0 -0
  116. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.2.3/entries/entry-0002.md +0 -0
  117. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.2.3/release.md +0 -0
  118. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.2.4/audit/commit-audit.yaml +0 -0
  119. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.2.4/entries/entry-0001.md +0 -0
  120. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.2.4/entries/entry-0002.md +0 -0
  121. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.2.4/entries/entry-0003.md +0 -0
  122. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.2.4/entries/entry-0004.md +0 -0
  123. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.2.4/entries/entry-0005.md +0 -0
  124. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.2.4/release.md +0 -0
  125. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.2.5/audit/commit-audit.yaml +0 -0
  126. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.2.5/entries/entry-0001.md +0 -0
  127. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.2.5/release.md +0 -0
  128. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.2.6/audit/commit-audit.yaml +0 -0
  129. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.2.6/entries/entry-0001.md +0 -0
  130. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.2.6/entries/entry-0002.md +0 -0
  131. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.2.6/entries/entry-0003.md +0 -0
  132. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.2.6/entries/entry-0004.md +0 -0
  133. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.2.6/entries/entry-0005.md +0 -0
  134. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.2.6/entries/entry-0006.md +0 -0
  135. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.2.6/release.md +0 -0
  136. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.2.7/audit/commit-audit.yaml +0 -0
  137. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.2.7/entries/entry-0001.md +0 -0
  138. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.2.7/entries/entry-0002.md +0 -0
  139. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.2.7/entries/entry-0003.md +0 -0
  140. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.2.7/entries/entry-0004.md +0 -0
  141. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/0.2.7/release.md +0 -0
  142. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/v0.1.0/audit/commit-audit.yaml +0 -0
  143. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/v0.1.0/entries/entry-0001.md +0 -0
  144. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/v0.1.0/entries/entry-0002.md +0 -0
  145. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/v0.1.0/entries/entry-0003.md +0 -0
  146. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/v0.1.0/entries/entry-0004.md +0 -0
  147. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/v0.1.0/entries/entry-0005.md +0 -0
  148. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/v0.1.0/release.md +0 -0
  149. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/v0.2.8/audit/commit-audit.yaml +0 -0
  150. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/v0.2.8/entries/entry-0001.md +0 -0
  151. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/v0.2.8/entries/entry-0002.md +0 -0
  152. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/v0.2.8/entries/entry-0003.md +0 -0
  153. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/v0.2.8/entries/entry-0004.md +0 -0
  154. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/v0.2.8/entries/entry-0005.md +0 -0
  155. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/v0.2.8/entries/entry-0006.md +0 -0
  156. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/v0.2.8/entries/entry-0007.md +0 -0
  157. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/v0.2.8/entries/entry-0008.md +0 -0
  158. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/v0.2.8/entries/entry-0009.md +0 -0
  159. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/v0.2.8/entries/entry-0010.md +0 -0
  160. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/v0.2.8/entries/entry-0011.md +0 -0
  161. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/data/ledgers/main/releases/v0.2.8/release.md +0 -0
  162. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.1.1/audit-decisions.yaml +0 -0
  163. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.1.1/entries.yaml +0 -0
  164. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.0/audit-decisions.yaml +0 -0
  165. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.0/audit.yaml +0 -0
  166. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.0/entries.yaml +0 -0
  167. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.0/evidence/19f5b06.patch +0 -0
  168. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.0/evidence/245ca9f.patch +0 -0
  169. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.0/evidence/42a90e3.patch +0 -0
  170. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.0/evidence/480cbea.patch +0 -0
  171. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.0/evidence/4eb3c28.patch +0 -0
  172. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.0/evidence/50f298e.patch +0 -0
  173. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.0/evidence/56ae327.patch +0 -0
  174. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.0/evidence/57f1e24.patch +0 -0
  175. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.0/evidence/6dae2b6.patch +0 -0
  176. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.0/evidence/84f29db.patch +0 -0
  177. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.0/evidence/a390661.patch +0 -0
  178. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.0/evidence/a431dfa.patch +0 -0
  179. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.0/evidence/c2be7b3.patch +0 -0
  180. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.0/evidence/da15247.patch +0 -0
  181. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.0/evidence/ede34ea.patch +0 -0
  182. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.0/evidence/manifest.json +0 -0
  183. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.0/range.json +0 -0
  184. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.1/audit-decisions.yaml +0 -0
  185. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.1/audit.yaml +0 -0
  186. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.1/entries.yaml +0 -0
  187. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.1/evidence/3342e15.patch +0 -0
  188. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.1/evidence/3c82349.patch +0 -0
  189. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.1/evidence/7f466cc.patch +0 -0
  190. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.1/evidence/84f629e.patch +0 -0
  191. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.1/evidence/b7e1917.patch +0 -0
  192. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.1/evidence/manifest.json +0 -0
  193. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.1/range.json +0 -0
  194. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.2/audit-decisions.yaml +0 -0
  195. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.2/audit.yaml +0 -0
  196. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.2/entries.yaml +0 -0
  197. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.2/evidence/6510540.patch +0 -0
  198. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.2/evidence/8861791.patch +0 -0
  199. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.2/evidence/f093d36.patch +0 -0
  200. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.2/evidence/fdb106d.patch +0 -0
  201. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.2/evidence/manifest.json +0 -0
  202. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.2/range.json +0 -0
  203. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.3/audit-decisions.yaml +0 -0
  204. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.3/audit.yaml +0 -0
  205. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.3/entries.yaml +0 -0
  206. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.3/evidence/67e4d8e.patch +0 -0
  207. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.3/evidence/b17f1a9.patch +0 -0
  208. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.3/evidence/manifest.json +0 -0
  209. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.3/range.json +0 -0
  210. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.4/audit-decisions.yaml +0 -0
  211. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.4/audit.yaml +0 -0
  212. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.4/entries.yaml +0 -0
  213. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.4/evidence/304b84d.patch +0 -0
  214. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.4/evidence/3d486d5.patch +0 -0
  215. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.4/evidence/5ffdff4.patch +0 -0
  216. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.4/evidence/ccd30d2.patch +0 -0
  217. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.4/evidence/efe4f37.patch +0 -0
  218. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.4/evidence/manifest.json +0 -0
  219. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.4/range.json +0 -0
  220. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.5/audit-decisions.yaml +0 -0
  221. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.5/audit.yaml +0 -0
  222. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.5/entries.yaml +0 -0
  223. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.5/evidence/0ab4075.patch +0 -0
  224. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.5/evidence/manifest.json +0 -0
  225. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.5/range.json +0 -0
  226. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.6/audit-decisions.yaml +0 -0
  227. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.6/audit.yaml +0 -0
  228. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.6/entries.yaml +0 -0
  229. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.6/evidence/4ab4750.patch +0 -0
  230. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.6/evidence/5d929c9.patch +0 -0
  231. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.6/evidence/9a323b2.patch +0 -0
  232. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.6/evidence/ade44bc.patch +0 -0
  233. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.6/evidence/bc7551a.patch +0 -0
  234. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.6/evidence/fdfe8ca.patch +0 -0
  235. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.6/evidence/manifest.json +0 -0
  236. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.6/range.json +0 -0
  237. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.7/audit-decisions.yaml +0 -0
  238. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.7/audit.yaml +0 -0
  239. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.7/entries.yaml +0 -0
  240. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.7/evidence/009bc2f.patch +0 -0
  241. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.7/evidence/01ebf18.patch +0 -0
  242. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.7/evidence/1132f5f.patch +0 -0
  243. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.7/evidence/1ba5920.patch +0 -0
  244. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.7/evidence/4b52e71.patch +0 -0
  245. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.7/evidence/636402c.patch +0 -0
  246. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.7/evidence/6a21eef.patch +0 -0
  247. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.7/evidence/7f6f053.patch +0 -0
  248. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.7/evidence/88a2bde.patch +0 -0
  249. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.7/evidence/8f7b701.patch +0 -0
  250. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.7/evidence/9fa235e.patch +0 -0
  251. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.7/evidence/a8df404.patch +0 -0
  252. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.7/evidence/b089c79.patch +0 -0
  253. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.7/evidence/c384d1e.patch +0 -0
  254. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.7/evidence/d124fff.patch +0 -0
  255. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.7/evidence/e5e6839.patch +0 -0
  256. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.7/evidence/ed53140.patch +0 -0
  257. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.7/evidence/f74ce00.patch +0 -0
  258. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.7/evidence/manifest.json +0 -0
  259. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/0.2.7/range.json +0 -0
  260. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/v0.1.0/audit-decisions.yaml +0 -0
  261. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/v0.1.0/entries.yaml +0 -0
  262. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/v0.1.0/evidence/264eb9b.patch +0 -0
  263. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/v0.1.0/evidence/774f6f2.patch +0 -0
  264. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/v0.1.0/evidence/9e71e84.patch +0 -0
  265. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/v0.1.0/evidence/c4a2872.patch +0 -0
  266. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/v0.1.0/evidence/fb7faaf.patch +0 -0
  267. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/v0.1.0/evidence/manifest.json +0 -0
  268. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/v0.2.8/audit-decisions.yaml +0 -0
  269. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/v0.2.8/audit.yaml +0 -0
  270. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/v0.2.8/entries.yaml +0 -0
  271. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/v0.2.8/evidence/01e1ff8.patch +0 -0
  272. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/v0.2.8/evidence/05451ee.patch +0 -0
  273. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/v0.2.8/evidence/0eedac5.patch +0 -0
  274. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/v0.2.8/evidence/1eac844.patch +0 -0
  275. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/v0.2.8/evidence/3bad4f0.patch +0 -0
  276. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/v0.2.8/evidence/4baf17e.patch +0 -0
  277. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/v0.2.8/evidence/5089184.patch +0 -0
  278. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/v0.2.8/evidence/58f64e9.patch +0 -0
  279. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/v0.2.8/evidence/5b4f1f2.patch +0 -0
  280. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/v0.2.8/evidence/72676e0.patch +0 -0
  281. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/v0.2.8/evidence/7875994.patch +0 -0
  282. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/v0.2.8/evidence/a37bba8.patch +0 -0
  283. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/v0.2.8/evidence/a47820e.patch +0 -0
  284. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/v0.2.8/evidence/a48ba9b.patch +0 -0
  285. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/v0.2.8/evidence/a561679.patch +0 -0
  286. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/v0.2.8/evidence/a61d829.patch +0 -0
  287. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/v0.2.8/evidence/a929bbd.patch +0 -0
  288. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/v0.2.8/evidence/db46ed5.patch +0 -0
  289. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/v0.2.8/evidence/e1011f0.patch +0 -0
  290. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/v0.2.8/evidence/f41ea26.patch +0 -0
  291. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/v0.2.8/evidence/f9e1660.patch +0 -0
  292. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/v0.2.8/evidence/facf152.patch +0 -0
  293. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/v0.2.8/evidence/fd8b266.patch +0 -0
  294. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/v0.2.8/evidence/fecfbff.patch +0 -0
  295. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/v0.2.8/evidence/manifest.json +0 -0
  296. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/work/v0.2.8/range.json +0 -0
  297. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/releaseledger/write.lock +0 -0
  298. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/taskledger/.ledger-project.toml +0 -0
  299. {voicerender-0.2.8 → voicerender-0.2.10}/.ledger/taskledger/config.toml +0 -0
  300. {voicerender-0.2.8 → voicerender-0.2.10}/.pre-commit-config.yaml +0 -0
  301. {voicerender-0.2.8 → voicerender-0.2.10}/LICENSE +0 -0
  302. {voicerender-0.2.8 → voicerender-0.2.10}/MANIFEST.in +0 -0
  303. {voicerender-0.2.8 → voicerender-0.2.10}/docs/Makefile +0 -0
  304. {voicerender-0.2.8 → voicerender-0.2.10}/docs/conf.py +0 -0
  305. {voicerender-0.2.8 → voicerender-0.2.10}/docs/index.md +0 -0
  306. {voicerender-0.2.8 → voicerender-0.2.10}/docs/make.bat +0 -0
  307. {voicerender-0.2.8 → voicerender-0.2.10}/docs/make.py +0 -0
  308. {voicerender-0.2.8 → voicerender-0.2.10}/docs/requirements.txt +0 -0
  309. {voicerender-0.2.8 → voicerender-0.2.10}/examples/README.md +0 -0
  310. {voicerender-0.2.8 → voicerender-0.2.10}/examples/plans/chapter.renderplan.toml +0 -0
  311. {voicerender-0.2.8 → voicerender-0.2.10}/examples/plans/chapter.voiceplan.toml +0 -0
  312. {voicerender-0.2.8 → voicerender-0.2.10}/examples/voices/narration.renderprofile.toml +0 -0
  313. {voicerender-0.2.8 → voicerender-0.2.10}/examples/voices/piper.toml +0 -0
  314. {voicerender-0.2.8 → voicerender-0.2.10}/examples/voices/pocket-reference.toml +0 -0
  315. {voicerender-0.2.8 → voicerender-0.2.10}/setup.cfg +0 -0
  316. {voicerender-0.2.8 → voicerender-0.2.10}/tests/test_audio_boundaries.py +0 -0
  317. {voicerender-0.2.8 → voicerender-0.2.10}/tests/test_backends.py +0 -0
  318. {voicerender-0.2.8 → voicerender-0.2.10}/tests/test_bundle_batch_render.py +0 -0
  319. {voicerender-0.2.8 → voicerender-0.2.10}/tests/test_bundle_contract.py +0 -0
  320. {voicerender-0.2.8 → voicerender-0.2.10}/tests/test_bundle_render.py +0 -0
  321. {voicerender-0.2.8 → voicerender-0.2.10}/tests/test_bundle_roles.py +0 -0
  322. {voicerender-0.2.8 → voicerender-0.2.10}/tests/test_capacity.py +0 -0
  323. {voicerender-0.2.8 → voicerender-0.2.10}/tests/test_chatterboxsynth_engine.py +0 -0
  324. {voicerender-0.2.8 → voicerender-0.2.10}/tests/test_control_surface_exports.py +0 -0
  325. {voicerender-0.2.8 → voicerender-0.2.10}/tests/test_document_contract.py +0 -0
  326. {voicerender-0.2.8 → voicerender-0.2.10}/tests/test_engine_contracts.py +0 -0
  327. {voicerender-0.2.8 → voicerender-0.2.10}/tests/test_engine_options.py +0 -0
  328. {voicerender-0.2.8 → voicerender-0.2.10}/tests/test_error_diagnostics.py +0 -0
  329. {voicerender-0.2.8 → voicerender-0.2.10}/tests/test_inflectsynth_engine.py +0 -0
  330. {voicerender-0.2.8 → voicerender-0.2.10}/tests/test_jsonutil.py +0 -0
  331. {voicerender-0.2.8 → voicerender-0.2.10}/tests/test_kittensynth_engine.py +0 -0
  332. {voicerender-0.2.8 → voicerender-0.2.10}/tests/test_kittensynth_pronunciation.py +0 -0
  333. {voicerender-0.2.8 → voicerender-0.2.10}/tests/test_lexicons_cli.py +0 -0
  334. {voicerender-0.2.8 → voicerender-0.2.10}/tests/test_managed_voices.py +0 -0
  335. {voicerender-0.2.8 → voicerender-0.2.10}/tests/test_model_management_api.py +0 -0
  336. {voicerender-0.2.8 → voicerender-0.2.10}/tests/test_model_management_cli.py +0 -0
  337. {voicerender-0.2.8 → voicerender-0.2.10}/tests/test_package_metadata.py +0 -0
  338. {voicerender-0.2.8 → voicerender-0.2.10}/tests/test_pocketsynth_managed.py +0 -0
  339. {voicerender-0.2.8 → voicerender-0.2.10}/tests/test_profile_reidentify.py +0 -0
  340. {voicerender-0.2.8 → voicerender-0.2.10}/tests/test_profile_roles.py +0 -0
  341. {voicerender-0.2.8 → voicerender-0.2.10}/tests/test_progress.py +0 -0
  342. {voicerender-0.2.8 → voicerender-0.2.10}/tests/test_qwen3_voice_design.py +0 -0
  343. {voicerender-0.2.8 → voicerender-0.2.10}/tests/test_qwen3synth_engine.py +0 -0
  344. {voicerender-0.2.8 → voicerender-0.2.10}/tests/test_render_lock.py +0 -0
  345. {voicerender-0.2.8 → voicerender-0.2.10}/tests/test_renderer.py +0 -0
  346. {voicerender-0.2.8 → voicerender-0.2.10}/tests/test_renderprofile.py +0 -0
  347. {voicerender-0.2.8 → voicerender-0.2.10}/tests/test_runtime.py +0 -0
  348. {voicerender-0.2.8 → voicerender-0.2.10}/tests/test_runtime_cli.py +0 -0
  349. {voicerender-0.2.8 → voicerender-0.2.10}/tests/test_session_pool.py +0 -0
  350. {voicerender-0.2.8 → voicerender-0.2.10}/tests/test_sopro_release_compatibility.py +0 -0
  351. {voicerender-0.2.8 → voicerender-0.2.10}/tests/test_soprosynth_engine.py +0 -0
  352. {voicerender-0.2.8 → voicerender-0.2.10}/tests/test_storage.py +0 -0
  353. {voicerender-0.2.8 → voicerender-0.2.10}/tests/test_variants.py +0 -0
  354. {voicerender-0.2.8 → voicerender-0.2.10}/tests/test_voice_clone.py +0 -0
  355. {voicerender-0.2.8 → voicerender-0.2.10}/tests/test_voice_clone_cli.py +0 -0
  356. {voicerender-0.2.8 → voicerender-0.2.10}/tests/test_voice_source_cli.py +0 -0
  357. {voicerender-0.2.8 → voicerender-0.2.10}/tests/test_voice_source_codec.py +0 -0
  358. {voicerender-0.2.8 → voicerender-0.2.10}/tests/test_voice_sources.py +0 -0
  359. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/__main__.py +0 -0
  360. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/audio_boundaries.py +0 -0
  361. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/book_contract.py +0 -0
  362. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/book_layout.py +0 -0
  363. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/bundle.py +0 -0
  364. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/bundle_batch.py +0 -0
  365. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/bundle_contract.py +0 -0
  366. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/bundle_inspect.py +0 -0
  367. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/bundle_roles.py +0 -0
  368. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/capacity.py +0 -0
  369. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/cli.py +0 -0
  370. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/document.py +0 -0
  371. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/document_contract.py +0 -0
  372. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/engines/__init__.py +0 -0
  373. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/engines/api_probe.py +0 -0
  374. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/engines/assets.py +0 -0
  375. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/engines/base.py +0 -0
  376. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/engines/catalog.py +0 -0
  377. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/engines/chatterbox_assets.py +0 -0
  378. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/engines/chatterboxsynth.py +0 -0
  379. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/engines/inflectsynth.py +0 -0
  380. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/engines/kittensynth.py +0 -0
  381. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/engines/metadata.py +0 -0
  382. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/engines/options.py +0 -0
  383. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/engines/piper.py +0 -0
  384. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/engines/pipersynth.py +0 -0
  385. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/engines/pocket.py +0 -0
  386. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/engines/pocketsynth.py +0 -0
  387. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/engines/profiles.py +0 -0
  388. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/engines/qwen3synth.py +0 -0
  389. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/engines/selection.py +0 -0
  390. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/engines/soprosynth.py +0 -0
  391. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/error_diagnostics.py +0 -0
  392. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/errors.py +0 -0
  393. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/estimates.py +0 -0
  394. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/events.py +0 -0
  395. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/jsonutil.py +0 -0
  396. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/lexicons.py +0 -0
  397. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/managed_voices.py +0 -0
  398. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/models_api.py +0 -0
  399. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/profile_roles.py +0 -0
  400. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/progress.py +0 -0
  401. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/py.typed +0 -0
  402. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/render.py +0 -0
  403. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/render_lock.py +0 -0
  404. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/renderplan_input.py +0 -0
  405. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/renderprofile.py +0 -0
  406. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/role_bindings.py +0 -0
  407. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/runtime.py +0 -0
  408. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/session_pool.py +0 -0
  409. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/storage.py +0 -0
  410. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/voice_clone.py +0 -0
  411. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/voice_design.py +0 -0
  412. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/voice_source_codec.py +0 -0
  413. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender/voice_sources.py +0 -0
  414. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender.egg-info/dependency_links.txt +0 -0
  415. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender.egg-info/entry_points.txt +0 -0
  416. {voicerender-0.2.8 → voicerender-0.2.10}/voicerender.egg-info/top_level.txt +0 -0
@@ -51,7 +51,7 @@ jobs:
51
51
  strategy:
52
52
  fail-fast: false
53
53
  matrix:
54
- extra: [kokoro, piper, pocket, kitten, sopro, supertonic, inflect]
54
+ extra: [kokoro, piper, phonon, pocket, kitten, sopro, supertonic, inflect]
55
55
  steps:
56
56
  - uses: actions/checkout@v4
57
57
  - name: Set up Python
@@ -63,7 +63,7 @@ jobs:
63
63
  python -m pip install --upgrade "pip<26.2"
64
64
  python -m pip install -e ".[${{ matrix.extra }}]" pytest
65
65
  - name: Run API and adapter contracts without model downloads
66
- run: python -m pytest -q tests/test_engine_registry.py tests/test_backends.py
66
+ run: python -m pytest -q tests/test_engine_registry.py tests/test_backends.py tests/test_phononsynth_engine.py
67
67
 
68
68
  sopro-contract:
69
69
  runs-on: ubuntu-latest
@@ -103,9 +103,10 @@ jobs:
103
103
  "kittensynth[cpu]==0.1.4" \
104
104
  "soprosynth[cpu]==0.1.1" \
105
105
  "supertonicsynth[cpu]==0.1.2" \
106
- "inflectsynth[cpu]==0.1.1"
106
+ "inflectsynth[cpu]==0.1.1" \
107
+ "phononsynth[cpu]==0.1.2"
107
108
  - name: Run released-set compatibility contracts
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
109
+ run: python -m pytest -q tests/test_engine_registry.py tests/test_backends.py tests/test_phononsynth_engine.py tests/test_soprosynth_engine.py tests/test_sopro_release_compatibility.py
109
110
 
110
111
  lower-bounds:
111
112
  runs-on: ubuntu-latest
@@ -224,6 +225,7 @@ jobs:
224
225
  "chatterboxsynth",
225
226
  "inflectsynth", "kittensynth", "pykokoro", "pipersynth",
226
227
  "pocketsynth", "soprosynth", "supertonicsynth",
228
+ "phononsynth",
227
229
  "qwen3synth",
228
230
  }
229
231
  assert not engine_sdks & base_requirements
@@ -248,6 +250,7 @@ jobs:
248
250
  import importlib.resources as resources
249
251
  import sys
250
252
 
253
+ from importlib.util import find_spec
251
254
  import voicerender
252
255
  import voicerender.book
253
256
  from renderplan import RenderPlanSet
@@ -265,16 +268,19 @@ jobs:
265
268
  "kitten",
266
269
  "kokoro",
267
270
  "piper",
271
+ "phonon",
268
272
  "pocket",
269
273
  "qwen3",
270
274
  "sopro",
271
275
  "supertonic",
272
276
  }
277
+ assert find_spec("phononsynth") is None
273
278
  assert not any(
274
279
  name.split(".", 1)[0] in {
275
280
  "chatterboxsynth",
276
281
  "inflectsynth", "kittensynth", "pykokoro", "pipersynth",
277
282
  "pocketsynth", "soprosynth", "supertonicsynth", "utterplan",
283
+ "phononsynth",
278
284
  "qwen3synth",
279
285
  }
280
286
  for name in sys.modules
@@ -68,3 +68,14 @@
68
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
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
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}
71
+ {"data":{"status":"planned"},"event":"release.created","event_id":"event-0071","record_revisions":{"release:v0.2.9":1},"release_version":"v0.2.9","schema_version":2}
72
+ {"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-0072","record_revisions":{"release:v0.2.9":2},"release_version":"v0.2.9","schema_version":2}
73
+ {"data":{"row_count":9},"event":"audit.created","event_id":"event-0073","record_revisions":{"commit_audit_sheet":1},"release_version":"v0.2.9","schema_version":2}
74
+ {"data":{"updated_rows":9},"event":"audit.updated","event_id":"event-0074","record_revisions":{"commit_audit_sheet":2},"release_version":"v0.2.9","schema_version":2}
75
+ {"data":{"entry_ids":["entry-0001","entry-0002","entry-0003","entry-0004","entry-0005","entry-0006","entry-0007","entry-0008","entry-0009"],"synced_audit_rows":9},"event":"entry.batch_added","event_id":"event-0075","record_revisions":{"commit_audit_sheet":3,"entry:v0.2.9/entry-0001":1,"entry:v0.2.9/entry-0002":1,"entry:v0.2.9/entry-0003":1,"entry:v0.2.9/entry-0004":1,"entry:v0.2.9/entry-0005":1,"entry:v0.2.9/entry-0006":1,"entry:v0.2.9/entry-0007":1,"entry:v0.2.9/entry-0008":1,"entry:v0.2.9/entry-0009":1,"release:v0.2.9":3},"release_version":"v0.2.9","schema_version":2}
76
+ {"data":{"released_at":"2026-11-06"},"event":"release.finalized","event_id":"event-0076","record_revisions":{"release:v0.2.9":4},"release_version":"v0.2.9","schema_version":2}
77
+ {"data":{"status":"planned"},"event":"release.created","event_id":"event-0077","record_revisions":{"release:v0.2.10":1},"release_version":"v0.2.10","schema_version":2}
78
+ {"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-0078","record_revisions":{"release:v0.2.10":2},"release_version":"v0.2.10","schema_version":2}
79
+ {"data":{"row_count":1},"event":"audit.created","event_id":"event-0079","record_revisions":{"commit_audit_sheet":1},"release_version":"v0.2.10","schema_version":2}
80
+ {"data":{"updated_rows":1},"event":"audit.updated","event_id":"event-0080","record_revisions":{"commit_audit_sheet":2},"release_version":"v0.2.10","schema_version":2}
81
+ {"data":{"entry_ids":["entry-0001"],"synced_audit_rows":1},"event":"entry.batch_added","event_id":"event-0081","record_revisions":{"commit_audit_sheet":3,"entry:v0.2.10/entry-0001":1,"release:v0.2.10":3},"release_version":"v0.2.10","schema_version":2}
@@ -0,0 +1,36 @@
1
+ schema_version: 1
2
+ object_type: commit_audit_sheet
3
+ versioning:
4
+ schema_version: 1
5
+ revision: 3
6
+ release_version: v0.2.10
7
+ git_base_ref: v0.2.9
8
+ git_base_sha: e9d4d179d03c7cdb048a80682c1acb82b9282b1b
9
+ git_head_ref: HEAD
10
+ git_head_sha: 4828dadb8361678818718635c4765d64eb185a27
11
+ git_range: e9d4d179d03c7cdb048a80682c1acb82b9282b1b..4828dadb8361678818718635c4765d64eb185a27
12
+ commit_count: 1
13
+ rows:
14
+ - sha: 4828dadb8361678818718635c4765d64eb185a27
15
+ source_ref: git:4828dadb8361678818718635c4765d64eb185a27
16
+ short_sha: 4828dad
17
+ changed_paths:
18
+ - tests/test_voice_descriptors.py
19
+ - voicerender/voices_api.py
20
+ stats:
21
+ files_changed: 2
22
+ insertions: 50
23
+ deletions: 3
24
+ inspected: true
25
+ inspected_paths:
26
+ - tests/test_voice_descriptors.py
27
+ - voicerender/voices_api.py
28
+ observed_behavior:
29
+ Voice discovery now matches regional requests to compatible base-language
30
+ voice metadata while retaining language scoping.
31
+ public_impact: public
32
+ decision: accepted
33
+ stale: false
34
+ evidence_subject: Fix regional voice language filtering
35
+ target_entry_id: entry-0001
36
+ notes: ""
@@ -0,0 +1,30 @@
1
+ ---
2
+ schema_version: 2
3
+ object_type: release_entry
4
+ versioning:
5
+ schema_version: 1
6
+ revision: 1
7
+ entry_id: entry-0001
8
+ release_version: v0.2.10
9
+ kind: fixed
10
+ summary:
11
+ Fixed regional voice discovery to include voices with compatible base-language
12
+ metadata
13
+ status: accepted
14
+ audience: null
15
+ scopes: []
16
+ source_refs:
17
+ - git:4828dadb8361678818718635c4765d64eb185a27
18
+ paths:
19
+ - tests/test_voice_descriptors.py
20
+ - voicerender/voices_api.py
21
+ issues: []
22
+ prs: []
23
+ sources:
24
+ - git:4828dadb8361678818718635c4765d64eb185a27
25
+ contributors:
26
+ - "@holgern"
27
+ breaking: false
28
+ internal: false
29
+ order: 1
30
+ ---
@@ -0,0 +1,27 @@
1
+ ---
2
+ schema_version: 2
3
+ object_type: release
4
+ versioning:
5
+ schema_version: 1
6
+ revision: 3
7
+ version: v0.2.10
8
+ status: planned
9
+ history_state: curated
10
+ title: null
11
+ released_at: null
12
+ previous_version: v0.2.9
13
+ cancel_reason: null
14
+ superseded_by: null
15
+ changelog_file: null
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.9
22
+ git_base_sha: e9d4d179d03c7cdb048a80682c1acb82b9282b1b
23
+ git_head_ref: HEAD
24
+ git_head_sha: 4828dadb8361678818718635c4765d64eb185a27
25
+ git_range: e9d4d179d03c7cdb048a80682c1acb82b9282b1b..4828dadb8361678818718635c4765d64eb185a27
26
+ git_commit_count: 1
27
+ ---
@@ -0,0 +1,300 @@
1
+ schema_version: 1
2
+ object_type: commit_audit_sheet
3
+ versioning:
4
+ schema_version: 1
5
+ revision: 3
6
+ release_version: v0.2.9
7
+ git_base_ref: v0.2.8
8
+ git_base_sha: 4bdac4e18fcb9909689889f1237fa4d4f083357d
9
+ git_head_ref: HEAD
10
+ git_head_sha: 38197830ba6c1adf66c05a4b53a5a462869ab9c1
11
+ git_range: 4bdac4e18fcb9909689889f1237fa4d4f083357d..38197830ba6c1adf66c05a4b53a5a462869ab9c1
12
+ commit_count: 9
13
+ rows:
14
+ - sha: 16913d40e23b25987b17274d02248d8456360c7e
15
+ source_ref: git:16913d40e23b25987b17274d02248d8456360c7e
16
+ short_sha: 16913d4
17
+ changed_paths:
18
+ - tests/test_render_book.py
19
+ - tests/test_renderplan_render.py
20
+ - voicerender/book.py
21
+ - voicerender/report_contract.py
22
+ - voicerender/variants.py
23
+ stats:
24
+ files_changed: 5
25
+ insertions: 93
26
+ deletions: 22
27
+ inspected: true
28
+ inspected_paths:
29
+ - tests/test_render_book.py
30
+ - tests/test_renderplan_render.py
31
+ - voicerender/book.py
32
+ - voicerender/report_contract.py
33
+ - voicerender/variants.py
34
+ observed_behavior:
35
+ Book reports now omit execution fingerprints from persisted item
36
+ data and enforce the shared 2 MiB report limit with atomic failure handling.
37
+ public_impact: public
38
+ decision: accepted
39
+ stale: false
40
+ evidence_subject: "feat: report"
41
+ target_entry_id: entry-0001
42
+ notes: ""
43
+ - sha: 7c5933312eb77b2d38fe3051086ca85f4e3f363a
44
+ source_ref: git:7c5933312eb77b2d38fe3051086ca85f4e3f363a
45
+ short_sha: 7c59333
46
+ changed_paths:
47
+ - .github/workflows/tests.yml
48
+ - README.md
49
+ - pyproject.toml
50
+ - tests/test_engine_registry.py
51
+ - tests/test_phononsynth_engine.py
52
+ - tests/test_renderplan_input.py
53
+ - tests/wheel_smoke.py
54
+ - voicerender/engines/phononsynth.py
55
+ - voicerender/engines/registry.py
56
+ stats:
57
+ files_changed: 9
58
+ insertions: 1844
59
+ deletions: 12
60
+ inspected: true
61
+ inspected_paths:
62
+ - .github/workflows/tests.yml
63
+ - README.md
64
+ - pyproject.toml
65
+ - tests/test_engine_registry.py
66
+ - tests/test_phononsynth_engine.py
67
+ - tests/test_renderplan_input.py
68
+ - tests/wheel_smoke.py
69
+ - voicerender/engines/phononsynth.py
70
+ - voicerender/engines/registry.py
71
+ observed_behavior:
72
+ Added the optional PhononSynth engine adapter, registry entry,
73
+ package extra, model and voice discovery, prepared-text measurement and synthesis,
74
+ and compatibility coverage.
75
+ public_impact: public
76
+ decision: accepted
77
+ stale: false
78
+ evidence_subject: "feat: add support for phononsynth"
79
+ target_entry_id: entry-0002
80
+ notes: ""
81
+ - sha: d72b77973b675971c38158a3e51fe14011eb2004
82
+ source_ref: git:d72b77973b675971c38158a3e51fe14011eb2004
83
+ short_sha: d72b779
84
+ changed_paths:
85
+ - tests/test_bundle_inspect.py
86
+ - tests/test_render_book.py
87
+ - tests/test_renderplan_render.py
88
+ - voicerender/__init__.py
89
+ - voicerender/book.py
90
+ - voicerender/bundle_render_inspect.py
91
+ - voicerender/preflight.py
92
+ - voicerender/renderplan_render.py
93
+ stats:
94
+ files_changed: 8
95
+ insertions: 1175
96
+ deletions: 180
97
+ inspected: true
98
+ inspected_paths:
99
+ - tests/test_bundle_inspect.py
100
+ - tests/test_render_book.py
101
+ - tests/test_renderplan_render.py
102
+ - voicerender/__init__.py
103
+ - voicerender/book.py
104
+ - voicerender/bundle_render_inspect.py
105
+ - voicerender/preflight.py
106
+ - voicerender/renderplan_render.py
107
+ observed_behavior:
108
+ Added selection-aware, read-only bundle render inspection plus
109
+ non-persisting RenderPlan preflight and in-memory rendering APIs.
110
+ public_impact: public
111
+ decision: accepted
112
+ stale: false
113
+ evidence_subject: "feat: add api for readio"
114
+ target_entry_id: entry-0003
115
+ notes: ""
116
+ - sha: 81f5f519c5b17f49053da10705730ddf78a6c1ed
117
+ source_ref: git:81f5f519c5b17f49053da10705730ddf78a6c1ed
118
+ short_sha: 81f5f51
119
+ changed_paths:
120
+ - README.md
121
+ - docs/renderprofile.md
122
+ - pyproject.toml
123
+ - tests/test_cli.py
124
+ - tests/test_kokoro_reference.py
125
+ - tests/test_preflight.py
126
+ - tests/test_profile_roles_cli.py
127
+ - tests/test_voice_descriptors.py
128
+ - voicerender/engines/kokoro.py
129
+ - voicerender/models.py
130
+ - voicerender/voices_api.py
131
+ stats:
132
+ files_changed: 11
133
+ insertions: 743
134
+ deletions: 16
135
+ inspected: true
136
+ inspected_paths:
137
+ - README.md
138
+ - docs/renderprofile.md
139
+ - pyproject.toml
140
+ - tests/test_cli.py
141
+ - tests/test_kokoro_reference.py
142
+ - tests/test_preflight.py
143
+ - tests/test_profile_roles_cli.py
144
+ - tests/test_voice_descriptors.py
145
+ - voicerender/engines/kokoro.py
146
+ - voicerender/models.py
147
+ - voicerender/voices_api.py
148
+ observed_behavior:
149
+ Added static AkinVox English and German multispeaker voice discovery
150
+ and language-aware profile selection and preflight validation for Kokoro.
151
+ public_impact: public
152
+ decision: accepted
153
+ stale: false
154
+ evidence_subject: "feat: add support for akinvox-multispeaker"
155
+ target_entry_id: entry-0004
156
+ notes: ""
157
+ - sha: 05e2511c2e77b9b4b20e1220397332b6bef08029
158
+ source_ref: git:05e2511c2e77b9b4b20e1220397332b6bef08029
159
+ short_sha: 05e2511
160
+ changed_paths:
161
+ - .github/workflows/tests.yml
162
+ - README.md
163
+ - pyproject.toml
164
+ - tests/test_engine_registry.py
165
+ - tests/test_phononsynth_engine.py
166
+ - tests/test_preflight.py
167
+ - tests/test_renderplan_input.py
168
+ - voicerender/engines/phononsynth.py
169
+ stats:
170
+ files_changed: 8
171
+ insertions: 291
172
+ deletions: 29
173
+ inspected: true
174
+ inspected_paths:
175
+ - .github/workflows/tests.yml
176
+ - README.md
177
+ - pyproject.toml
178
+ - tests/test_engine_registry.py
179
+ - tests/test_phononsynth_engine.py
180
+ - tests/test_preflight.py
181
+ - tests/test_renderplan_input.py
182
+ - voicerender/engines/phononsynth.py
183
+ observed_behavior:
184
+ Updated the PhononSynth integration to require the authoritative
185
+ request-fit contract and to reject incompatible or invalid measurements before
186
+ model loading or synthesis.
187
+ public_impact: public
188
+ decision: accepted
189
+ stale: false
190
+ evidence_subject: "feat: fix phononsynth"
191
+ target_entry_id: entry-0005
192
+ notes: ""
193
+ - sha: 0b951e4c9690afd7c7392046dd3a63794fdd9990
194
+ source_ref: git:0b951e4c9690afd7c7392046dd3a63794fdd9990
195
+ short_sha: 0b951e4
196
+ changed_paths:
197
+ - tests/test_kokoro_reference.py
198
+ - tests/test_phononsynth_engine.py
199
+ - tests/test_preflight.py
200
+ - tests/test_profile_roles_cli.py
201
+ - tests/test_voice_descriptors.py
202
+ - voicerender/engines/phononsynth.py
203
+ - voicerender/voices_api.py
204
+ stats:
205
+ files_changed: 7
206
+ insertions: 34
207
+ deletions: 25
208
+ inspected: true
209
+ inspected_paths:
210
+ - tests/test_kokoro_reference.py
211
+ - tests/test_phononsynth_engine.py
212
+ - tests/test_preflight.py
213
+ - tests/test_profile_roles_cli.py
214
+ - tests/test_voice_descriptors.py
215
+ - voicerender/engines/phononsynth.py
216
+ - voicerender/voices_api.py
217
+ observed_behavior:
218
+ Refined PhononSynth validation diagnostics and formatting while
219
+ preserving the multilingual voice-selection and measurement behavior introduced
220
+ earlier.
221
+ public_impact: none
222
+ decision: internal
223
+ stale: false
224
+ evidence_subject: "chore: fix format"
225
+ target_entry_id: entry-0006
226
+ notes:
227
+ Formatting and follow-up validation cleanup; no standalone public release
228
+ note.
229
+ - sha: f3679d382a40a07f8046129f536d43f62ebba4f5
230
+ source_ref: git:f3679d382a40a07f8046129f536d43f62ebba4f5
231
+ short_sha: f3679d3
232
+ changed_paths:
233
+ - tests/test_engine_registry.py
234
+ - tests/test_supertonicsynth_engine.py
235
+ - voicerender/engines/supertonicsynth.py
236
+ stats:
237
+ files_changed: 3
238
+ insertions: 237
239
+ deletions: 3
240
+ inspected: true
241
+ inspected_paths:
242
+ - tests/test_engine_registry.py
243
+ - tests/test_supertonicsynth_engine.py
244
+ - voicerender/engines/supertonicsynth.py
245
+ observed_behavior:
246
+ Supertonic request normalization now omits an unset seed while
247
+ preserving explicitly provided integer seeds and passing an unset seed as None
248
+ to runtime configuration.
249
+ public_impact: public
250
+ decision: accepted
251
+ stale: false
252
+ evidence_subject: "fix: supersonicsynth"
253
+ target_entry_id: entry-0007
254
+ notes: ""
255
+ - sha: 0581372760acc6ed4017c81ff8329be0e6452b0f
256
+ source_ref: git:0581372760acc6ed4017c81ff8329be0e6452b0f
257
+ short_sha: 0581372
258
+ changed_paths:
259
+ - voicerender/bundle_render_inspect.py
260
+ - voicerender/renderplan_render.py
261
+ stats:
262
+ files_changed: 2
263
+ insertions: 19
264
+ deletions: 18
265
+ inspected: true
266
+ inspected_paths:
267
+ - voicerender/bundle_render_inspect.py
268
+ - voicerender/renderplan_render.py
269
+ observed_behavior:
270
+ Refined bundle inspection request handling and corrected in-memory
271
+ render progress advancement for skipped selected occurrences.
272
+ public_impact: none
273
+ decision: internal
274
+ stale: false
275
+ evidence_subject: "chore: mypy"
276
+ target_entry_id: entry-0008
277
+ notes:
278
+ Follow-up implementation cleanup covered by the broader in-memory and inspection
279
+ API entry.
280
+ - sha: 38197830ba6c1adf66c05a4b53a5a462869ab9c1
281
+ source_ref: git:38197830ba6c1adf66c05a4b53a5a462869ab9c1
282
+ short_sha: "3819783"
283
+ changed_paths:
284
+ - tests/test_profile_roles_cli.py
285
+ stats:
286
+ files_changed: 1
287
+ insertions: 6
288
+ deletions: 3
289
+ inspected: true
290
+ inspected_paths:
291
+ - tests/test_profile_roles_cli.py
292
+ observed_behavior:
293
+ Adjusted profile-role CLI test expectations after the release
294
+ feature changes.
295
+ public_impact: none
296
+ decision: internal
297
+ stale: false
298
+ evidence_subject: "fix: pytest"
299
+ target_entry_id: entry-0009
300
+ notes: Test-only follow-up; no standalone public release note.
@@ -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-0001
8
+ release_version: v0.2.9
9
+ kind: fixed
10
+ summary:
11
+ Fixed book reports to enforce the shared 2 MiB limit and omit persisted execution
12
+ fingerprints
13
+ status: accepted
14
+ audience: null
15
+ scopes: []
16
+ source_refs:
17
+ - git:16913d40e23b25987b17274d02248d8456360c7e
18
+ paths:
19
+ - tests/test_render_book.py
20
+ - tests/test_renderplan_render.py
21
+ - voicerender/book.py
22
+ - voicerender/report_contract.py
23
+ - voicerender/variants.py
24
+ issues: []
25
+ prs: []
26
+ sources:
27
+ - git:16913d40e23b25987b17274d02248d8456360c7e
28
+ contributors:
29
+ - "@holgern"
30
+ breaking: false
31
+ internal: false
32
+ order: 1
33
+ ---
@@ -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: v0.2.9
9
+ kind: added
10
+ summary: Added optional PhononSynth support with model, voice, and prepared-text synthesis
11
+ status: accepted
12
+ audience: null
13
+ scopes: []
14
+ source_refs:
15
+ - git:7c5933312eb77b2d38fe3051086ca85f4e3f363a
16
+ paths:
17
+ - .github/workflows/tests.yml
18
+ - README.md
19
+ - pyproject.toml
20
+ - tests/test_engine_registry.py
21
+ - tests/test_phononsynth_engine.py
22
+ - tests/test_renderplan_input.py
23
+ - tests/wheel_smoke.py
24
+ - voicerender/engines/phononsynth.py
25
+ - voicerender/engines/registry.py
26
+ issues: []
27
+ prs: []
28
+ sources:
29
+ - git:7c5933312eb77b2d38fe3051086ca85f4e3f363a
30
+ contributors:
31
+ - "@holgern"
32
+ breaking: false
33
+ internal: false
34
+ order: 2
35
+ ---
@@ -0,0 +1,34 @@
1
+ ---
2
+ schema_version: 2
3
+ object_type: release_entry
4
+ versioning:
5
+ schema_version: 1
6
+ revision: 1
7
+ entry_id: entry-0003
8
+ release_version: v0.2.9
9
+ kind: added
10
+ summary: Added read-only bundle render inspection and in-memory RenderPlan APIs
11
+ status: accepted
12
+ audience: null
13
+ scopes: []
14
+ source_refs:
15
+ - git:d72b77973b675971c38158a3e51fe14011eb2004
16
+ paths:
17
+ - tests/test_bundle_inspect.py
18
+ - tests/test_render_book.py
19
+ - tests/test_renderplan_render.py
20
+ - voicerender/__init__.py
21
+ - voicerender/book.py
22
+ - voicerender/bundle_render_inspect.py
23
+ - voicerender/preflight.py
24
+ - voicerender/renderplan_render.py
25
+ issues: []
26
+ prs: []
27
+ sources:
28
+ - git:d72b77973b675971c38158a3e51fe14011eb2004
29
+ contributors:
30
+ - "@holgern"
31
+ breaking: false
32
+ internal: false
33
+ order: 3
34
+ ---
@@ -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: v0.2.9
9
+ kind: added
10
+ summary: Added static AkinVox multispeaker voices with language-aware Kokoro selection
11
+ status: accepted
12
+ audience: null
13
+ scopes: []
14
+ source_refs:
15
+ - git:81f5f519c5b17f49053da10705730ddf78a6c1ed
16
+ paths:
17
+ - README.md
18
+ - docs/renderprofile.md
19
+ - pyproject.toml
20
+ - tests/test_cli.py
21
+ - tests/test_kokoro_reference.py
22
+ - tests/test_preflight.py
23
+ - tests/test_profile_roles_cli.py
24
+ - tests/test_voice_descriptors.py
25
+ - voicerender/engines/kokoro.py
26
+ - voicerender/models.py
27
+ - voicerender/voices_api.py
28
+ issues: []
29
+ prs: []
30
+ sources:
31
+ - git:81f5f519c5b17f49053da10705730ddf78a6c1ed
32
+ contributors:
33
+ - "@holgern"
34
+ breaking: false
35
+ internal: false
36
+ order: 4
37
+ ---
@@ -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-0005
8
+ release_version: v0.2.9
9
+ kind: changed
10
+ summary:
11
+ Changed PhononSynth preflight to honor authoritative fit and reject incompatible
12
+ APIs
13
+ status: accepted
14
+ audience: null
15
+ scopes: []
16
+ source_refs:
17
+ - git:05e2511c2e77b9b4b20e1220397332b6bef08029
18
+ paths:
19
+ - .github/workflows/tests.yml
20
+ - README.md
21
+ - pyproject.toml
22
+ - tests/test_engine_registry.py
23
+ - tests/test_phononsynth_engine.py
24
+ - tests/test_preflight.py
25
+ - tests/test_renderplan_input.py
26
+ - voicerender/engines/phononsynth.py
27
+ issues: []
28
+ prs: []
29
+ sources:
30
+ - git:05e2511c2e77b9b4b20e1220397332b6bef08029
31
+ contributors:
32
+ - "@holgern"
33
+ breaking: false
34
+ internal: false
35
+ order: 5
36
+ ---