7262 Commits

Author SHA1 Message Date
jxxghp
f0bc1bd681 fix: prevent storage operations in preview mode and add tests for transfer preview logic v2.11.2 2026-05-13 13:39:57 +08:00
jxxghp
f8d096f476 fix: 支持飞书语音消息识别 2026-05-13 12:45:32 +08:00
jxxghp
b24127e66f fix: map feishu user identity for agent subscribe 2026-05-13 12:14:05 +08:00
jxxghp
35eb8c51a9 chore: bump version to v2.11.2 2026-05-13 11:47:46 +08:00
jxxghp
669ca713cf fix(feishu): add configurable margin to card sections and actions for improved layout with images 2026-05-13 11:43:37 +08:00
jxxghp
f2fd28bf4d fix(feishu): place images at top of interactive cards and remove body padding for better visual layout 2026-05-13 11:31:38 +08:00
jxxghp
3852c0e43e feat(feishu): support embedding images in interactive cards and sending mixed image+file messages
- Enhance Feishu card builder to embed images using remote URLs or uploaded files
- Add logic to send image card first, then file attachment when both image and file are present
- Update card schema to 2.0 and use new button behaviors for callbacks and URLs
- Improve callback data extraction for both new and legacy card actions
- Extend tests to cover image embedding, mixed messages, and new card structure
2026-05-13 11:14:11 +08:00
jxxghp
6fb6996d81 fix: ensure stop_streaming waits for inflight initial flush before final edit; improve message edit/delete return types and logging
- Update stop_streaming logic to await inflight initial flush task, preventing duplicate message sends on stream stop
- Change message edit/delete methods to return Optional[bool] for clearer channel mismatch handling
- Refine Feishu logging to include message_id instead of full data object
- Suppress allowed_objects warnings in __init__.py
- Add test to verify stop_streaming waits for inflight flush before final edit
- Update .pylintrc to use 'E' for error enabling
2026-05-13 10:11:31 +08:00
jxxghp
4c16704ca2 feat(feishu): add info logging for successful message and reply responses 2026-05-13 08:53:39 +08:00
jxxghp
f017eaedcc feat: add logging for Feishu streaming card updates and handle update failures more explicitly 2026-05-13 08:44:57 +08:00
jxxghp
19526146c5 docs: update docstrings for message metadata and reply fields; fix markdown capability check in format instructions; improve streaming card update logic in Feishu 2026-05-13 08:36:27 +08:00
jxxghp
7b4cb2097b refactor(feishu): promote download helper methods to public, update call sites and tests 2026-05-13 08:19:16 +08:00
jxxghp
b6062a9ce2 fix(feishu): unconditionally inc streaming sequence to prevent locking; send fallback as normal msg 2026-05-13 08:08:59 +08:00
jxxghp
ea8a90aa0a fix(feishu): handle more IM websocket events 2026-05-13 07:10:44 +08:00
jxxghp
fa939dfbe6 fix(agent): reply Feishu agent streams with cards 2026-05-13 06:56:03 +08:00
jxxghp
77aa65bfdc fix(agent): route streaming finalization through channel modules 2026-05-13 00:50:53 +08:00
jxxghp
d86d24fc4f feat(feishu): enhance message handling with file and voice support, add reaction management 2026-05-13 00:34:03 +08:00
jxxghp
0989439d25 feat(feishu): enhance message handling with file and voice support, add reaction management 2026-05-13 00:07:36 +08:00
jxxghp
a46ce24691 feat(venv): add uv compatibility for pip commands and enhance virtual environment setup 2026-05-12 23:01:27 +08:00
jxxghp
57bb67e547 feat(feishu): enhance message target resolution and add user ID type handling 2026-05-12 22:39:10 +08:00
jxxghp
5e5c257b75 fix(tmdb): cache serializable response snapshots
Avoid caching raw HTTP response objects in TMDb request helpers so Redis no longer fails on embedded locks. Add an isolated regression test for sync and async request snapshots.

Refs #5763
2026-05-12 22:31:56 +08:00
jxxghp
624862dfc6 feat(notification): add Feishu notification channel support 2026-05-12 21:40:55 +08:00
DDSRem
b172a6d08f fix(telegram): handle caption messages in group chat mention detection (#5761)
* fix(telegram): handle caption messages in group chat @mention detection

Telegram media messages (photos, videos, etc.) store their text in
`message.caption` and mention entities in `message.caption_entities`,
not `message.text` / `message.entities`. The previous code only checked
`message.text`, so commands and @mentions sent with media were silently
skipped with "No text..." in the debug log.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(telegram): use correct entity field pairing and UTF-16 offsets for mention detection

- Explicitly pair message.entities with text messages and caption_entities
  with media messages, avoiding false fallthrough on empty entity lists
- Decode mention text via UTF-16-LE encoding to respect Telegram's UTF-16
  based offset/length values, fixing incorrect slicing when emojis are present

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-12 20:57:31 +08:00
DDSRem
116465b6d8 chore(nginx): increase default upload size to 50M (#5760) 2026-05-12 20:08:33 +08:00
DDSRem
cfb6448060 chore: add AI tool configs and refine .gitignore for AI settings (#5759) 2026-05-12 19:45:48 +08:00
DDSRem
10a9e7293a fix(workflow): use MediaChain instead of SearchChain for recognize_by_meta in fetch_torrents
SearchChain does not have a recognize_by_meta method; this belongs to MediaChain.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-12 18:51:06 +08:00
jxxghp
fc2c77fbf1 fix(agent): refresh LLM runtime config on each call
Read the latest LLM connection settings when building runtime clients so Web updates take effect immediately instead of reusing module-import defaults.

Closes #5757
2026-05-12 18:48:31 +08:00
DDSRem
e4721fef0c fix(plugin): allow non-core dependency upgrades during plugin install
When a plugin requires a newer minor version of a non-core dependency
(e.g. sentry-sdk ~=2.59.0 while 2.58.0 is installed), the conflict
check now distinguishes upgrade-only conflicts from downgrade conflicts.
Non-core packages that only need upgrading are allowed through; the
runtime constraints file uses >= instead of == for non-core packages so
pip can satisfy the upgrade without risking a downgrade.

Core packages (fastapi, pydantic, sqlalchemy, etc.) remain strictly
pinned and any version mismatch is still rejected.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-12 17:39:28 +08:00
jxxghp
2c45831714 feat(subscribe): add episode priority tracking for subscription updates 2026-05-12 17:22:50 +08:00
jxxghp
9068280f6d refactor(tests): simplify test setup by removing unused stubs and imports 2026-05-12 14:00:50 +08:00
jxxghp
ea88f272a6 feat(system-settings): add unified tools for querying and updating system settings 2026-05-12 13:55:52 +08:00
jxxghp
ac090af606 feat(plugin): enhance dependency management by protecting main program dependencies and refining runtime constraints v2.11.1-1 2026-05-12 12:38:17 +08:00
InfinityPacer
1c17c0b07e fix(zspace): honor _sync_libraries when counting medias by views 2026-05-12 11:56:44 +08:00
InfinityPacer
db6321d032 fix(zspace): classify views by sampling first item when CollectionType missing 2026-05-12 11:56:44 +08:00
InfinityPacer
d6270dfb81 fix(zspace): degrade library refresh logs when endpoints return 404 2026-05-12 11:56:44 +08:00
InfinityPacer
cc52bdaaf3 fix(zspace): get_latest queries Users/{uid}/Items sorted by DateCreated 2026-05-12 11:56:44 +08:00
InfinityPacer
cbc8592b49 fix(zspace): sum per-view TotalRecordCount when Items/Counts is unavailable 2026-05-12 11:56:44 +08:00
InfinityPacer
14d648445e fix(zspace): fall back to Users/{uid}/Views for virtual folders 2026-05-12 11:56:44 +08:00
InfinityPacer
87777343d2 fix(zspace): fall back to Users/{uid}/Views for library folders 2026-05-12 11:56:44 +08:00
InfinityPacer
26aa49f323 fix(zspace): degrade get_user_count log when Users/Query is not implemented 2026-05-12 11:56:44 +08:00
InfinityPacer
ad8b6473fc fix(zspace): fall back to current user when Users list endpoint is unavailable 2026-05-12 11:56:44 +08:00
InfinityPacer
c32df7446d fix(zspace): drop Users/Me fallback to avoid mediaUid 400 2026-05-12 11:56:44 +08:00
album
05b34b9c26 feat(transfer): 增加手动整理预览模式(preview mode)
- ManualTransferItem/TransferTask 增加 preview 字段,支持同一接口双模式
- /api/v1/transfer/manual 透传 preview,预览时返回结构化结果不落盘
- ChainBase.transfer 增加 preview 参数并透传到 run_module
- TransferChain.do_transfer 预览分支复用完整命名/覆盖判定逻辑(dry-run)
- TransferChain.do_transfer 预览结束后显式 finish_task/fail_task,避免任务残留 running 状态导致重复预览失败
- TransHandler.transfer_media 预览分支跳过实际 copy/move/link/delete,仅返回目标路径
- FileManagerModule.transfer 透传 preview 参数
- 修复 /manual 失败分支 dict 类型导致 Response.message 校验错误
- 兼容性:preview 字段有默认值,旧客户端不传参时行为不变
2026-05-12 10:14:58 +08:00
jxxghp
99fbeecfa1 chore: update app version to v2.11.1-1 v2.11.1 2026-05-11 22:32:11 +08:00
jxxghp
41477601c7 feat: add test for ILinkClient connection and handle ilink_user_id error gracefully 2026-05-11 22:30:13 +08:00
jxxghp
a6ab9b76c1 feat: refactor ZSpace media server request handling and improve authorization headers 2026-05-11 22:24:15 +08:00
jxxghp
a62b6b6fd5 fix: correct plugin dependency package lookup 2026-05-11 21:24:14 +08:00
jxxghp
75a52ad751 更新 version.py 2026-05-11 18:37:00 +08:00
jxxghp
a2fa8d6f28 feat: rename methods for clarity in ZSpace media server integration 2026-05-11 18:35:20 +08:00
jxxghp
ed9116d81e feat: refactor ZSpace media server integration and enhance item management methods 2026-05-11 18:21:21 +08:00