Skip to content

v6.13.8 — Profiles, Crash Log, GPU Fix + Slash/Macro Audit

Latest

Choose a tag to compare

@xenofei xenofei released this 25 Apr 06:04
· 64 commits to main since this release

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.customPanels are 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-internal err() 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 IntersectionObserver pause when off-screen
  • Removed mix-blend-mode from dashboard layers (was forcing per-frame compositor work)
  • Weather overlay properly torn down on disable instead of left attached
  • 13 will-change: transform declarations 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-refresh slash commands
  • Fixed: /sp-toggle now handles custom panels case-insensitively
  • Fixed: /sp-export includes profiles in payload
  • Fixed: /sp-debug honors maxSnapshots instead of hardcoded 30
  • 50 regression tests cover the dispatcher + every synchronous handler

Macros:

  • Fixed: sp_characters returned '' when charactersPresent was 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":

  1. Wiki only iterated latest.characters — now walks the cumulative roster across all snapshots
  2. Pipeline non-delta path silently dropped off-scene characters every periodic refresh — now preserves
  3. renderExisting recovered 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: auto gotcha
  • 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.