feat: auto-derive script name as SOURCE for Rehearser-cloned voices (v1.12.8)
Voices cloned from a Script Rehearsal now show the script title in the SOURCE column without requiring manual entry. `_displaySource()` parses the note field (`Rehearser · <title> · <character> — …`) and returns the title segment as the source. Explicit `origin` values still take priority. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
0bc3acc2ee
commit
0c0bbb5ffd
@ -9,6 +9,13 @@ Follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) · versioned wi
|
||||
|
||||
---
|
||||
|
||||
## [1.12.8] — 2026-06-27
|
||||
|
||||
### Changed
|
||||
- **SOURCE column auto-derives script name for Rehearser clones**: voices cloned from a Script Rehearsal now automatically display the script title (e.g. `Script`, `her`) in the SOURCE column, extracted from the note field (`Rehearser · <title> · <character> — …`). No manual entry needed; setting an explicit `origin` still takes priority.
|
||||
|
||||
---
|
||||
|
||||
## [1.12.7] — 2026-06-27
|
||||
|
||||
### Added
|
||||
|
||||
@ -26,7 +26,7 @@
|
||||
|
||||
<!-- ── Core styles (local — no CDN dependency for first paint) ────────── -->
|
||||
<link rel="stylesheet" href="/static/vendor/mdi/materialdesignicons.min.css">
|
||||
<link rel="stylesheet" href="/static/style.css?v=1.12.7">
|
||||
<link rel="stylesheet" href="/static/style.css?v=1.12.8">
|
||||
|
||||
|
||||
<!-- ── Flag icons — non-blocking (loaded async, icons appear after JS) ── -->
|
||||
@ -336,7 +336,7 @@
|
||||
<script src="/static/vendor/wavesurfer-regions.min.js"></script>
|
||||
|
||||
<!-- loader.js: fetches sections → loads JS modules → removes skeleton -->
|
||||
<script src="/static/loader.js?v=1.12.7"></script>
|
||||
<script src="/static/loader.js?v=1.12.8"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@ -76,6 +76,11 @@ function initBenchmarkSampleControls() {
|
||||
// Explicit origin field wins; fallback to any recognised tag value.
|
||||
function _displaySource(v) {
|
||||
if (v.origin) return v.origin;
|
||||
if (v.note) {
|
||||
// Notes from Rehearser clones follow: "Rehearser · <script title> · <character> — …"
|
||||
const m = v.note.match(/^Rehearser\s*·\s*(.+?)\s*·/);
|
||||
if (m) return m[1].trim();
|
||||
}
|
||||
if (v.tag) {
|
||||
const tags = v.tag.split(',').map(t => t.trim().toLowerCase());
|
||||
if (tags.includes('fish-audio') || tags.includes('fishaudio')) return 'fish-audio';
|
||||
|
||||
Loading…
Reference in New Issue
Block a user