DrSmoothl
7e2b509bf0
feat: 实现 RPC 服务器的发送队列和背压控制机制
2026-03-13 16:05:51 +08:00
DrSmoothl
d92aa800a3
feat: 实现插件配置更新通知机制,支持热重载与文件变化监听
2026-03-13 15:47:49 +08:00
DrSmoothl
f1e10b4054
feat: 添加插件身份绑定机制,防止伪造插件身份的 RPC 调用
2026-03-13 15:40:14 +08:00
DrSmoothl
44a9e9ecd7
feat: 实现插件注册的分阶段接入与切换机制,优化 RPC 连接管理
2026-03-13 15:21:40 +08:00
DrSmoothl
a576313b22
Ruff Format
2026-03-13 11:45:26 +08:00
DrSmoothl
bcb7963d37
feat: 增强命令调用逻辑,支持通过 plugin.invoke_command 返回原始结构,并优化消息统计功能
2026-03-13 10:49:20 +08:00
春河晴
67b559200d
move zh-CN prompt source
2026-03-13 02:36:08 +09:00
春河晴
d418a8451b
feat: 增强国际化验证功能,添加对共享翻译字符串的支持,优化提示模板加载逻辑
2026-03-13 01:59:20 +09:00
DrSmoothl
f3270d4d41
feat: 添加插件运行时配置类,增强会话令牌管理和插件目录支持
2026-03-13 00:11:00 +08:00
春河晴
4b7ee3923c
ci: tighten crowdin and i18n PR checks
2026-03-13 00:35:30 +09:00
春河晴
c9bfedddd2
i18n: localize prompt templates with crowdin
2026-03-13 00:09:08 +09:00
DrSmoothl
b17948a495
feat: 添加 Runner 日志桥,支持将 Runner 进程日志通过 IPC 批量发送到主进程
2026-03-12 21:45:58 +08:00
DrSmoothl
d0b56abdab
feat: 增强插件能力检查,支持 generation 校验并添加清理功能
2026-03-12 21:22:23 +08:00
春河晴
c470fdfd1e
i18n: crowdin integration
2026-03-12 17:23:17 +09:00
UnCLAS-Prommer
9fbb733e0a
MessageUtils更新
2026-03-11 20:18:30 +08:00
UnCLAS-Prommer
aaf1c9ed40
更严厉测试
2026-03-10 13:48:24 +08:00
UnCLAS-Prommer
3ea14a85c3
测试简化
2026-03-09 15:08:42 +08:00
DrSmoothl
dfa944b368
feat: 添加 _ready_event 以确保文件监视器在启动时准备就绪,优化监控逻辑
2026-03-09 15:04:58 +08:00
DrSmoothl
7e2ab0d71d
feat(test): 移除 FileWatcher 中的 force_polling 参数,并添加等待时间以确保 watcher 建立基线
2026-03-09 14:57:59 +08:00
DrSmoothl
426cbc6190
feat(test): 在 FileWatcher 中添加 force_polling 参数以增强文件监控功能
2026-03-09 14:42:03 +08:00
DrSmoothl
5b7945ac7b
feat: 添加 _wait_for 辅助函数以优化测试中的等待逻辑,调整 FileWatcher 的防抖设置
2026-03-09 14:35:54 +08:00
UnCLAS-Prommer
fbf946b352
更严厉测试
2026-03-08 17:26:51 +08:00
DrSmoothl
1cd366bc09
refactor: 优化代码结构,简化条件判断和异常处理
2026-03-06 12:00:00 +08:00
DrSmoothl
2f21cd00bc
feat: Enhance plugin runtime with new component registry and workflow executor
...
- Introduced `ComponentRegistry` for managing plugin components with support for registration, enabling/disabling, and querying by type and plugin.
- Added `EventDispatcher` to handle event distribution to registered event handlers, supporting both blocking and non-blocking execution.
- Implemented `WorkflowExecutor` to manage a linear workflow execution across multiple stages, including command routing and error handling.
- Created `ManifestValidator` for validating plugin manifests against required fields and version compatibility.
- Updated `RPCClient` to use `MsgPackCodec` for message encoding.
- Enhanced `PluginRunner` to support lifecycle hooks for plugins, including `on_load` and `on_unload`.
- Added sys.path isolation to restrict plugin access to only necessary directories.
2026-03-06 11:55:59 +08:00
DrSmoothl
61dc15a513
feat(plugin-runtime): add plugin isolation IPC infrastructure
...
- Protocol layer: Envelope model with Pydantic schema, MsgPack/JSON codecs, unified error codes
- Transport layer: cross-platform IPC abstraction with 4-byte length-prefixed framing (UDS + TCP fallback)
- Host: RPC server, policy engine, circuit breaker, capability service, supervisor with hot-reload
- Runner: RPC client, plugin loader, process entry point
- Tests: 16 passing tests covering protocol, transport, host, and E2E handshake
2026-03-06 02:01:30 +08:00
DrSmoothl
2a33fd1121
refactor(llm): enable hot-reload for model config and client runtime
...
make LLM task config resolution dynamic in LLMRequest
load model clients on demand from latest config
clear client instance cache on config reload
remove stale module-level model_config usage in llm_api
add hot-reload tests for LLM/config watcher flow
2026-03-04 21:56:50 +08:00
DrSmoothl
b3a81754e6
feat(config): harden file watcher hot-reload flow and add test coverage
...
refactor FileWatcher to subscription-based dispatch with path/change filters
add callback timeout, failure cooldown, auto-retry loop, and runtime stats
strengthen ConfigManager hot-reload with throttling, timeout guard, and watcher stats logging
add pytest suites for watcher behavior and config hot-reload edge cases
2026-03-04 21:39:26 +08:00
UnCLAS-Prommer
d03dc3601e
消息构建器:将消息转换为可读消息;其对应的测试文件
2026-03-04 21:01:51 +08:00
UnCLAS-Prommer
e200b5b581
给Expression系统的一些准备文件
2026-03-02 17:18:13 +08:00
UnCLAS-Prommer
c58da95353
链式调用构建消息
2026-02-28 16:54:38 +08:00
UnCLAS-Prommer
7ef21c516a
一点注释和渲染修改
2026-02-24 16:01:39 +08:00
UnCLAS-Prommer
0d07e85434
全新的process方法完成(Message其他部分仍未完成);对应测试;调整部分注释;数据库检索优化
2026-02-23 21:29:17 +08:00
DrSmoothl
6378bb2052
fix Ruff
2026-02-21 16:29:30 +08:00
DrSmoothl
eaef7f0e98
Ruff Format
2026-02-21 16:24:24 +08:00
UnCLAS-Prommer
1c0580c577
ImageManager及测试
2026-02-19 19:02:44 +08:00
UnCLAS-Prommer
537b24c24e
获取和注册一体化修正
2026-02-18 21:34:56 +08:00
UnCLAS-Prommer
ccd1be7bed
Merge branch 'r-dev' of github.com:Mai-with-u/MaiBot into r-dev
2026-02-18 16:00:58 +08:00
UnCLAS-Prommer
c9f72f7f2f
修改部分字段含义,维护缓存
2026-02-18 16:00:45 +08:00
DrSmoothl
f97c24bf9e
test(webui): add pytest tests for emoji, jargon, expression routes
...
- test_emoji_routes.py: 21 tests covering list/get/update/delete/batch operations
- test_jargon_routes.py: 25 tests covering CRUD + stats + chat list (2 skipped due to DB model)
- test_expression_routes.py: 24 tests covering legacy field compatibility + field removal
- All use in-memory SQLite + StaticPool for isolation
- All tests passing (68/68, 2 skipped)
2026-02-17 20:12:57 +08:00
DrSmoothl
4e5d091417
test(webui): add unit tests for ConfigSchemaGenerator
...
- Test field descriptions from field_docs
- Test json_schema_extra merging
- Test Pydantic constraints mapping
- Test nested model schema handling
- Test fields without extra metadata
All 5 tests passing. Completes Task 7 of webui-config-visualization-refactor plan.
2026-02-17 17:14:48 +08:00
UnCLAS-Prommer
75e154741d
方法名调整;确保公共属性被定义
2026-02-15 22:56:26 +08:00
UnCLAS-Prommer
5799ce7efe
新功能
2026-02-15 13:29:56 +08:00
UnCLAS-Prommer
6dc33e9e86
提取一些公共方法
2026-02-15 00:18:16 +08:00
UnCLAS-Prommer
b9f3c17e14
合并到远程
2026-02-13 13:41:58 +08:00
UnCLAS-Prommer
4ff070c08e
新表情包系统;对应的测试;TODO更新;Prompt拆分;工具拆分
2026-02-04 22:23:41 +08:00
UnCLAS-Prommer
b793a3d62b
更好的Prompt管理系统,增加用户自定义Prompt与覆盖功能
2026-02-02 20:53:42 +08:00
UnCLAS-Prommer
761e4c8940
PromptManager再修改,测试更新;将主程序的prompt独立到文件(部分)
2026-01-20 22:15:27 +08:00
UnCLAS-Prommer
c15b77907e
Prompt管理器与测试;调整部分方法名称
2026-01-20 14:00:15 +08:00
UnCLAS-Prommer
9186d14100
解决ConfigBase问题,更严格测试,实际测试
2026-01-15 17:05:23 +08:00
UnCLAS-Prommer
13f095f231
使用Sourcery的Test,修复测出来的Bug
2026-01-12 21:48:54 +08:00