Commit Graph

11335 Commits

Author SHA1 Message Date
DeclineThyself ffe17bb870 Fixed layout thrashing when Stream Fade-In and Auto-scroll Chat are enabled. (#4791)
* Scheduling scrollChatToBottom after the animation frame prevents layout thrashing.

https://developer.mozilla.org/en-US/docs/Web/API/Window/requestAnimationFrame#return_value
https://gist.github.com/paulirish/5d52fb081b3570c81e3a#file-what-forces-layout-md

* Make frame request optional

---------

Co-authored-by: user <user@exmaple.com>
Co-authored-by: Cohee <18619528+Cohee1207@users.noreply.github.com>
2025-11-22 15:58:23 +02:00
Cohee a668012138 Z.AI: Add endpoint selection (#4789)
* Z.AI: Add endpoint selection
Closes #4778

* Add i18n support for Z.AI endpoint options

* Update message for captioning ext.

* Remove unused imports

* Add api-url autoconnect guard
2025-11-22 00:44:27 +02:00
Cohee c31d92c909 1.14.0 2025-11-21 23:29:20 +02:00
Cohee 9e0a1c7d73 Horde: Try get shared key info
Fixes #4787
2025-11-21 23:12:00 +02:00
Cohee 45931a334f QR: Add handler for group chat creation event 2025-11-21 22:34:42 +02:00
Cohee 9f7677c04b Check for message being edited in beforeunload 2025-11-21 15:47:00 +00:00
Cohee 1a061321fd Handle empty chat directories in /api/characters/chats 2025-11-21 02:45:47 +02:00
Cohee e092088ad9 Add extension in /api/chats/delete if missing 2025-11-21 02:33:41 +02:00
Leandro Jofré e8a75c3329 Feat/Link sampler selection lock to TC API Type (#4782)
* Update - Revert connection profile change TC commands load order

This change was made to prevent preset tied samplers from breaking, such thing doesn't exist anymore.

* Update - Unlink preset renaming logic from sampler selection lock

* Update - Link TC sampler selection lock to API Type

* Fix - Clean comments

* Update - Use localforage selectedSamplers and data selectsampler as main sampler selection storage

* Fix - ESLint errors

* Update - Change lock tooltip with correct description

* Fix - Move and await sampler select localforage initializer to finish

Tried to move it to the most reasonable place possible that allowed to make an await.

* Fix - Make loadTextGenSettings async to load API selected samplers
2025-11-21 01:57:23 +02:00
Cohee 35949cac01 Add dummy signatures to image and empty text parts 2025-11-20 22:18:56 +02:00
Cohee 2d9b0ad0a9 Don't parse inline images from reasoning blocks 2025-11-20 21:46:21 +02:00
Cohee 70e569f0ef google bonanza pro 2025-11-20 21:33:40 +02:00
Cohee 04f844577c Filter recent chats from deleted entities on welcome screen 2025-11-20 20:53:51 +02:00
Cohee 621b27063a Add root chat files to /recent 2025-11-20 20:52:59 +02:00
Cohee b55dd49746 Add server endpoint to call prompt processing on demand 2025-11-20 20:37:26 +02:00
Leandro Jofré 0d9a72becc Add option to keep manually selected samplers on API Type switch (#4692)
* Feat - Save and load manually selected samplers per preset

* Fix - Sync sampler popup with selected sampler state settings

* Fix - Prevent breaking visualization after disabling keep selected samplers

* Fix - ESLint errors in samplerSelect.js

* Fix - ESLint errors in textgen-settings.js

* Docs - Write JSDocs for new methods in textgen-settings.js

* Update - Make the reset button work individually per preset

* Fix - Trailing whitespace at the end of class selector

* Fix - Update tooltip information for force samplers toggle

* Fix - Prevent calling isSamplerManualPriorityEnabled a bajillion times

* Fix - Unbrick switch from manually-forced to non-manually-forced preset

This prevents samplers non controlled by [data-tg-type] from being sent to the shadow realm if they were previously hidden by [data-tg-samplers]. is_preset_switch is just to prevent breaking muscle memmory of users not using force manually selected samplers.

* Fix - Load manually selected samplers on connection profile switch

Changing preset does not update samplers ONLY IF force manually selection is disabled. Changing API before preset would update the samplers, but using the settings of the previous preset, due to preset being changed AFTER the API.

* Fix - Switch API Type controls in the API Connections panel

* Fix - ESLint errors in textgen-settings.js

* Fix - Update sampler selection only with textgenerationwebui as main API selected

* Styles - Change the sampler selection lock button icon to an actual lock.

* Fix - Await for sampler selection reset to finish

* Update - Normalize function name

* Update - Preserve manual sampler selections on preset renaming

* Fix - Properly reset sampler manual selections

* Update - Ensure selection reset displays API specific samplers

* Fix - ESLint errors

* Fix - Avoid modifying non-existent data

* Update - Move manual sampler control methods to samplerSelect.js

* Fix - Break circular file dependency between textgen-settings.js and samplerSelect.js

setting_names was unavailable during page load, throwing an error and preventing ST from loading.

* Update menu layout

* Remove pointless await

* Update param naming to camelCase

---------

Co-authored-by: Cohee <18619528+Cohee1207@users.noreply.github.com>
2025-11-19 22:56:15 +02:00
Cohee 945d727132 Hide "visibility only" notice for ZAI reasoning toggle 2025-11-19 22:23:19 +02:00
Cohee ef3996cbea Restyle "Image Swipe Behavior" block 2025-11-19 22:14:50 +02:00
QiyuanChen 5c974bd148 feat: add siliconflow chat provider (#4764)
* feat: add siliconflow chat provider

* fix: remove siliconflow seed handling

* fix: enable SiliconFlow image inlining from shared vision list

* fix: handle SiliconFlow model context limits and sizing

* fix: drop SiliconFlow reasoning effort handling since controls are hidden

* fix: parse SiliconFlow reasoning in streaming and non-streaming

* fix: add missing comma in supported models list

* Remove seed from HTML template

* Combine streamed reasoning parsing blocks

* Update logo image

* Unhide image inlining controls

---------

Co-authored-by: Cohee <18619528+Cohee1207@users.noreply.github.com>
2025-11-19 22:10:29 +02:00
Cohee 05a963a637 Add metadata flag to api/chats/recent 2025-11-19 20:36:52 +02:00
Cohee 69de212cc3 Add extensionless file name to /chats endpoints 2025-11-19 20:34:12 +02:00
equal-l2 62bcfd3de0 Add Gemini 3 for Vertex AI (#4777) 2025-11-19 17:35:08 +02:00
Cohee 73cedc115d Image swipe is back 🗣️🔥 2025-11-19 09:08:58 +00:00
Cohee 6c43ab64b5 Add metadata flag to api/characters/chats 2025-11-19 00:02:52 +02:00
Cohee 7448094f1b Add /edit-avatar endpoint 2025-11-18 21:46:29 +02:00
Cohee 9d9a8f1dd1 Jeremiah the Third 2025-11-18 20:19:04 +02:00
Cohee dc2624cdf5 Fix npm audit 2025-11-18 19:50:13 +02:00
Cohee af0cdec110 A 500 billion dollar startup can’t filter API payload fields 2025-11-17 20:08:29 +02:00
Cohee 1c4a918e43 gpt-5.1 2025-11-16 23:18:10 +02:00
Cohee b10f680371 Preserve media playback state when running appendMediaToMessage (#4771)
* Preserve media playback state when running appendMediaToMessage

* Better selector specificity

* Fix local variable name

* Move typedef to global.d.ts

* Check for readyState on save/restore

* Only check for currentSrc on restoration callback
2025-11-16 21:56:53 +02:00
Cohee c7040d2be4 Move img.swipe notice block up 2025-11-16 21:26:53 +02:00
Serena e7af479427 Feature: allows sorting tags by most used (#4768)
* add sorting tags by most used

* Fix whitespaces

* Code review updates

* Remove commented code

* Fix capitalization in comment

* Apply review suggestion

* Simplify template init

* Reformat

* Add documentation for appendViewTagToList and printViewTagList functions

* Reprint renamed tags regardless of sorting mode

---------

Co-authored-by: Cohee <18619528+Cohee1207@users.noreply.github.com>
2025-11-16 21:16:15 +02:00
Cohee 1baaa26729 Vertex: Add Vertex AI-specific safety setting (#4770)
Closes #4455
2025-11-16 18:26:03 +02:00
Cohee 306fc3f408 Gemini: Pass non-success response content to frontend 2025-11-16 17:55:53 +02:00
Cohee b99ccc3f0c OpenAI: Add Sora 2 API (#4748)
* OpenAI: Add Sora 2 API

* Add duration control

* Support client generation abort

* Reduce poll log amount

* Simplify selector

* Simplify model-specific control handling
2025-11-16 17:49:21 +02:00
Cohee f8c4795b4a Bump anti-troll tags limit
Closes #4763
2025-11-16 15:57:30 +02:00
Wolfsblvt 19ae4e7cc1 feat: add max-height and scrolling to world entry key input fields (#4769)
- Added 160px max-height to select2 multiple selection, primary key, and secondary key text areas in world entries
- Enabled vertical scrolling with hidden horizontal overflow for better UX with long content
2025-11-16 15:42:07 +02:00
Cohee 3af1622b38 Fix npm audit 2025-11-16 15:30:29 +02:00
Wolfsblvt 81367629fe Feat: Improve multiline input handling in popups (#4756)
* feat: improve multiline input handling in popups

- Added Ctrl+Enter requirement for submission in multiline input popups to prevent accidental sends
- Exported PopupUtils class for external use

* refactor: remove redundant higher/different rows from input popups

- Removed rows: 2 from callGenericPopup calls where default behavior is sufficient
- Increased rows from 2 to 4 in caption extension for better multiline input experience
2025-11-12 21:20:13 +02:00
Wolfsblvt bc06f3e3e0 Refactor: make whitelist validation a bit more robust (#4757)
* refactor: extract IP whitelist validation into helper function

- Added isIPInWhitelist helper with error handling for individual whitelist entry checks
- Replaced inline whitelist matching logic with reusable function calls
- Added JSDoc type annotations and error logging for failed IP matching attempts

* refactor: simplify whitelist validation with upfront filtering

- Moved IP validation to startup time instead of per-request checking
- Extracted validateWhitelist function to filter invalid entries once at initialization
- Simplified isIPInWhitelist by removing redundant error handling after validation

* fix: correct IP whitelist matching to use parsed CIDR notation
2025-11-12 21:13:58 +02:00
Wolfsblvt 6963f5cdd7 chore: add test-results directory to gitignore 2025-11-12 00:12:21 +01:00
Serena a0bff84e4e Fix: Prevent data loss on bulk regex move to scoped scripts (#4760)
* Fix: Prevent data loss in regex bulk move

* prevents moving to scoped scripts with group selected for bulkedit
2025-11-11 15:20:16 +02:00
Cohee dc4e0270e7 Fix OpenRouter embeddings URL
#4736
2025-11-11 13:16:04 +00:00
Wolfsblvt b0dd267b9e feat: enhance HTML escaping to include single quotes (#4755) 2025-11-10 00:33:01 +02:00
Madobe Ichika eb0706d294 Raise max response length to 128k for GPT-5 models (#4753) 2025-11-09 13:30:23 +02:00
Cohee 94b95013bc Add audio/video inlining for OpenRouter (#4751)
* Add OpenRouter inlining support for video and audio

* Refactor modality checks
2025-11-08 17:39:31 +02:00
Cohee 38679897c6 Add captioning for video attachments (#4749)
* Add captioning for video attachments

* Unify error toast titles

* Add MEDIA_SOURCE enum and update media handling to include source information

* Unify attachment handling logic

* Add error handling for auto-captioning failures

* Use string formatting for console error
2025-11-08 02:07:28 +02:00
Cohee 4fcdec47f4 Fix PPP for audio attachments 2025-11-08 01:04:05 +02:00
Cohee 5837f28599 TC: Allow setting null JSON schema (#4746)
* TC: Allow setting empty JSON schema

* Fix check for llamacpp schema

* Handle grammar/schema for Aphrodite

* Conditional include for guided_json

* Update default presets with null value

* Conditional include into payload for grammar/schema
2025-11-07 23:39:52 +02:00
Cohee 09b8d59f4d Moonshot: Load models list from endpoint 2025-11-06 22:51:40 +02:00