# Batch I Worker B: 3-20 filetree DOM runtime read-only audit Project root: `/mnt/Data1T/mnote-worktrees/0525-i-worker-b-3-20-filetree-dom-runtime-readonly` You are a read-only audit worker. Do not modify files, do not run formatters that write files, do not commit, and do not clean unrelated files. ## Goal Audit the next smallest safe extraction boundary for filetree DOM runtime helpers after the existing upload/runtime splits. Focus only on: - `refreshLocalFolderSidebarSnapshot` - `appendUploadedAssetRow` - `revealFileTreeRow` - `revealFileTreeAssetRow` - any existing helper already in `rust/crates/mnote-web/browser/filetree-runtime.js` ## Questions to answer 1. Which part, if any, can move to `filetree-runtime.js` without moving API fetch, source ownership, or full shell orchestration? 2. Is `appendUploadedAssetRow` safe to split into a pure row builder plus inline shell insertion, or should it stay in `layout.rs` for now? 3. Is `refreshLocalFolderSidebarSnapshot` safe to delegate rendering/apply steps to runtime, or should fetch/render coupling remain inline? 4. What exact function signature and allowed files should Codex use for the next implementation slice? 5. What tests/smoke should Codex run after the implementation? ## Required checks Run only read-only commands: ```bash git status --short node --check rust/crates/mnote-web/browser/filetree-runtime.js cargo check --manifest-path rust/Cargo.toml -p mnote-web ``` If a command is blocked by environment or lock contention, record the exact reason. ## Required output - `modified_files`: must be `[]` - recommended extraction slice or explicit "do not extract yet" - files/functions inspected - verification commands and results - risks / do-not-move list - `process-handoff.md`, `process-handoff.json`, `result.json`, and `final.md` through the runner