Commit Graph
100 Commits
Author SHA1 Message Date
jxxghp ed9116d81e feat: refactor ZSpace media server integration and enhance item management methods 2026-05-11 18:21:21 +08:00
jxxghp 6db1dd2067 feat: add ZSpace media server support with authentication and item management 2026-05-11 18:09:38 +08:00
jxxghp b7fc5b0203 feat: refine job handling by filtering active jobs and updating date context in prompts 2026-05-11 13:15:32 +08:00
jxxghp 1b2433f7c2 feat: implement runtime dependency checks and recovery for plugin installations 2026-05-11 08:54:34 +08:00
jxxghp 888ccfcfc2 feat: add detailed docstrings for methods in WechatClawBot and related modules 2026-05-11 08:25:25 +08:00
jxxghp 3c9228c2f8 feat: enhance iLink polling logic to support multiple payload formats and improve success determination 2026-05-11 08:02:17 +08:00
jxxghp 3776422634 fix: tighten wechatclawbot poll protocol handling 2026-05-11 07:15:04 +08:00
jxxghp 5021b2c86f feat: implement message deduplication and enhance error handling in WechatClawBot 2026-05-10 23:40:22 +08:00
jxxghp 412e10972f fix: optimize client instantiation in message sending logic 2026-05-10 23:00:47 +08:00
jxxghp d0b1b3d7f0 feat: add QR code URL normalization for compatibility with various formats 2026-05-10 22:10:53 +08:00
jxxghp f5fea25b41 fix: migrate wechat clawbot login cache on rename 2026-05-10 21:50:33 +08:00
jxxghp 68706d3d5b feat: add standalone wechat clawbot notifications 2026-05-10 21:47:35 +08:00
jxxghp b768ed8fed 更新 version.py 2026-05-10 15:27:54 +08:00
jxxghp c4d3d28491 fix: avoid blocking Ugreen startup on library preload
Delay Ugreen library loading until it is needed and cap poster wall pagination so a single Ugreen server cannot hang backend startup.\n\nFixes #5740
2026-05-10 12:19:36 +08:00
jxxghp 1862a7ab4b feat: expose download save paths in API
Return configured download directories as API-ready save_path values so external integrations can choose download destinations without guessing local or remote path syntax.

Fixes #5737
2026-05-10 12:02:22 +08:00
jxxghp adb7aa6aa9 fix: prevent repeated scans after history-based exits
Only mark downloader tasks as organized after a transfer history record exists, including existing-history skips and unrecognized media failures.
2026-05-10 10:25:39 +08:00
jxxghp 79eb128196 refactor: streamline media recognition by removing MetaInfoPath usage 2026-05-10 09:26:13 +08:00
jxxghp 4d132c424a fix: avoid duplicate image fetch in transfer
Keep transfer recognition results ready for scraping without fetching images twice on the same path. Also ensure redo-by-path transfer recognition still populates image data before metadata scraping.
2026-05-10 08:22:27 +08:00
jxxghp c52327c248 fix: only fetch images for scrape flows
Default title and path recognition to skip image fetching, while keeping scrape entrypoints and transfer-to-scrape paths populated with image data. This preserves lightweight recognition behavior without breaking metadata scraping.
2026-05-10 08:14:08 +08:00
jxxghp 1d97f2e043 fix: align media recognition fallback and shared reporting
Route title and path lookups through the fallback-aware entrypoints so auxiliary matches can reuse pre-assist keywords without forcing image fetches in lightweight flows. Also reduce noisy agent shutdown logging during cleanup.
2026-05-10 07:54:55 +08:00
jxxghp 4027ae2641 feat: add configurable data cleanup settings
Add a global cleanup switch, per-table retention periods, and scheduler config reload support so data cleanup can be managed and applied without restarting.
2026-05-09 21:22:02 +08:00
jxxghp bc6c61bc45 fix(mediaserver): sync library data incrementally 2026-05-09 21:18:20 +08:00
jxxghp cd5e693302 refactor: adjust database indexes by adding high-frequency composite indexes and removing redundant id indexes 2026-05-09 20:04:05 +08:00
jxxghp ac11b303b3 fix: scheduled data cleanup chain 2026-05-09 18:30:55 +08:00
jxxghp a7823fb4d1 feat: implement data cleanup chain for batch deletion of expired records 2026-05-09 14:04:10 +08:00
jxxghp 45d47d32f8 fix: optimize SSE event streaming with batched processing 2026-05-09 13:23:05 +08:00
jxxghp 893b8eba86 fix: remove unnecessary reporting for cache misses in media recognition 2026-05-09 12:01:14 +08:00
jxxghp f9b987c3ef fix: enhance logging for shared media recognition with item details 2026-05-09 11:52:05 +08:00
jxxghp 4ef8b0ba99 fix: 修复订阅刷新共享识别缓存回填异常 2026-05-09 11:25:45 +08:00
jxxghp 94d7e4385e fix: update shared recognize cache flow 2026-05-08 21:21:01 +08:00
jxxghp 64b4de3900 fix: use original name for media recognize share 2026-05-08 20:36:33 +08:00
jxxghp e217d1aa05 feat(recognize): implement media recognition sharing functionality with API integration 2026-05-08 18:08:43 +08:00
jxxghp 52e15b51db fix(cli): align frontend download with version.py
Use FRONTEND_VERSION from version.py as the default frontend release target so local setup and auto-update install the matching frontend bundle.

Closes #5693
2026-05-08 15:49:32 +08:00
jxxghp 0dab3f087d Merge remote-tracking branch 'origin/v2' into v2 2026-05-08 15:16:34 +08:00
jxxghp e4c5a4f232 feat(provider): add kuaishou-wanqing endpoint with base URL presets and manual model input 2026-05-08 15:16:29 +08:00
jxxghp 14b366a648 refactor: adjust default and maximum limits for plugin candidates and torrent results; enhance result formatting for agents 2026-05-08 14:47:20 +08:00
jxxghp 0a0d5e6da2 docs: update AGENTS.md to improve clarity and consistency in project guidelines 2026-05-08 14:00:31 +08:00
jxxghp 3dbb68627f refactor(provider): update sort orders and add new providers 2026-05-08 13:42:31 +08:00
jxxghp f157b61dfa docs: update AGENTS.md to clarify repository structure and guidelines 2026-05-08 13:29:18 +08:00
jxxghp 44f975baf4 docs: add comprehensive guide for MoviePilot AI Agent behavior and conventions 2026-05-08 13:17:10 +08:00
jxxghp 28ec4a6ac0 refactor(provider): update cache TTL for models.dev data to one week 2026-05-08 13:08:49 +08:00
jxxghp 1140a85402 feat(provider): implement fallback to bundled models.dev data on fetch failure 2026-05-08 13:00:27 +08:00
jxxghp c6d95cd006 refactor(agent): consolidate provider preset resolution 2026-05-08 12:35:02 +08:00
jxxghp c9931aa948 refactor(agent): remove MiniMax legacy alias 2026-05-08 11:43:10 +08:00
jxxghp ec4f13dd79 feat(agent): merge MiniMax coding presets 2026-05-08 10:52:30 +08:00
jxxghp d43ef610c7 feat(provider): add Baidu Qianfan and JDCloud support with base URL presets 2026-05-08 09:46:12 +08:00
jxxghp 05d720d81f feat(agent): expand LLM provider and wizard support 2026-05-08 08:09:50 +08:00
jxxghp 2d2c2a01eb refactor(core): enhance site operations and clarify media management workflow 2026-05-07 20:30:24 +08:00
jxxghp 226f9c9318 fix(system): extend graceful shutdown timeout to 180 seconds 2026-05-07 20:09:23 +08:00
jxxghp b77b5a21c5 更新 version.py 2026-05-07 19:16:42 +08:00
jxxghp 82b637532e 更新 _torrent_search_utils.py 2026-05-07 17:31:22 +08:00
jxxghp c2c9950bb1 fix(postgresql): support unix socket connections
Allow PostgreSQL socket paths without forcing a TCP port and reuse a single URL builder for sync, async, and migration flows. Document Redis socket URLs and close the socket connection request. Closes #5720
2026-05-07 13:22:14 +08:00
jxxghp ffbe348d66 fix(openlist): paginate Alist directory listings
Fetch all OpenList/AList fs/list pages when using the default per_page=0 to avoid truncating directories at 200 entries. Add an isolated regression test for the auto-pagination behavior.

Fixes #5723
2026-05-07 13:09:28 +08:00
jxxghp 6d7b0733af fix(transfer): avoid polluted history fallback at shared roots
Parent-path fallback should stop at shared download roots so an old root-level download cannot hijack unrelated manual transfers. Keep exact DownloadFiles matches allowed at the shared root to preserve valid no-subfolder lookups.

Closes #5716

Regression from afcd895f52

Follow-up to #5702
2026-05-07 13:01:20 +08:00
jxxghp 49a51cca25 fix(media): use Jellyfin-compatible season artwork names
Save season artwork in season folders with standard names like poster.jpg so Jellyfin can recognize them. Fixes #5725.
2026-05-07 12:54:38 +08:00
jxxghp 06197144c0 refactor(qbittorrent): convert static methods to instance methods for better encapsulation 2026-05-07 08:25:34 +08:00
jxxghp 62541ffe43 fix(qbittorrent): restore qBittorrent 5.2 compatibility
Support WebUI API Key auth, newer add responses, and cookie sync so qBittorrent 5.2 can connect reliably while keeping legacy fallback behavior.

Fixes #5724
2026-05-07 07:41:05 +08:00
jxxghp c762628217 fix(agent): preserve full command output in temp logs
Return only a 10KB preview to the agent so large command results do not overwhelm conversations while keeping the full output available for follow-up reads. Add pytest to the project dependencies to make the regression tests runnable in the project venv.
2026-05-06 20:04:17 +08:00
jxxghp caf615f3bd feat(system): implement one-shot upgrade mode and enhance upgrade handling 2026-05-05 15:22:33 +08:00
jxxghp 27436757a0 更新 version.py 2026-05-05 12:43:09 +08:00
jxxghp 924d54dfd3 perf(search): 按站点并行过滤搜索结果 2026-05-05 09:01:18 +08:00
jxxghp 39f9550f86 fix(agent): 修复添加订阅时的用户名映射 2026-05-04 21:27:48 +08:00
jxxghp 10467244e0 align llm provider registry with opencode endpoints 2026-05-03 09:36:39 +08:00
jxxghp 5d7a7fd301 更新 message.py 2026-05-01 10:02:23 +08:00
jxxghp 4d0a722b09 refactor: reorganize interaction chain 2026-05-01 09:53:04 +08:00
jxxghp db6dc926cf feat: unify slash command interactions 2026-05-01 08:53:52 +08:00
jxxghp 4bb4f5aeb5 更新 version.py 2026-04-30 21:08:31 +08:00
jxxghp 58e25fe900 删除 test_openai_stream_patch.py 2026-04-30 21:02:58 +08:00
jxxghp 03f6b9bc96 删除 test_openai_responses_patch3.py 2026-04-30 21:02:25 +08:00
jxxghp 6fdda3a570 删除 test_openai_copilot_patch.py 2026-04-30 21:01:49 +08:00
jxxghp 100eaec38f feat: improve tool selection prompt with clearer instructions 2026-04-30 20:33:46 +08:00
jxxghp b129508304 chore: disable tool selection middleware by setting LLM_MAX_TOOLS to 0 2026-04-30 19:07:07 +08:00
jxxghp 53bf81aede refactor: rename MoviePilotToolSelectorMiddleware to ToolSelectorMiddleware and enhance tool selection logic 2026-04-30 19:05:49 +08:00
jxxghp afcc071d07 feat: optimize tool selection middleware to cache and reuse tool selection per agent run
- Refactor MoviePilotToolSelectorMiddleware to perform tool selection once per agent execution and cache the result in state, avoiding redundant LLM calls for each model round.
- Add abefore_agent to select tools at the start of agent execution and store selected tool names in state.
- Update awrap_model_call to reuse cached tool selection from state for subsequent model calls.
- Enhance test coverage for tool selection caching and reuse logic.
- Improve error logging in skill version extraction.
2026-04-30 18:29:54 +08:00
jxxghp 2ea617655c refactor: streamline agent initialization and parameter handling for improved clarity and consistency 2026-04-30 18:03:04 +08:00
jxxghp 0583495548 refactor: remove legacy disable_thinking and reasoning_effort parameters from LLM helper and related tests 2026-04-30 17:10:14 +08:00
jxxghp 516aea6312 refactor: rename llm variables for clarity and consistency in agent initialization 2026-04-30 16:41:46 +08:00
jxxghp 2d412cae1c style: improve log formatting for torrent publish time checks in FilterModule 2026-04-30 16:28:28 +08:00
jxxghp 45f5326fb4 fix tool selection middleware 2026-04-30 13:47:43 +08:00
jxxghp 2ccea2da39 chore: update langchain-anthropic, openai, and google-genai dependencies 2026-04-30 13:14:03 +08:00
jxxghp 53f6897d62 feat: ensure essential tools are always included in LLM tool selection and update tests
- Add mechanism to always include core tools (e.g., file operations, command execution) in LLMToolSelectorMiddleware
- Update MoviePilotToolFactory to provide filtered always-include tool names based on loaded tools
- Set default LLM_MAX_TOOLS to 30 in config
- Refactor agent initialization to support always_include parameter
- Enhance tests to cover always_include logic and async agent creation
2026-04-30 13:04:52 +08:00
jxxghp 28a2386f2f feat: add agent tools for querying and managing filter rules and rule groups
- Add tools for querying built-in and custom filter rules, and for adding, updating, and deleting custom rules and rule groups
- Refactor filter module to use shared builtin rule definitions
- Enhance rule group querying to include syntax guidance and usage references
- Add unittests for agent filter rule tools registration and parsing logic
2026-04-30 12:56:38 +08:00
jxxghp abda9d3212 feat: improve context_tokens_k calculation and update Tencent provider name 2026-04-30 11:41:00 +08:00
jxxghp 34e7c4ac14 feat: enhance openai-compatible provider support and patch responses API instructions handling
- Add compatibility patch for langchain-openai responses API to ensure system messages are extracted as top-level instructions, addressing Codex endpoint requirements.
- Update provider list: add Alibaba, Volcengine, and Tencent TokenHub; adjust SiliconFlow and MiniMax endpoints; refine provider ordering and model list strategies.
- Extend models.dev-only listing logic for providers lacking stable models.list endpoints.
- Increase models.dev cache TTL for improved efficiency.
- Add tests for openai responses API and streaming compatibility patches.
2026-04-30 11:32:55 +08:00
jxxghp b228107a25 refactor: migrate LLM helper to agent module and add unified LLM API endpoints
- Move LLMHelper and related logic from app.helper.llm to app.agent.llm.helper
- Update all imports to reference new LLMHelper location
- Introduce app/agent/llm/__init__.py for internal LLM adapter exports
- Add llm.py API router with endpoints for model listing, provider auth, and test calls
- Remove legacy LLM endpoints from system.py
- Update requirements for langchain-anthropic and anthropic
- Refactor test_llm_helper_testcall.py for async LLMHelper usage and new import paths
2026-04-30 09:48:50 +08:00
jxxghp 2375508616 Restore background dispatch without channel context 2026-04-30 07:04:59 +08:00
jxxghp baebd0ed1a Fix background prompt message leakage 2026-04-30 06:58:43 +08:00
jxxghp 6532c60a3c Refine agent background reply handling 2026-04-30 00:25:23 +08:00
jxxghp 11478faff3 separate reply sending from output persistence 2026-04-29 23:56:16 +08:00
jxxghp e9291cec6a respect output persistence in background agent replies 2026-04-29 23:51:03 +08:00
jxxghp 7586a2cd42 disable agent message tools for ui background tasks 2026-04-29 23:30:59 +08:00
jxxghp ef5bd29759 move ui background message suppression into agent context 2026-04-29 23:22:37 +08:00
jxxghp 7ab643d34a suppress channel notifications for ui background tasks 2026-04-29 23:13:57 +08:00
jxxghp 0b7505a604 refactor search AI recommendation flow 2026-04-29 22:55:27 +08:00
jxxghp 460d716512 feat: add batch AI re-organize for transfer history and search result recommendation
- Implement batch AI re-organize endpoint for transfer history with progress tracking
- Add batch_manual_transfer_redo system task template and prompt generation
- Refactor agent_manager to support generic background prompt execution
- Add AIRecommendChain for search result recommendation using agent background prompt
- Update search endpoints to use new AIRecommendChain and remove legacy code
- Enhance test cases for batch manual transfer redo
- Minor code cleanup and style fixes
2026-04-29 22:16:04 +08:00
jxxghp b6f0ef99ab 更新 version.py 2026-04-29 19:02:35 +08:00
jxxghp af35101774 fix: default to text replies for voice input 2026-04-29 18:54:58 +08:00
jxxghp 9ed5018cc2 refactor: clarify attachment data url handling 2026-04-29 18:51:39 +08:00
jxxghp 7299733960 调整语音文件大小限制,超出 10MB 时禁止识别 2026-04-29 18:41:54 +08:00
jxxghp bd5c3d848c 修复 _resolve_provider_name 方法递归调用问题,改为静态方法并标准化 provider 名称解析逻辑 2026-04-29 18:41:24 +08:00