jxxghp
bbc7795230
fix(filter): migrate legacy rule IDs and diagnose invalid groups
...
Refs #7383
2026-11-12 13:04:36 +08:00
jxxghp
2e495e8129
fix(scraping): honor music album track overwrite policy
...
按音乐标签覆盖策略对专辑曲目做批次唯一匹配,保留有歧义或身份冲突的标签,并在响应和日志中说明处理结果。
Refs #7368
2026-11-12 09:57:48 +08:00
jxxghp
6bc19a59cc
fix(agent): protect plugin config and replay receipts ( #7360 )
2026-11-11 13:39:35 +08:00
jxxghp
8e9e89c636
fix(image): request media thumbnails with identity-aware caching ( #7326 )
2026-11-07 20:51:05 +08:00
jxxghp
41516bbc29
fix(plugin): cache static resources and rating snapshots ( #7324 )
2026-11-07 19:44:33 +08:00
jxxghp
db07e6ff0f
fix(agent): preserve choice receipt timestamps
...
Refs #7314
2026-11-06 22:23:37 +08:00
Derrors
17478f7825
fix(browser): reap idle sessions without subsequent requests
...
Register a lifecycle-owned periodic reaper and close expired sessions on their original workers. Guard pending operations and retain closing resources until actual completion, including owner shutdown races. Add isolated concurrency and lifecycle regressions and synchronize browser documentation.
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-11-06 20:37:40 +08:00
freeman
68cfc377ee
feat(history): register externally completed transfers ( #7293 )
2026-11-04 06:24:38 +08:00
jxxghp
83243d2418
fix: 限制插件生命周期准入并保留慢钩子所有权 ( #7268 )
2026-11-01 22:22:04 +08:00
SmallSpider
7f227857d8
fix: 修复 WebAgent 会话与选择状态 ( #7266 )
...
* fix(agent): preserve WebAgent session state
* test: separate subscription pressure coordination and owner waits
---------
Co-authored-by: jxxghp <jxxghp@gmail.com >
2026-11-01 17:49:20 +08:00
SmallSpider
9ce3d7a292
feat(search): add scoped page diagnostics
2026-11-01 09:51:24 +08:00
jxxghp
ae6270e655
Merge pull request #7257 from qingyukb/codex/security-web-agent-file-owner
2026-10-31 22:08:06 +08:00
jxxghp
10e9ade7de
fix(site): preserve text category IDs and replay resource configs
2026-10-31 17:25:29 +08:00
qingyukb
aea8cf11c4
fix: 按用户隔离 Web 智能助手临时附件
2026-10-31 17:04:21 +08:00
jxxghp
d8fbabaa6a
fix(apppush): preserve full notification text for web details
2026-10-30 16:52:58 +08:00
jxxghp
a9c992d9b9
fix(apppush): preserve posters in relay notifications ( #7244 )
2026-10-30 13:38:30 +08:00
jxxghp
9aab7c0f4c
fix(agent): pin scheduled tasks to real execution accounts ( #7241 )
2026-10-29 22:39:08 +08:00
jxxghp
16cd9f75ed
fix(apppush): deliver business notifications to all active users ( #7235 )
2026-10-29 21:43:18 +08:00
jxxghp
4f91c6be75
test(apppush): verify persisted channels survive restart
2026-10-29 19:15:38 +08:00
Cat
87561a90d1
fix(agent): route agent command receipts to the signed channel user ( #7228 )
...
- Agent 代渠道用户调用内部 API 时,把会话渠道与渠道用户写入宿主签发令牌的签名
声明(agent_channel、agent_channel_user),不再新增可伪造的请求头。
- /commands/run 对 Telegram 等通知渠道只使用与请求渠道一致的签名渠道用户执行命令
和投递回执;缺少该声明时明确拒绝,不再把 MoviePilot 用户表主键当作渠道 chat id。
Web、WebAgent 与无渠道调用仍按 MoviePilot 用户 ID 处理。
- 只读公共资料借用宿主身份,不携带渠道发起人声明。
- 同步依赖基线与架构总览中的内部导入边数量。
Refs #7225
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com >
Co-authored-by: jxxghp <jxxghp@gmail.com >
2026-10-28 19:05:52 +08:00
jxxghp
d9afaba8dd
feat(plugin): expose documentation before installation ( #7222 )
2026-10-27 21:37:00 +08:00
jxxghp
e9563b0346
perf(api): 合并卡片状态查询并减轻推荐轮询 ( #7207 )
2026-10-27 06:05:49 +08:00
Aqr-K
8b2275592e
fix(database): enforce SQLite secret-table access during execution ( #7205 )
2026-10-27 05:43:37 +08:00
jxxghp
42edfd1da8
fix(api): bound collection views and query calendar dates ( #7200 )
2026-10-27 00:40:09 +08:00
jxxghp
1bf496d0f3
fix(api): enforce token authentication for subscription list
...
Refs #7198
2026-10-26 23:19:31 +08:00
JontyLee
0ba73f5b87
fix(database-operation): 拦截未显式授权的凭据配置表读取
...
systemconfig 按 SystemConfigKey 聚合实例级 API Key、Cookie 与口令,托管
config.system.get 默认脱敏,但数据库技能脚本与 MCP database_operation 接受
任意 SQL,一条 SELECT 就能整包取回明文。
现在由脚本本身按表拦截:引用 systemconfig 的语句(含引号标识符、模式限定名、
CTE 与子查询)在读写两种模式下都默认拒绝,只有显式 --show-secrets /
show_secrets=true 才放行,失败信息直接给出可执行的下一步,因此 MCP 工具、
技能调用与命令行入口共享同一道边界。宿主策略把开启该开关的查询判定为
SENSITIVE_READ:要求系统管理员确认,结果标记为 SECRET,回执摘要不再保留内容。
门禁范围收敛为单表:userconfig 只承载界面偏好,plugindata 是文档化的诊断路径,
其余表的凭据残留风险改由 SKILL.md 的窄投影要求约束,避免以不可绕过的方式破坏
既有可运维性。MCP 文档、技能说明与相关契约测试同步更新。
2026-10-26 20:20:16 +08:00
jxxghp
86ededa739
feat(widget): 增加当前主登录的只读账号上下文 ( #7176 )
2026-10-25 06:28:57 +08:00
jxxghp
721c03734a
feat(widget): 提供受限凭据和只读快照接口 ( #7175 )
...
* feat(widget): add restricted read-only snapshot foundation
* test(widget): 补齐运行时与文档迁移契约
2026-10-25 06:02:47 +08:00
jxxghp
81260dc452
fix(notification): persist independent media posters
2026-10-24 19:11:27 +08:00
jxxghp
6680e090e6
feat: 自动登记中心推送实例并安全轮换凭据
2026-10-24 09:17:24 +08:00
jxxghp
3ac7526930
feat(notification): relay AppPush through private MoviePilot Server
2026-10-24 07:32:00 +08:00
jxxghp
5258e06fd7
fix(transfer): warn on unmatched custom target directory ( #7159 )
2026-10-23 18:23:57 +08:00
Aqr-K
7584d4b9fc
fix: isolate agent sessions and retain runtime resource ownership ( #7149 )
...
* fix: arbitrate subscription identity and restore workflow state
* fix: isolate agent sessions and retain runtime resource ownership
* test: preserve legacy empty-owner subscription transactions
* test: handle reaped terminal descendants during shutdown polling
* fix: align shared atomic configuration method with lifecycle prerequisite
* test: cover subagent cancellation and completion lifecycle boundaries
---------
Co-authored-by: jxxghp <jxxghp@gmail.com >
2026-10-23 08:20:59 +08:00
Aqr-K
951cdc5b27
fix: arbitrate subscription identity and restore workflow state ( #7147 )
...
* fix: arbitrate subscription identity and restore workflow state
* test: preserve legacy empty-owner subscription transactions
* fix: align shared atomic configuration method with lifecycle prerequisite
---------
Co-authored-by: jxxghp <jxxghp@gmail.com >
2026-10-23 08:14:15 +08:00
jxxghp
ec5ff575f0
fix(agent): restore API bodies before direct request dispatch
2026-10-23 07:55:16 +08:00
Aqr-K
fc0eed08cc
fix: preserve directed messaging and channel interaction contracts ( #7148 )
...
* fix: retain plugin lifecycle ownership and recover installation state
* fix: preserve directed messaging and channel interaction contracts
* test: cover plugin rollback and uninstall lifecycle boundaries
---------
Co-authored-by: jxxghp <jxxghp@gmail.com >
2026-10-23 07:49:53 +08:00
Aqr-K
bcbf79f030
fix(media): preserve recognition and rule mutation identities ( #7144 )
...
* fix(media): preserve recognition and rule mutation identities
* test: cover typed classification facts with alias policies
---------
Co-authored-by: jxxghp <jxxghp@gmail.com >
2026-10-23 07:33:27 +08:00
Aqr-K
f3c1449c8b
fix(storage): preserve transfer contents and cleanup identities ( #7142 )
2026-10-23 06:51:54 +08:00
jxxghp
17a866f47b
fix(transfer): restore AI takeover for failed transfers
2026-10-22 09:43:03 +08:00
jxxghp
80a92ddb29
fix(notification): preserve download template titles
2026-10-20 12:09:05 +08:00
jxxghp
379c26a300
feat(subscribe): record initial and upgrade download provenance ( #7061 )
2026-10-19 16:03:21 +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
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
9edb92620e
docs(mcp): rewrite external Agent integration guide
2026-10-18 14:12:01 +08:00
DDSRem
2de976f6b3
Merge pull request #7050 from DDSRem-Dev/codex-comment-migration
...
docs: 统一全项目中文注释和结构化契约说明
2026-10-17 19:26:29 +08:00
jxxghp
68101746ae
fix(plugin): recover invalid historical instance rows ( #7039 )
...
* fix(plugin): recover invalid historical instance rows
* fix(plugin): keep maintenance on existing startup path
* style(plugin): order maintenance test imports
* chore(architecture): record plugin instance validator edges
2026-10-17 06:34:25 +08:00
jxxghp
a8ccc3b9f9
fix(anilist): validate GraphQL fallback and type cached request contracts
2026-10-17 03:58:48 +08:00
jxxghp
ac64d4b9ca
fix(mcp): reject non-object requests with protocol errors
2026-10-17 03:23:40 +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
2149eb2a60
fix(download): provide fallback category for music torrents
...
Use the music media type as the downloader category only when music has no library classification. Preserve configured categories and qBittorrent automatic-management settings, with SDK-boundary regression coverage.
Refs #7028
2026-10-16 15:13:03 +08:00