Commit graph

52 commits

Author SHA1 Message Date
bal-spec
96f528b957 fix: group chat character pickers always select first character (#14) 2026-04-19 12:20:14 -07:00
bal-spec
85fc0368fa chore: release v2.1.10
- Bump version to 2.1.10
- Enable auto_update and set homePage in manifest.json
- Add CHANGELOG entry for truncation fix

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 21:43:12 -07:00
bal-spec
2fc514c0b2 feat: add connection type selector to Setup Wizard
Step 1 of the wizard now offers a toggle between "Dedicated API"
(default) and "Connection Profile" before configuring the LLM.
Previously, Connection Profile was only available in the Settings
Modal after completing the wizard.

- Source toggle buttons with active/inactive styling
- Profile section: dropdown via CMRS.handleDropdown(), Test Connection
- Step 3 summary adapts to show profile name or provider/model
- Updated getting-started.md with both paths and new screenshot
- Updated CHANGELOG.md with improvements and tooltip fix

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 22:12:39 -07:00
bal-spec
6cf5e9ee6f fix: stack modal nav vertically on mobile (#8)
Settings and Troubleshooter modals used a side-by-side flex layout
(130px nav + content) that left the content panel too narrow on phone
screens. In phone mode, the nav now renders as horizontal tabs above
the content, giving it the full popup width.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 20:39:54 -07:00
bal-spec
63ed21cad2 fix: skip swipes in extraction counter (#9)
Swipes re-render an existing message slot without adding a new message,
but CHARACTER_MESSAGE_RENDERED fired for them and incremented
messagesSinceExtraction — causing extraction to trigger early.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 20:32:26 -07:00
bal-spec
5a328abb35 feat: add Connection Profile as 4th extraction source (#7)
Lets users reuse saved SillyTavern connection profiles for memory
extraction via ConnectionManagerRequestService, instead of configuring
a separate dedicated API. Includes profile picker dropdown, test
connection, system prompt override, and health check integration.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 20:34:30 -07:00
bal-spec
719b38b746 docs: changelog for NanoGPT CORS fix
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 21:39:47 -07:00
bal-spec
6d3bab686e fix: open conversion preview directly from Troubleshooter convert button
The convert button in the Data Bank file browser previously just set a
hidden form value and showed a toast telling the user to "open the
Convert section," which was confusing. Now it directly opens the
conversion preview dialog.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 23:04:23 -07:00
bal-spec
52e8dc6a75 docs: changelog for custom base URL fix
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 14:55:34 -07:00
bal-spec
a75cdd8794 fix: protect recent messages boundary not passed to message collector (#3)
The protection buffer calculated a reduced effectiveEnd but passed the
original endIndex (null) to collectRecentMessages(), which used
chat.length — extracting the "protected" messages anyway.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 20:01:02 -08:00
bal-spec
bae290d306 feat: auto-load Prompt Breakdown at top of injection viewer
Removes the Context Budget section entirely. The injection viewer now
shows a Prompt Breakdown at the top that loads automatically on open —
no collapsed panel to discover or click. Exact per-category token counts
(System, Char card, Lorebook, Data Bank, Examples, Chat history) come
from ST's Prompt Itemization; falls back to injection-only estimates for
snapshots from previous sessions.

Tips popup expanded with a Char Card / System Prompt section and updated
intro text to reflect the full-prompt breakdown.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-07 11:07:37 -08:00
bal-spec
e445bb4723 feat: unify Context section in injection viewer, fix WI token count
Combines "Context Budget" and "Prompt Breakdown" into a single "Context"
section at the top of the injection drawer. The header shows the stacked
bar and summary; expanding loads the full breakdown — exact counts from
ST's Prompt Itemization when available, or estimated fallback for old
snapshots.

Fixes a long-standing inaccuracy where Lorebook token estimates were
computed by summing truncated entry content (200 chars/entry from
WORLD_INFO_ACTIVATED), producing large overestimates. Now uses the actual
injected worldInfoString from itemizedPrompts, matching the prompt
breakdown numbers. Data Bank char count similarly updated to use
dataBankVectorsString. Labels changed to "Data Bank" throughout to match
ST terminology.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-07 10:51:16 -08:00
bal-spec
83bbc042a4 feat: add token budget panel to injection viewer (v2.1.4)
Adds a "Context Budget" collapsible section to the per-message injection
viewer showing estimated token usage across CharMemory, Lorebook, and other
extension prompts as a horizontal stacked bar against the model's context
limit. Expanding the section reveals a per-source breakdown table with a
"Tips to reduce" link that opens an actionable guidance popup.

Also adds:
- ~N tk hints in CharMemory, Lorebook, and Extension Prompts headers
- Token cost + injection position/depth metadata in EP and WI cards
- depth now captured in extension prompt snapshots (was missing)
- Red/yellow health notes for context overflow and heavy injection (>40%)
- getMainContextMaxTokens() reads oai_settings or textCompletionSettings
- estimateTokens() helper (~4 chars/token)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-07 09:20:15 -08:00
bal-spec
aee4bc3898 feat: unify Memory Manager with shared block editor
Replace the Memory Manager's custom per-bullet popup editing with the
same createMemoryEditor + renderConsolidatedCards used by Consolidation,
Conversion, Reformat, and the Data Bank browser. Adds inline editing,
undo, add/delete blocks and bullets, and uses Save/Cancel buttons.

Group chats now show a character picker instead of all members inline.

Also converts the Data Bank file editor from POPUP_TYPE.TEXT with an
inline Save button to POPUP_TYPE.CONFIRM with Save/Cancel, matching
all other editor dialogs.

Removes dead code: editMemory, deleteMemory, deleteBlock, reindexManager
functions and associated CSS rules.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 20:17:50 -08:00
bal-spec
8025aabc10 fix: handle self-closing memory tags from LLMs like GLM-4.7
Some models produce <memory chat="..."></memory> with bullets after the
closing tag instead of inside it. The consolidation parser returned an
empty result, preventing the dialog from appearing. The extraction
pipeline had the same vulnerability but degraded more gracefully.

Both parsers now use three-tier matching: normal content-inside-tags,
then content-after-self-closing-tags, then whole-response fallback.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 20:03:07 -08:00
bal-spec
abf96fb6e2 fix: use Save/Cancel buttons on editor dialogs
Consolidation, conversion, and reformat dialogs now show explicit
Save/Cancel instead of ambiguous Yes/No defaults.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 19:53:24 -08:00
bal-spec
916530e36a fix: clearer warning when all group members are disabled
When a group has members but all are in disabled_members, the Activity
Log now says "all group members are disabled in SillyTavern — re-enable
at least one in the group settings" instead of the generic "no targets
found". Verified locally that this is the root cause of issue #4.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-05 18:28:18 -08:00
bal-spec
091f4de46c diag: add generation mode to group debug report
Adds the group's generation_mode value to the Group Debug section of
the Diagnostic Report. This is the key field needed to diagnose issue
#4 — groups using Append (with disabled) mode (mode 2) have all
members in the disabled list by design, which was not visible before.

Also logs generation_mode in the console warning when active member
count is zero.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-05 08:45:07 -08:00
bal-spec
c1f0fabdd0 fix: notify users of prompt updates when upgrading from 1.x
Users who customized a prompt in 1.x and upgraded to 2.x were never
notified of default prompt changes. checkPromptVersions() now detects
a customized prompt with no version record and sets a 'pre-2.0'
sentinel so hasPromptUpdate() fires. A toast notification appears 2s
after load whenever any prompt has a pending update.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-04 21:16:15 -08:00
bal-spec
3e1e461369 docs: changelog for v2.1.2 fixes 2026-03-04 09:16:30 -08:00
bal-spec
9f631add8e feat: add "Protect recent messages" option for auto-extraction
New toggle in Settings > Extraction that excludes the most recent N
messages from auto-extraction (default: 4). This prevents a feedback
loop where just-extracted memories constrain swipes and regenerations
— the model would see memories about events that just happened and
force the swipe to repeat the same plot.

Skipped messages are picked up on the next extraction cycle as newer
messages push them out of the buffer zone. Extract Now and Extract
Here are unaffected (manual actions process the full range).

Closes #3

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 17:30:51 -08:00
bal-spec
7e1d7b8740 chore: bump version to 2.1.1
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 15:34:35 -08:00
bal-spec
0010f0ef98 docs: update for v2.1.0 beta, add tests, clean up repo
Docs:
- troubleshooting: downgrade file vectorization and no-memories-injected
  checks from RED to YELLOW (false alarm fixes from v2.0.1)
- managing-memories: update topic tag example to include character name
- injection-viewer: mention Display Mode setting for tablet/phone
- README: add tablet & phone support to Feature Highlights with beta
  testing call-to-action
- getting-started: add backup reminder section
- changelog: add nudge banner button rename

Tests:
- Add escaping.test.js (13 tests) and format-detection.test.js (24 tests)

Repo:
- Add .gitignore for screenshots, .DS_Store, .playwright-mcp, drafts

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 15:01:45 -08:00
bal-spec
8d248b04cf docs: update changelog for display mode, phone layout, and mobile fixes
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 14:33:02 -08:00
bal-spec
56688a81a0 feat: add tablet/touch mode with floating dashboard panel (v2.1.0)
On touch devices, the dashboard opens as a centered non-modal floating
panel instead of expanding in the narrow sidebar. DOM relocation moves
sidebar content into the panel (and back on close) so all event handlers
survive without duplication. Capturing-phase event listener intercepts
ST's drawer toggle without modifying ST core code.

- Tri-state setting: auto (detect touch) / always on / off
- 44px touch targets for all buttons and icons (Apple HIG)
- Dismiss via X button, tap outside, or swipe down
- Popup visibility guard prevents panel close when ST modal is open
- Settings Modal toggle in Advanced section
- Wizard completion opens tablet panel when in tablet mode

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 11:52:06 -08:00
bal-spec
37b2255b30 fix: downgrade false-alarm health checks, sanitize prompts, bump to v2.0.1
- File vectorization: change from red to yellow when file exists but
  has 0 vector chunks (VS lazily indexes on next generation)
- No memories injected: change from red to yellow in health checks and
  injection viewer — zero matches is normal when conversation topic
  doesn't relate to stored memories
- Sanitize DO NOT EXTRACT examples to use neutral language
- Bump MODULE_VERSION and manifest.json to 2.0.1
- Add 2.0.1 changelog section

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 10:00:06 -08:00
bal-spec
b3d0447369 docs: document Data Bank editor Undo button in changelog and user guide
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 22:40:00 -08:00
bal-spec
509ff3bb11 docs: add find & replace to changelog and managing-memories guide
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 22:31:29 -08:00
bal-spec
def18434ba chore: v2.0.0 cleanup — remove old tab UI, update docs
Remove dead CSS/JS from old tab-based layout:
- Delete .charMemory_promptSection, .charMemory_formatSourceRow,
  .charMemory_diagnosticsContent, .charMemory_miniLog/miniLogContent,
  .charMemory_bottomDiagnostics, .charMemory_recommendationHeader/Body/Table
- Remove updateDiagnosticsDisplay() (~180 lines, never called)
- Remove dead handlers: #charMemory_consolidate, #charMemory_undoConsolidate,
  #charMemory_verboseLog, .charMemory_recommendationHeader, batch button
  direct-bind handlers (redundant with showBatchPopup wiring)
- Clean up loadSettings() — remove 20 jQuery no-ops targeting removed elements

Update CLAUDE.md for v2.0 architecture (dashboard + modals).
Add v2.0.0 changelog. Bump manifest to 2.0.0.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 09:14:29 -08:00
bal-spec
c6ca721220 docs: add v1.8.0 changelog, bump version
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 21:48:13 -08:00
bal-spec
ec8d9c665b feat: v1.7.0 — retrieval-optimized memory format
Topic-tagged memory blocks for better vector search discrimination.
Unified Convert tool (merge of Convert + Reformat). Vectorization
docs, prompt design rationale, and recommended VS settings.

- Extraction prompts produce [Names — description] topic tags
- 5-bullet limit per block (down from 8)
- Named participants required (no "a friend" or "someone")
- Conversion prompt rewritten for topic-tagged format
- Convert tool: source picker for current memories or Data Bank files
- Diagnostics: recommended VS settings card
- Health checks for retrieve chunks and score threshold
- Multi-tag block splitting
- Fix: robust parsing of attributed <memory> tags
- Fix: hide redundant mini-log on Log tab

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 16:36:48 -08:00
bal-spec
6960bfe3df docs: update CLAUDE.md and changelog for automated testing
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 22:14:31 -08:00
bal-spec
869ae19899 docs: update changelog for v1.6.1 with all fixes
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 21:10:35 -08:00
bal-spec
9615c8d683 feat: add combined Local Server preset for Ollama, KoboldCpp, llama.cpp, LM Studio
Replace the standalone Ollama preset with a unified "Local Server" preset
that supports all four local backends. Adds allowCustomUrl so users can
point at any port or LAN IP. Existing Ollama users are auto-migrated with
their URL, model, and system prompt preserved.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 20:38:03 -08:00
bal-spec
d958399ac4 docs: update screenshots and add injection viewer/health score docs
Recapture 9 outdated screenshots with focused cropping for legibility.
Add 3 new screenshots for injection viewer and health score features.
Update CHANGELOG with full 1.6.0 feature list including health score.
Add health score references to Vector Storage section in README.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 20:41:55 -08:00
bal-spec
6ca5f57dd4 chore: bump version to 1.6.0, add injection viewer changelog
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 15:39:03 -08:00
bal-spec
cb851ac98c docs: add v1.5.0 changelog entries, update README with convert/format docs and screenshots
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 13:13:40 -08:00
bal-spec
3e89637592 chore: bump version to 1.5.0, update changelog
New features: Tools tab with pill sub-nav, memory file format settings
(block/bullet/custom chunking), Convert/Import tool with heuristic
and LLM parsing.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 12:12:16 -08:00
bal-spec
6f90894905 docs: add screenshots for model picker, group avatars, and prompt title
Updated group stats bar screenshot to show new "Group: [avatars]" format.
Added model search screenshot showing filter-as-you-type dropdown. Added
group prompt title screenshot. Updated README text to mention searchable
model picker and context-aware prompt labels.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 22:02:19 -08:00
bal-spec
b36ee17ec0 feat: searchable model picker, group avatars in stats bar, prompt titles
Three UX improvements:
- Model dropdown replaced with searchable text input (filter by typing,
  keyboard navigation, optgroup support for NanoGPT)
- Group chats show character avatar thumbnails in the stats bar with
  tooltip listing per-character memory filenames
- Extraction prompt labels now show "(1:1 chats)" or "(group chats)"

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 21:52:11 -08:00
bal-spec
b803a9ca07 docs: update README and changelog for v1.4.0 — group chat support
Add Group Chats section to README covering extraction, view/edit,
consolidation, pin memory, per-character filenames, and reset behavior.
Update existing sections (consolidation, per-chat, reset, technical
reference) with group-specific notes. Add reverse chronological display
to View/Edit. Bump version to 1.4.0.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 23:49:51 -08:00
bal-spec
342ef808ec docs: document merge toggle and date/time extraction in changelog and README
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 21:08:22 -08:00
bal-spec
a33cc770eb docs: update changelog with all post-Task-6 improvements
Add consolidation busy indicator, always-visible diagnostics,
resizable activity log, and panel layout improvements. Fix
tab name to Batch Extraction.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 22:25:56 -08:00
bal-spec
8dc4f2c1c9 fix: editingSet index corruption, quote escaping in memory tags, prompt sync
- Re-index editingSet after block deletion to prevent stale indices
- Escape/unescape quotes in <memory> tag attributes to prevent
  file corruption from user-edited theme names
- Sync panel prompt UI after consolidation dialog closes
- Fix changelog entry that still referenced removed Custom preset

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 21:55:44 -08:00
bal-spec
6571d9f141 feat: complete UX refinements — migration, cleanup, changelog
Add settings migration from old consolidationPrompt to new
per-preset consolidationPrompts system. Update changelog with
all consolidation UX improvements for v1.3.0.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 21:52:21 -08:00
bal-spec
def78b8d80 refactor: extract shared renderEditableCards, update changelog for panel restructure
Deduplicate the editable card renderer used by both buildConsolidationDialog
and refreshEditor. Update changelog with tabbed layout and card editor entries.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 22:53:26 -08:00
bal-spec
972c446c21 feat: complete consolidation UX improvements (v1.3.0)
- Add box-sizing to consolidation editor textarea
- Bump version to 1.3.0
- Update changelog with new consolidation features

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 22:15:36 -08:00
bal-spec
2f59db7798 docs: refine auto-consolidation changelog wording
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 21:13:41 -08:00
bal-spec
dfedad00dd docs: add backup warning, update consolidation docs, bump to 1.2.1
- Add "Before You Start" section advising users to back up Data Bank files
- Clarify consolidation is manual-only with preview, confirmation, and undo
- Note that undo is session-only — back up before consolidating
- Add 1.2.1 changelog entry for auto-consolidation removal
- Bump version to 1.2.1

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 21:11:06 -08:00
bal-spec
21f38f91b3 docs: update changelog for Connect/Test Model and auto-hide API key
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 15:43:29 -08:00