The web-canvas daemon (web_canvas_server + its #[path] tests) + the CLI standard-mode
chat handler (web_chat_standard) — the mutually-coupled top of the closure — move together
to op_web_daemon; all their op_web_daemon::* refs flip to crate:: (the daemon is now
self-contained intra-crate). The op-host-desktop mcp_serve residual dispatcher's --serve-web
arm repoints to op_web_daemon::web_canvas_server::{parse_serve_web_args, run_web_canvas}.
WebCanvasState::new marked #[cfg(test)] (test-only callers) — resolves a long-standing
dead_code warning. op-host-desktop now holds only the GUI host + argv dispatcher; the
headless daemon is entirely in op-web-daemon. op-web-daemon 326 tests green, 0 warnings.