- Added support for template schemas in the configuration editor, allowing users to define and manage additional parameters like temperature, top_p, and max_tokens.
- Improved UI components in ProviderModelsPanel and ObjectEditor for better user interaction, including new configuration buttons and enhanced input handling.
- Updated localization files to include new configuration options.
* feat: 添加模板列表配置支持,包含验证和编辑功能
* refactor(dashboard): extract ConfigItemRenderer to eliminate code duplication
- Create ConfigItemRenderer.vue to centralize rendering logic for various config types (string, int, bool, selectors, etc.)
- Refactor TemplateListEditor.vue to use the new renderer for entry fields
- Refactor AstrBotConfig.vue and AstrBotConfigV4.vue to simplify metadata-driven rendering
- Resolve circular dependency by decoupling TemplateListEditor from the base renderer
* ruff format
* refactor: improve config validation and fix unidirection data flow
- Frontend: Fix one-way data flow in TemplateListEditor.vue by cloning entries before applying defaults and emitting updates instead of in-place modification.
- Frontend: Remove unused TemplateListEditor import in ConfigItemRenderer.vue.
- Backend: Refactor validate_config in config.py by extracting _expect_type and _validate_template_list helpers to reduce nesting and complexity.
* perf(satori): increase websocket max message size to 10MB
Add max_size parameter to websocket connection to handle larger messages
and prevent connection drops when receiving large payloads from Satori platform.
* chore: ruff format
---------
Co-authored-by: Soulter <37870767+Soulter@users.noreply.github.com>
* perf: support extended thinking for Anthropic, DeepSeek reasoning mode, and Gemini text part thought signatures to improve multi-turn reasoning performance.
* chore: remove verbose
* perf
* refactor: remove special tools handling for deepseek-reasoner model in openai source
* fix: improve error handling and logging in InternalAgentSubStage processing
* refactor: remove unused reasoning content from Gemini source processing
* refactor: enhance modality determination logic in useProviderSources
Co-authored-by: kawayiYokami <289104862@qq.com>
* fix: handle None values in _extract_usage to prevent TypeError
Some LLM providers (especially API proxies) may return None for
prompt_tokens and completion_tokens in the usage response. This
causes a TypeError when attempting arithmetic operations.
Added null checks with fallback to 0 for both prompt_tokens and
completion_tokens before performing calculations.
* refactor: use explicit None check and reuse cached variable
- Use `is None` instead of `or 0` to avoid masking unexpected falsy values
- Reuse `cached` variable for `input_cached` to avoid redundant calculation
* ruff format
---------
Co-authored-by: Soulter <905617992@qq.com>
* feat(command): persist aliases on rename and apply to runtime filter
* feat(dashboard-api): support aliases in rename command endpoint
* feat(dashboard-ui): add alias editor to rename command dialog
* feat(dashboard-ui): enhance alias editor UI in rename dialog
- Revised the subtitle in the provider feature localization files to provide a more detailed description of functionalities, including chat model configuration and third-party service integrations.
- Expanded model name checks to include specific Gemini 2.5 and 3 variants, ensuring correct configuration for thinking parameters based on the model used.
- Updated `ProviderModelMenu.vue` to manage menu state and load provider configurations dynamically upon opening.
- Filtered provider configurations to exclude those with `enable` set to false.
- Improved session selection logic in `useSessions.ts` to ensure the currently selected session is highlighted and properly managed during navigation.
* fix: improve error handling in tool execution to prevent infinite tool call loops
- Enhanced error handling in `call_local_llm_tool` to provide more informative exceptions for ValueError and TypeError, including detailed parameter information.
- Updated `ToolLoopAgentRunner` to yield appropriate messages for cases with no response or unsupported types, ensuring clearer communication to users.
- Improved logging and messaging consistency across tool execution processes.
* refactor: clean up unused router parameter in message retrieval functions
- Removed the unused `router` parameter from `getSessionMessages` and related function calls in `Chat.vue` and `useMessages.ts`.
- Commented out the `tool_calls` dictionary in `chat.py` for clarity, indicating it is not currently in use.
* fix: enhance exception handling in tool execution for clearer error reporting
- Improved exception handling in `call_local_llm_tool` by chaining exceptions for ValueError and TypeError, providing more context in error messages.
- Ensured that traceback information is preserved in raised exceptions for better debugging.
* perf(agent): add max step limit to prevent infinite tool call loops
* feat: implement max step limit handling in main agent runner
- Enhanced the agent runner to enforce a maximum step limit, logging a warning and forcing a final response when the limit is reached.
- Updated message handling to append a user prompt when the tool call limit is exceeded.
- Refactored tool response handling to yield appropriate messages based on the response type, including handling cases with no response or unsupported types.
- Improved conversation message formatting to ensure consistent output in the assistant's responses.
* chore: ruff format
---------
Co-authored-by: Soulter <905617992@qq.com>