Commit Graph

238 Commits

Author SHA1 Message Date
Aqr-K
d51320103c fix: make local setup and bundled skill operations recoverable (#7150)
* fix: make local setup and bundled skill operations recoverable

* test: verify user updates with real transaction runners
2026-10-23 06:49:13 +08:00
InfinityPacer
cba9779a8a build(docker): refresh system packages against a tracked baseline
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 16:36:44 +08:00
jxxghp
17a866f47b fix(transfer): restore AI takeover for failed transfers 2026-10-22 09:43:03 +08:00
jxxghp
6d4ce83837 fix(types): clear host mypy debt and prevent typing regressions
严格检查全部宿主源码,清零类型错误预算并移除按模块类型豁免。
按原因、所属方法、错误码及语法指纹锁定必要兼容例外和站点类型桩,
CI 阻断新增忽略、检查范围退化、本地桩替代真实接口及新的类型错误。

修复空值、异步和供应方类型边界,保持插件与 API 兼容合同,
并补充存储、订阅、通知、Agent 和工作流边界的回归覆盖。
2026-10-21 22:03:18 +08:00
jxxghp
85af231b20 feat(config): support deployment secrets without persisting values 2026-10-21 07:03:39 +08:00
jxxghp
9f03157977 fix(transfer): ignore timestamps in cleanup identity checks 2026-10-19 19:09:12 +08:00
jxxghp
c85f9b262f feat(agent): isolate interactive execution from background services (#7083) 2026-10-19 18:12:05 +08:00
Aqr-K
bf4ef4214e perf(mediaserver): add caller-controlled query projections (#7068)
* perf(mediaserver): add caller-controlled query projections

* test(mediaserver): cover query projection option contracts

---------

Co-authored-by: jxxghp <jxxghp@gmail.com>
2026-10-19 08:33:45 +08:00
DDSRem
e1b703aacc refactor(agent): centralize graph resource ownership (#7062) 2026-10-18 21:49:57 +08:00
jxxghp
2d73cbc43e docs: drop process records and internal implementation docs
Keep only install, usage, development-workflow and architecture-boundary
documents; remove the one-off refactor plans, audits and ledgers that had
already served their purpose.

- delete docs/refactor plus the agent API surface audit generator and its
  drift-only tests; the fixed route registry remains the source of truth
- delete internal implementation notes (agent, music, notification, transfer,
  subscription activity, docker startup, V3t runtime governance)
- delete site adapter capture/release shims and the ADR records; external
  links point at MoviePilot-Site-Collector instead
- keep docs/architecture-overview.md and gate its dependency and event
  figures against the generated fixtures
- drop doc-only assertions from the architecture baseline test and retarget
  remaining references at code and rule documents
2026-10-18 14:24:49 +08:00
jxxghp
30378f2fc8 fix(network): recover shared pools after repeated pool timeouts 2026-10-18 09:01:33 +08:00
DDSRem
2de976f6b3 Merge pull request #7050 from DDSRem-Dev/codex-comment-migration
docs: 统一全项目中文注释和结构化契约说明
2026-10-17 19:26:29 +08:00
DDSRem
7e1c71a6d2 docs: standardize Chinese comment contracts
Define multiline reStructuredText docstrings and item-level documentation for dataclasses, Pydantic models, and Protocols. Align agent instructions, review guidance, and development documentation.

Validation: document links, Python example syntax, docstring format, and diff checks passed. The unchanged text-only architecture documentation test passed under isolated pytest with temporary CONFIG_DIR and no application bootstrap. Normal bootstrap remains unverified because the local environment lacks moviepilot_rust; installed uv also predates the project configuration format. No product code changed.
2026-10-17 15:45:46 +08:00
jxxghp
00645938d2 fix: isolate durable notification recovery 2026-10-17 13:11:15 +08:00
jxxghp
2757ac33be fix(log): support exception logging in database backup failures 2026-10-17 04:01:52 +08:00
wenking
5ec9516a89 fix(mcp): 支持显式 opt-in 的 tools/list schema 紧凑投影
默认保留 MCP tools/list 的完整 schema;显式携带 X-MCP-Schema-Mode: compact 时,为超限工具提供保留顶层对象和 operation/action 枚举的紧凑投影。REST 合同、tools/call 校验与权限判定沿用完整合同。

合并前修复嵌套定义引用与 patternProperties 投影边界,使用 app.agent.tools.projection 作为纯函数 owner,补充回归和相关 Skill 说明,并同步当前 v3 的架构快照与类型低水位。

验证:113 项相关回归、167 项架构策略测试、45 项架构快照测试通过;Pylint 10/10,类型、复杂度及并发等相关棘轮通过。最终 PR head 6d25e1039d 的全部 10 项必需 GitHub 检查通过;待合并树与 CI 测试树一致。

投影是 best-effort,不承诺压入 5000 字节以内;未进行生产实例或镜像发布验证。

Co-authored-by: clone <clone_fan@foxmail.com>
2026-10-16 19:52:57 +08:00
jxxghp
4955b7b9ea fix: harden backend isolation and execution safety 2026-10-16 09:11:28 +08:00
InfinityPacer
9181ad2b65 feat(community): serve community medals from the Wiki registry behind remote switches
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 22:28:58 +08:00
jxxghp
ea60ed0fd6 feat(community): recognize GitHub contributions and honor levels 2026-10-15 12:11:36 +08:00
jxxghp
72c8bff312 feat(music): preserve local covers and fall back after online scraping fails 2026-10-14 23:15:41 +08:00
jxxghp
b82bbcb420 fix(webhook)!: guard unknown movie paths in transfer history
Recover Jellyfin deletion paths from webhook payloads or bounded server-scoped caches. Avoid querying deleted items and preserve TV season/series lookup behavior.

BREAKING CHANGE: Movie and unspecified-type history queries without a destination now return no records unless match_all_versions=True is explicitly requested.

Refs #6988
2026-10-13 23:48:10 +08:00
jxxghp
48cffca3a1 feat(transfer): aggregate successful notifications by batch (#6981) 2026-10-13 17:21:17 +08:00
jxxghp
98bd038623 fix(music): reconcile album completion and prevent duplicate downloads
Recover complete release coverage from successful local transfers and audio tags/CUE before subscription searches. Keep release-group and album boundaries, and reject completed torrent hashes before downloader submission.
2026-10-13 17:05:57 +08:00
jxxghp
7a853577d8 fix(subscribe): preserve original execution log content 2026-10-12 06:58:01 +08:00
jxxghp
391f55df40 feat(subscribe): add isolated execution logs with authorized streaming (#6963) 2026-10-11 22:18:37 +08:00
jxxghp
28e1cb3a2f refactor: move site collector releases and sources to independent repository 2026-10-11 14:12:52 +08:00
jxxghp
b663825fe7 fix(plugin): recover dependencies without disabled constraints
Keep enabled host and clone sources in dependency recovery. Fall back to per-plugin requests while retaining ready and recovered manifest constraints, preserving original sources and cancellation ownership.

Refs #6943
2026-10-10 12:20:13 +08:00
jxxghp
63e30e453b ci: preserve manual release summaries and raw changelog 2026-10-10 08:37:30 +08:00
freeman
2165475dd0 fix(security): throttle password login after repeated failures
The access-token endpoint accepted unlimited password attempts; the
only existing rate limiters are single-instance helpers for outbound
site requests. Add app/application/security/throttle.py, an in-memory
LoginThrottle keyed by (client address, normalized username) that locks
for 30s after five consecutive failures and doubles the lockout up to
15 minutes. The endpoint answers 429 with Retry-After while locked,
counts only real credential failures (an MFA challenge after a correct
password does not count), and clears the record on success.

X-Forwarded-For is deliberately not trusted because there is no
trusted-proxy setting; behind the bundled nginx all requests share one
address, so the key degrades to per-username throttling, which is the
dimension brute-force protection needs. Sync the dependency snapshot
and architecture metrics for the new module.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-09 12:01:04 +08:00
jxxghp
32d37fa8b4 feat(music): preserve per-task CUE recognition policy 2026-10-08 08:51:01 +08:00
ChantXu64
e5e2558585 feat(search): 订阅补全逐页搜索、断点续搜与资源页手动分页 (#6907) 2026-10-07 14:40:55 +08:00
jxxghp
6c9ebd01f3 fix(agent): close owned LLM clients with their lifecycle
Refs #6901
2026-10-07 09:18:40 +08:00
jxxghp
fb652c74f4 fix(music): 支持关闭 CUE 识别整理分轨音频 2026-10-05 17:15:14 +08:00
jxxghp
e21d68496f fix(torrents): use incremental cache for M-Team by default
Refs #6878
2026-10-04 10:46:49 +08:00
jxxghp
823423b2c9 fix(download): refresh expired signed torrent links
Refs #6878
2026-10-04 10:27:28 +08:00
jxxghp
754da97d97 fix(music): apply simplified metadata to manual transfers
Normalize album details and final music template fields while preserving local edition evidence, multi-artist credits and source objects. Refs #6870.
2026-10-04 08:47:15 +08:00
jxxghp
bdbc801e83 fix(agent): steer active channel conversations into new replies 2026-10-02 09:12:21 +08:00
jxxghp
d85e8a2470 ci(docker): remove image scans and scan-driven runtime patches 2026-10-01 23:09:46 +08:00
jxxghp
1f79f4b558 Merge pull request #6844 from cwd0204/refactor/download-batch-phases 2026-09-30 22:25:12 +08:00
freeman
9eae3b9b83 refactor(download): split batch matching into explicit phases 2026-09-30 21:50:47 +08:00
freeman
ed0460fc8b fix(smb): keep remote snapshots complete and recoverable 2026-09-30 21:19:41 +08:00
jxxghp
f803e6cc5c feat(agent): add persistent Python read-only orchestration 2026-09-30 20:16:53 +08:00
jxxghp
fcd4cd1725 feat(agent): align execution guardrails with Hermes 2026-09-30 18:51:03 +08:00
jxxghp
864ac1892e feat(agent): align background learning with Hermes 2026-09-30 17:45:39 +08:00
jxxghp
47d51c3630 feat(agent): align history recall with Hermes SQLite FTS5 2026-09-30 16:28:39 +08:00
InfinityPacer
4847813ca7 feat(sdk): expose Feishu event long connection to plugins
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 15:39:30 +08:00
InfinityPacer
4bd7e3dc04 perf(webpush): send Web Push with http-ece and py-vapid instead of pywebpush
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 13:20:00 +08:00
jxxghp
72fcd8413a fix(music): verify artist aliases and preserve ambiguous identities 2026-09-30 11:42:23 +08:00
jxxghp
ee9fbf2264 feat(smb): mount multiple shares in one storage service 2026-09-30 11:27:24 +08:00
jxxghp
3a5486ae0d feat(music): add bounded source fallback and verified album matching 2026-09-30 10:50:09 +08:00