diff --git a/CHANGELOG.md b/CHANGELOG.md index 0a9ec5c..7f61295 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,8 @@ Follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) · versioned wi ## [Unreleased] ### Changed +- **Voice-inspector namespace migration.** The three-pane voice inspector now keeps its selection state in a private + scope while preserving `selectVoice` and exposing `window.TTVC.voiceInspector.select`. - **Character-library namespace migration.** Character rendering, detail views, avatar handling, and generation actions now live behind a private scope with compatibility exports and a `window.TTVC.characterLibrary` API. - **Character-sheet namespace migration.** Character-sheet extraction, prompt helpers, and Reader/Rehearser entry points now diff --git a/TODO.md b/TODO.md index 3061fd0..5f7efb7 100644 --- a/TODO.md +++ b/TODO.md @@ -127,7 +127,7 @@ architecture change: the larger Audiobook/Rehearser/style split. - [ ] Replace broad globals with namespaces such as `window.TTVC.audiobook`; pure leaves, Audiobook/Reader/Rehearser feature modules, Studio, and character-library persistence now use private scopes with explicit compatibility exports. Voice-library loading, rendering, benchmarking, import workflows, character-sheet extraction, and character-library - rendering/actions are now scoped; + rendering/actions, and voice-inspector selection are now scoped; remaining utility and legacy library UI modules still require the same responsibility-by-responsibility migration. - [x] Generate the feature-module list for `loader.js` and `scripts/minify.mjs` from one shared manifest; larger responsibility splits remain. diff --git a/VERSION b/VERSION index 9bbc347..a6db507 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.24.87 +1.24.88 diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md index fb1e165..067ac14 100644 --- a/docs/ARCHITECTURE.md +++ b/docs/ARCHITECTURE.md @@ -77,6 +77,7 @@ Done incrementally as global-scope ordered files (no ES-module change needed) - ✅ Voice-library loading, rendering, benchmarking, and import workflows use a private scope with live compatibility exports. - ✅ Character-sheet extraction and prompt helpers use a private scope with explicit compatibility exports and a namespace API. - ✅ Character-library rendering, detail, avatar, and generation actions use a private scope with compatibility exports and a namespace API. +- ✅ Voice-inspector selection state uses a private scope with a compatibility export and namespace API. - ✅ `static/css/resource-diagnostics.css` — isolated Performance/resource diagnostic panel styles. - ✅ `static/css/background-jobs.css` — isolated background-job history and retry-panel styles. - ✅ `static/css/voice-design.css` — isolated Voice Design form, samples, and preview-match styles. diff --git a/static/index.html b/static/index.html index 7c2bd03..24363f2 100644 --- a/static/index.html +++ b/static/index.html @@ -10,7 +10,7 @@ - + @@ -27,12 +27,12 @@ - - - - - - + + + + + + @@ -397,7 +397,7 @@ window.toggleNavTree = function(treeId, chevronId) { - + diff --git a/static/js/voice-inspector.js b/static/js/voice-inspector.js index 8b2aeac..3029580 100644 --- a/static/js/voice-inspector.js +++ b/static/js/voice-inspector.js @@ -1,4 +1,5 @@ // ── Voice inspector (3-pane workbench) ─────────────────────────────────── +(function (root) { let _selectedVoiceWrap = null; function selectVoice(wrap) { @@ -516,3 +517,9 @@ function selectVoice(wrap) { ].filter(Boolean); } + +root.selectVoice = selectVoice; +root.TTVC = root.TTVC || {}; +root.TTVC.voiceInspector = root.TTVC.voiceInspector || {}; +Object.assign(root.TTVC.voiceInspector, { select: selectVoice }); +})(window);