chore: 保存剩余工作区改动并清理到干净状态

- 补 OnlyOffice callback 附件写回的 media asset bridge 适配层,并继续扩展 documents bridge/测试覆盖

- 提交当前 OMX hooks 删除与 Harness 运行状态文件更新,保留本轮任务执行轨迹

- 一并提交仓库中已跟踪的 Rust target 构建产物与相关协议桥接变更,确保工作区清零
This commit is contained in:
lix-2026
2026-04-15 03:34:52 +08:00
parent b33ffb99e7
commit f1da2abda4
209 changed files with 1236 additions and 273 deletions
+38 -2
View File
@@ -22,8 +22,8 @@ mod tests {
use super::*;
use core_protocol::{
command::{
CreatePage, CreateWorkspace, PatchPageBlock, SavePageContent, UpdatePageOptions,
UpdatePageStats, UpdatePageTitle,
CreatePage, CreateWorkspace, PatchPageBlock, ReplaceMediaAssetStorage,
SavePageContent, UpdatePageOptions, UpdatePageStats, UpdatePageTitle,
},
query::{GetPage, GetPageContent, GetPageMeta, ListSidebarDataset},
ActorPayload, CommandEnvelope, QueryEnvelope, SourcePayload, TargetRef,
@@ -346,6 +346,42 @@ mod tests {
assert!(request.payload_json.contains("\"name\":\"documents.options.update\""));
}
#[test]
fn media_asset_writeback_command_maps_to_replace_storage_from_upload() {
let command = CommandEnvelope {
name: "media.assets.replace_storage".into(),
command_id: "cmd_asset_1".into(),
idempotency_key: Some("idem_asset".into()),
actor: ActorPayload {
actor_type: "service".into(),
actor_id: "onlyoffice-callback".into(),
session_id: Some("onlyoffice".into()),
},
source: SourcePayload {
channel: "onlyoffice-callback".into(),
client: "wolai-frontend".into(),
},
target: Some(TargetRef {
workspace_id: Some("ws_1".into()),
page_id: Some("page_1".into()),
block_id: None,
}),
payload: ReplaceMediaAssetStorage {
asset_id: "asset_1".into(),
storage_id: "storage_1".into(),
},
reason: Some("ONLYOFFICE 回调写回附件".into()),
refs: vec!["checklist:d".into()],
dry_run: false,
validate_only: false,
};
let request = build_write_request(&demo_context(), &command).expect("write request should build");
assert_eq!(request.function_name, "mediaAssets:replaceStorageFromUpload");
assert_eq!(request.workspace_id.as_deref(), Some("ws_1"));
assert!(request.payload_json.contains("\"name\":\"media.assets.replace_storage\""));
}
#[test]
fn document_meta_query_maps_to_documents_get_meta() {
let query = QueryEnvelope {