Commit Graph
100 Commits
Author SHA1 Message Date
jxxghp cce72d0884 fix: proxy bangumi requests 2026-05-30 08:54:40 +08:00
jxxghp 762a7fbba7 fix: simplify search web providers 2026-05-28 20:11:31 +08:00
jxxghp 10290ca17b 优化 agent 网络搜索工具 2026-05-28 17:22:52 +08:00
jxxghp 12a2561ca8 fix: return Emby item server ids 2026-05-28 15:03:56 +08:00
jxxghp 543bee9ad5 fix: correct Emby dashboard links 2026-05-28 14:33:50 +08:00
jxxghp cc3e062262 固定 Agent 工具消息类型 2026-05-28 13:34:53 +08:00
jxxghp bf4f5f8744 优化 Agent 核心提示词结构 2026-05-28 11:22:56 +08:00
jxxghp f8f06a602a 加强 Agent 核心提示词安全约束 2026-05-28 11:10:08 +08:00
jxxghp 3cb8925e92 更新 version.py 2026-05-27 17:59:21 +08:00
jxxghp 3ffdf1b38e docs: add browser-use skill 2026-05-27 17:01:54 +08:00
jxxghp 6557b8b9d8 更新 scheduler.py 2026-05-27 15:56:08 +08:00
jxxghp 2b2e088784 fix: improve u115 multipart upload handling 2026-05-27 15:02:03 +08:00
jxxghp d9a06f4433 refactor: load share admins from server 2026-05-27 14:31:01 +08:00
jxxghp b1259fdc02 feat: add manual transfer target path matching 2026-05-27 13:26:01 +08:00
jxxghp 0e5c592862 refactor: centralize MoviePilot server helper 2026-05-27 12:56:45 +08:00
jxxghp db3ad91408 fix: improve manual transfer recognition preview 2026-05-27 11:01:27 +08:00
jxxghp 5b6b4c9744 将发送消息工具设为必选工具 2026-05-27 08:48:56 +08:00
jxxghp 990a28b51b 调整 Agent 心跳任务报告方式 2026-05-27 08:41:40 +08:00
jxxghp b6ffd286fe fix: keep platform words in media titles 2026-05-27 07:41:44 +08:00
jxxghp 1f7fb304dd feat: add LLM proxy toggle 2026-05-27 06:57:09 +08:00
jxxghp 896631d63e fix(agent): enable voice replies for supported channels 2026-05-26 20:14:56 +08:00
jxxghp db8363fee1 fix(openlist): request full directory pages 2026-05-26 18:12:10 +08:00
jxxghp 31554bdcb5 fix agent tool call history ordering 2026-05-26 16:42:52 +08:00
jxxghp ccbcce0573 chore: update 3 workspace files 2026-05-26 12:14:36 +08:00
jxxghp e00e18f31e fix: transcode unsupported stt audio formats 2026-05-26 10:00:32 +08:00
jxxghp c7965edd47 fix: use responses api for chatgpt reasoning models 2026-05-26 09:31:00 +08:00
jxxghp 8aeba8a6d2 更新 version.py 2026-05-26 09:07:04 +08:00
jxxghp aee8b05737 fix: order LLM user agent config after max context 2026-05-26 08:30:43 +08:00
jxxghp 821bd3decd fix: use explicit LLM user agent config 2026-05-26 08:24:58 +08:00
jxxghp b65c8dcfe0 feat: support llm user agent 2026-05-26 08:20:02 +08:00
jxxghp d4718bf9dc fix: expose rust acceleration availability 2026-05-25 23:49:04 +08:00
jxxghp f761e07779 更新 requirements.in 2026-05-25 22:21:44 +08:00
jxxghp 91f6ad092e fix(docker): reduce env logs and harden ssl cert startup 2026-05-25 22:14:27 +08:00
jxxghp c33c62b938 refactor: use external moviepilot rust package 2026-05-25 20:52:53 +08:00
jxxghp 05943287c0 更新 version.py 2026-05-25 19:23:19 +08:00
jxxghp 94633173b1 添加安装版本统计上报 2026-05-25 18:16:59 +08:00
jxxghp d940373f6b 将所有agent工具的explanation字段改为可选
修复Pydantic验证错误:QueryTransferHistoryInput的explanation字段为必需,但用户未提供。
修改了74个工具文件,将explanation字段从必需改为可选,默认值为None。
2026-05-25 16:40:43 +08:00
jxxghp ca01b8ec3f 更新 version.py 2026-05-25 16:05:48 +08:00
jxxghp 384d6a3fe1 更新 metainfo.rs 2026-05-25 16:03:43 +08:00
jxxghp 0e8bcb4df6 fix: patch gemini thought_signature enforcement to cover all function calls
The upstream _parse_chat_history enforcement code uses a first_fc_seen
flag that only adds DUMMY_THOUGHT_SIGNATURE to the first function_call
without thought_signature. Parallel function calls (position 2+) remain
unpatched, causing Gemini API 400 errors for all Gemini 2.5+ models.

Additionally, _is_gemini_3_or_later only matches 'gemini-3', missing
Gemini 2.5 models entirely.

This patch:
1. Extends _is_gemini_3_or_later to also match gemini-2.5 models
2. Wraps _parse_chat_history to ensure ALL function_call parts in ALL
   model messages have thought_signature (not just the first one)
2026-05-25 13:53:02 +08:00
jxxghp 63b9994b0e fix: sign media server image proxy URLs 2026-05-25 12:41:55 +08:00
jxxghp d713ea54c1 fix: allow media server image proxy paths 2026-05-25 12:25:57 +08:00
jxxghp 766d2699ea feat: support MiniMax audio provider 2026-05-25 11:42:57 +08:00
jxxghp 9af61c4744 ci: improve docker build cache 2026-05-25 11:10:39 +08:00
jxxghp 7c8b973f30 fix: exclude derived subscribe completion field 2026-05-25 11:04:34 +08:00
jxxghp 0fdf1fadab 更新 version.py 2026-05-25 09:14:08 +08:00
jxxghp 477c49587c feat(agent): log tool execution result summary and truncate if too long 2026-05-25 08:50:44 +08:00
jxxghp 5532f14efb feat(agent): inject plugin installation directory into system prompt 2026-05-25 08:21:19 +08:00
jxxghp b08c335bb4 fix: 优化 execute_command 工具的 rm -rf 拦截逻辑,仅禁止删除根目录或一级目录 2026-05-25 08:00:35 +08:00
jxxghp c7670e5cc8 更新 execute_command.py 2026-05-25 07:51:30 +08:00
jxxghp a725789045 feat: add agent token provider events 2026-05-25 07:32:36 +08:00
jxxghp 5d5c95dcd8 fix: skip non-transferable monitor files 2026-05-25 06:14:02 +08:00
jxxghp 4d8c910f0d fix: enable incomplete file suffix for downloaders 2026-05-25 05:58:05 +08:00
jxxghp 4b4b0335e8 perf: optimize episode group tag parsing 2026-05-25 05:33:26 +08:00
jxxghp ac3432c54f feat: support TMDB episode group (g=) in explicit media tags and custom identifiers
- Add episode_group (g=) parameter parsing to explicit media tags in both Python and Rust metainfo parsers
- Propagate episode_group through MetaInfo, MetaBase, MediaInfo, and context models
- Update SKILL.md and update_custom_identifiers.py docs to describe episode group usage
- Add tests for episode_group recognition in metainfo and chain recognition logic
2026-05-24 23:32:27 +08:00
jxxghp ea52537423 更新 media.py 2026-05-24 22:50:09 +08:00
jxxghp 2b629185b9 Merge remote-tracking branch 'origin/v2' into v2 2026-05-24 22:14:24 +08:00
jxxghp a97e3ea092 feat: improve agent execution error handling with user-friendly messages and sensitive info sanitization 2026-05-24 22:14:10 +08:00
jxxghp 7af2aa4266 更新 feishu.py 2026-05-24 22:09:29 +08:00
jxxghp 1550b75548 perf: precompile anime metadata regexes 2026-05-24 20:48:36 +08:00
jxxghp b7f6ee12ee fix: 强制刷新插件市场绕过远端缓存 2026-05-24 20:28:45 +08:00
jxxghp 79539760da fix: bound long-lived cache state 2026-05-24 18:03:42 +08:00
jxxghp dc73d61682 feat: add china operator llm providers 2026-05-24 09:30:41 +08:00
jxxghp 6430b864b4 fix: import filter module dependencies 2026-05-24 08:02:40 +08:00
jxxghp ec588037a0 fix: restrict message commands to channel admins 2026-05-24 08:00:54 +08:00
jxxghp 0b7854a0af fix: block private image proxy targets 2026-05-24 07:18:51 +08:00
jxxghp 0273adc61c 更新 rust_accel.py 2026-05-23 21:19:46 +08:00
jxxghp d6472088cb fix: correct typo in import for clear_rust_parse_options_cache 2026-05-23 20:42:52 +08:00
jxxghp 0c133b7ccd feat: add global RUST_ACCEL toggle to enable/disable rust acceleration at runtime
- Introduce RUST_ACCEL config to control all rust fast paths
- Fallback to Python implementations when disabled, preserving filter semantics
- Expose rust acceleration status in system info API
- Update CLI docs to reflect new toggle
- Add tests for runtime switch and fallback behavior
2026-05-23 20:35:58 +08:00
jxxghp 0bf228d29d perf: optimize rust acceleration paths
Rust vs Python benchmark results:

- RSS: Rust 0.299 ms/loop vs Python 7.913 ms/loop, 26.47x faster

- Filter: Rust 12.740 ms/loop vs Python 57.187 ms/loop, 4.49x faster

- MetaInfo: Rust 64.680 ms/loop vs Python 316.158 ms/loop, 4.89x faster

- Indexer agsvpt: Rust 145.76 ms vs Python 3686.50 ms, 25.29x faster

- Indexer pttime: Rust 166.51 ms vs Python 4019.87 ms, 24.14x faster

- Indexer chdbits: Rust 161.17 ms vs Python 3604.28 ms, 22.36x faster

- Indexer iptorrents: Rust 77.82 ms vs Python 17615.52 ms, 226.36x faster

Validation:

- cargo fmt/check/test for rust/moviepilot_rust

- pytest Rust-related coverage: tests/test_rust_accel.py tests/test_torrent_filter.py tests/test_metainfo.py tests/test_indexer_spider_search_url.py tests/test_workflow_fetch_rss.py

- tests/run.py legacy suite

- pylint app/ --errors-only
2026-05-23 19:41:18 +08:00
jxxghp ed0f8c471b feat: accelerate metainfo parsing with rust 2026-05-23 17:45:39 +08:00
jxxghp ad38f51d6b feat: accelerate rss parsing with rust 2026-05-23 16:14:47 +08:00
jxxghp d1e2881347 feat: accelerate site indexer parsing with rust 2026-05-23 15:59:20 +08:00
jxxghp 222f6ce7d8 fix: expose docker venv to maturin 2026-05-23 15:51:08 +08:00
jxxghp 39d09c2956 fix: resolve docker rust toolchain path 2026-05-23 14:19:57 +08:00
jxxghp 2b531afe49 删除 frozen.spec 2026-05-23 13:15:17 +08:00
jxxghp 5a1a6b47a5 fix: remove jieba compatibility shim 2026-05-23 13:05:32 +08:00
jxxghp 134c441754 fix: replace fast jieba dependency 2026-05-23 12:59:33 +08:00
jxxghp 00fc8b2f53 chore: update text processing dependencies 2026-05-23 12:18:59 +08:00
jxxghp 5f0ae3a75e 删除 benchmark_rust_accel.py 2026-05-23 10:57:28 +08:00
jxxghp 3ebd06a3a7 perf: precompile media metadata regexes 2026-05-23 10:44:46 +08:00
jxxghp 7cbfeb2377 refactor: slim rust acceleration surface 2026-05-23 09:17:32 +08:00
jxxghp fcbea077b7 fix: support jinja indexer parsing in rust 2026-05-23 08:07:43 +08:00
jxxghp da54f3a302 fix: render indexer jinja fields in rust 2026-05-23 01:02:08 +08:00
jxxghp efdb4d1b28 fix: delay transient typing indicators 2026-05-23 00:41:12 +08:00
jxxghp 9190699cd1 fix: remove choice callback status passthrough 2026-05-23 00:38:37 +08:00
jxxghp 4f107a7cc8 fix: resume agent after choice callback 2026-05-23 00:28:42 +08:00
jxxghp b26bf2a019 fix: stop agent after user choice prompt 2026-05-23 00:15:35 +08:00
jxxghp a74f04a149 fix: simplify message typing lifecycle 2026-05-23 00:11:56 +08:00
jxxghp cde267c55f feat: support indexer templates in Rust parser 2026-05-22 23:37:54 +08:00
jxxghp f7b78721c3 fix: 统一消息 typing 生命周期 2026-05-22 22:59:20 +08:00
jxxghp 7e6cd47712 fix: 兼容低版本临时文件参数 2026-05-22 21:51:28 +08:00
jxxghp 4de4044a3e feat: accelerate RSS parsing with Rust 2026-05-22 21:31:18 +08:00
jxxghp 052e1ca8e4 fix: handle images in Feishu streaming replies 2026-05-22 20:43:54 +08:00
jxxghp bd4d493f34 feat: add Rust acceleration for core parsing 2026-05-22 19:58:04 +08:00
jxxghp 2b5528c0ac fix: keep agent typing status while queued 2026-05-22 16:46:25 +08:00
jxxghp cb15b711b9 refactor(subscribe): unify best_version episode upgrade logic and always track downloads in note
- Simplify and centralize logic for filtering TV episodes during best_version (wash) mode, ensuring only episodes with strictly higher priority are considered for upgrade.
- Always update subscribe.note with downloaded episodes regardless of best_version state, ensuring download history is reliably tracked and available for all subscription modes.
- Remove redundant episode_group field from subscribe dict output.
- Refactor search: remove multi-page search logic, streamline concurrent site search for both sync and async paths, and update progress reporting accordingly.
- Remove obsolete tests for allowed_episodes propagation and note tracking, as logic is now unified and simplified.
2026-05-22 12:34:13 +08:00
jxxghp 9319b47fad refactor: use watchfiles for directory monitor 2026-05-22 09:15:18 +08:00
jxxghp 23487b7ae0 更新 version.py 2026-05-22 07:25:19 +08:00
jxxghp fec109712b fix: prevent duplicate Audiences unread messages 2026-05-22 07:23:41 +08:00