新增: 媒体引用化存储与消息溯源

- media_store 模块: sha256 去重落盘 + 阿里云 OSS 双写(签名手写), OSS 失败降级本机引用
- 飞书图片入站: image 消息下载装配 vision 片, 3 次退避+120s 超时+残件清理防线
- 出站回传: 报告 [交付] 路径行自动上传飞书原生附件, 凭据/密钥名拦截兜底
- 溯源 V52: ai_messages.source 列, 飞书 msg_id/chat_id/发送者随消息落库
- spawn offload: 桌面粘贴图 base64 统一转落盘引用, SQLite 不进大字符串
- 引用统一 url 字段(https/file://)不自造 scheme, image_ref 发送前按需展开
This commit is contained in:
lxy
2026-10-11 07:33:18 +08:00
parent 8aefe3254c
commit 18e50c5af7
23 changed files with 1542 additions and 105 deletions
Generated
+17 -1
View File
@@ -1039,7 +1039,7 @@ dependencies = [
[[package]]
name = "devflow"
version = "0.1.1"
version = "0.1.2"
dependencies = [
"anyhow",
"async-trait",
@@ -1059,7 +1059,10 @@ dependencies = [
"df-workflow",
"futures",
"futures-util",
"hex",
"hmac",
"htmd",
"httpdate",
"keyring",
"larksuite-oapi-sdk-rs",
"percent-encoding",
@@ -1067,6 +1070,8 @@ dependencies = [
"reqwest 0.12.28",
"serde",
"serde_json",
"sha1 0.10.6",
"sha2 0.10.9",
"sys-locale",
"tauri",
"tauri-build",
@@ -1097,6 +1102,7 @@ version = "0.1.0"
dependencies = [
"anyhow",
"async-trait",
"base64 0.22.1",
"bytes",
"df-ai-core",
"df-types",
@@ -1299,6 +1305,7 @@ checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
dependencies = [
"block-buffer 0.10.4",
"crypto-common 0.1.7",
"subtle",
]
[[package]]
@@ -2173,6 +2180,15 @@ version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
[[package]]
name = "hmac"
version = "0.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
dependencies = [
"digest 0.10.7",
]
[[package]]
name = "htmd"
version = "0.5.5"