12 releases worth of work since v6.11.9. The big changes:
🎭 Prompt + Schema Profiles (closes #15)
Each profile is a self-contained {schema, systemPrompt, panels, fieldToggles, dashCards, customPanels} bundle. Switch profiles via dropdown to swap setups (e.g. Medieval Fantasy ↔ Pokemon ↔ Modern Slice-of-Life) without manually editing prompts and schemas.
- Settings → Prompts → new "Profile" section with active dropdown + new/duplicate/rename/export/import/delete buttons
- Full Profile Manager overlay with inline actions, "Custom Panels" tag tooltip, Clear Panels per-row action
- Per-chat override — pin a different profile for one specific chat
- Read-through, not destructive — switching is
s.activeProfileId = newId, no copy, no risk of mid-edit data loss - Migration is automatic — your existing
s.schema+s.systemPrompt+s.customPanelsare wrapped into a "Default" profile on first load. Nothing lost. - Import safety: validates schema as JSON object, auto-suffixes name collisions
/sp-profile [name]slash command for chat-input switching
🐞 Combined Crash Log + Debug Inspector (closes #13)
- Captures errors from both ScenePulse AND host SillyTavern (
window.error,window.unhandledrejection, ScenePulse-internalerr()calls — tagged by source) - Persistent across reloads (in-memory + localStorage + server file flush)
- Settings → Advanced → Debug → 🔍 Debug Inspector opens a tabbed overlay:
- Activity — live debug log with filter/search/copy/export
- Last Response — pretty-printed raw LLM JSON
- Crashes — severity + source filters, expand-for-stack, "Report on GitHub" per row pre-fills a new-issue template
Replaces the previous SP Log + View Log + Last Response + Crash Log buttons.
⚡ 80% GPU at idle, fixed (fixes #14)
A reporter on RTX3060 saw extreme GPU usage just from loading the extension. Two specialist agents traced it to the "Water Droplet Matrix" decorative canvas in the Time dashboard card.
- WDM canvas gated behind a new "Reduce visual effects" toggle (Settings → General) AND
prefers-reduced-motion - Throttled 60→20fps with
IntersectionObserverpause when off-screen - Removed
mix-blend-modefrom dashboard layers (was forcing per-frame compositor work) - Weather overlay properly torn down on disable instead of left attached
- 13
will-change: transformdeclarations removed from weather particles
Expected: 80% → ~25% on defaults, 80% → near-zero with new toggle on.
🧪 Slash Command + Macro audits (closes #7, #8)
Both subsystems were marked "experimental needs further testing" since v6.3.6. Audited, fixed, locked behind regression tests.
Slash commands:
- New:
/sp-profile,/sp-refreshslash commands - Fixed:
/sp-togglenow handles custom panels case-insensitively - Fixed:
/sp-exportincludes profiles in payload - Fixed:
/sp-debughonorsmaxSnapshotsinstead of hardcoded30 - 50 regression tests cover the dispatcher + every synchronous handler
Macros:
- Fixed:
sp_charactersreturned''whencharactersPresentwas empty[](truthy-array gotcha) - Added:
sp_relationships,sp_main_quests,sp_side_quests,sp_quest_count,sp_char_count,sp_active_profile - Every handler wrapped in try/catch — runtime errors now log to Crash Log instead of breaking ST's prompt build
- 50 regression tests cover all handlers, both registration APIs, and error containment
📚 Character Wiki + Persistence Overhaul (fixes #11)
Three confirmed root causes for "characters disappearing from wiki":
- Wiki only iterated
latest.characters— now walks the cumulative roster across all snapshots - Pipeline non-delta path silently dropped off-scene characters every periodic refresh — now preserves
renderExistingrecovered only ONE prior snapshot when ScenePulse activated mid-chat — now walks every AI message chronologically and replays through delta-merge
38 regression tests cover the four scenarios end-to-end.
🪟 Polish
- Panel Manager no longer collapses to one line (fixes #12)
- Stuck scene transition overlay fix (fixes #10)
- Meter bar widths now stable across deltas at every resolution (mobile / 1366×768 / desktop / QHD / 4K) — was a CSS grid
min-width: autogotcha - Meter status labels capped at 4 words with hover tooltip showing the full text
- Portrait upload from Character Wiki avatars (v6.12.3)
- Crash Log + Debug Inspector overlays no longer dismiss the settings panel underneath
- Single-dialog enforcement so rapid-clicking Delete doesn't stack confirms
🧪 Test coverage
559 regression test cases across 15 suites. Every release runs the full suite. Notable additions in this stretch:
| Suite | Cases | Covers |
|---|---|---|
issue-7-slash-commands |
50 | Dispatcher routing, every synchronous handler, custom panel toggle |
issue-8-macros |
50 | All 18 macros, both registration APIs, error containment |
issue-11-wiki-persistence |
38 | Pipeline preservation, cumulative roster, mid-chat backfill |
issue-13-crash-log |
37 | Capture, dedup, ring eviction, persistence round-trip, logger bridge |
issue-15-profiles |
52 | Migration, CRUD, per-chat override, import safety, export shape |
Full changelog
See CHANGELOG.md for entries v6.11.9 through v6.13.8.