refactor: delegate filetree asset append

This commit is contained in:
lix-2026
2026-05-25 03:14:54 +08:00
parent 3361a5e1b1
commit 33ac2d927c
3 changed files with 143 additions and 1 deletions
@@ -133,3 +133,10 @@ UI / 浏览器可见项必须有真实浏览器截图或结构化 smoke 证据
- 修改:`document-conflict-panel-runtime.js` 新增并导出 `runSessionConflictAction(action, deps)`,只负责 promise/catch 动作包装;`web_shell.rs` 仍持有 `acceptDiskVersion``keepCurrentEditorVersion``writeMergedConflictResult`、status 和重新渲染业务逻辑。
- 已验证:`node --check rust/crates/mnote-web/browser/document-conflict-panel-runtime.js``cargo fmt --manifest-path rust/Cargo.toml --all --check``cargo check --manifest-path rust/Cargo.toml -p mnote-web``cargo test --manifest-path rust/Cargo.toml -p mnote-web document_conflict_panel_runtime_contains_dom_helpers -- --test-threads=1``cargo test --manifest-path rust/Cargo.toml -p mnote-web mnote_browser_runtime_assets_are_explicitly_mounted -- --test-threads=1``NODE_PATH=/mnt/Data1T/mnote/node_modules node scripts/task451-local-markdown-conflict-resolution-ui-smoke.js``NODE_PATH=/mnt/Data1T/mnote/node_modules node scripts/task479-local-folder-markdown-resource-lifecycle-smoke.js`
- 未完成:`acceptDiskVersion` / `keepCurrentEditorVersion` / `writeMergedConflictResult` 业务逻辑、document session lifecycle、secondary pane conflict smoke 仍未迁出或覆盖。
- 2026-05-25Batch I 只派发 1 个只读 Reasonix worker 审计 filetree DOM helper 边界,使用独立 worktree `/mnt/Data1T/mnote-worktrees/0525-i-3-20-filetree-dom-readonly`run id `reasonix-2026-05-24T19-09-00-815Z-4a0a3df4`,并显式使用 `--no-memory-recall` 降低任务串线风险。
- Codex 已读取 Hindsight recall、`process-handoff.md/json``result.json`,并核对 worktree `git status --short` / `git diff --stat` 为空;runner 完成后由主控终止残留进程。
- 审计结论:`revealFileTreeRow``revealFileTreeAssetRow``appendUploadedAssetRow` 可迁到 `filetree-runtime.js``refreshLocalFolderSidebarSnapshot` 仍是 fetch / projection render / selection / focus / attachment existence 的 shell 编排,不迁。
- Codex 主控完成 filetree DOM append 小切片:`filetree-runtime.js` 新增并导出 `revealFileTreeRow``revealFileTreeAssetRow``appendUploadedAssetRow``layout.rs` 的同名 wrapper 优先委托 runtime,保留完整 inline fallback,并通过 `fileTreeRuntimeDeps` 注入 `escapeHtml``objectIdentityAttr`、上传资源标题/类型 helper 和当前 source/document。
- 修改:`rust/crates/mnote-web/browser/filetree-runtime.js``rust/crates/mnote-web/src/ssr/pages/layout.rs`
- 已验证:`node --check rust/crates/mnote-web/browser/filetree-runtime.js``cargo fmt --manifest-path rust/Cargo.toml --all --check``cargo check --manifest-path rust/Cargo.toml -p mnote-web``cargo test --manifest-path rust/Cargo.toml -p mnote-web filetree_runtime -- --test-threads=1``cargo test --manifest-path rust/Cargo.toml -p mnote-web sidebar_upload_runtime_routes_local_markdown_assets_to_local_folder -- --test-threads=1``NODE_PATH=/mnt/Data1T/mnote/node_modules node scripts/task479-local-folder-markdown-resource-lifecycle-smoke.js`
- 未完成:`refreshLocalFolderSidebarSnapshot`、async preflight、`acceptDiskVersion` / `keepCurrentEditorVersion` / `writeMergedConflictResult` 业务逻辑、document session lifecycle、secondary pane conflict smoke 仍未迁出或覆盖。