Commit Graph

185 Commits

Author SHA1 Message Date
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
UnCLAS-Prommer
207dc460cb ConfigBase and Test 2026-01-12 18:20:03 +08:00