Opening lib/Mycelium.jl/src/free_energy.jl on the desktop shows “Loading editor…” and never finishes (screenshot markdown/prompts/load_editor.png, 2026-09-20; polarity_resolution.jl in another tab, a 195-node graph rendering in the tile above, “julia: language server exited” in the status bar).

Done 2026-09-20. Two things, one cause found by inspection (the web build could not reproduce it — the same file opened fine in Firefox):

  1. Cause: the code editor mounted its view from a use_effect. On desktop the DOM mutation reaches the webview asynchronously, so an eval started from an effect can run before the host element exists; the script then returned silently, no ready ever came, and the panel showed “Loading editor…” forever (the P-047 family — the graph and rich editors were moved to onmounted for the same reason in Milestone 6/9; the code editor was not). It is timing-dependent, which is why it hit a heavy moment (a big graph laying out in the neighbouring tile). Fix: the view is mounted from the host div’s onmounted.
  2. Never hang silently again: the mount script wraps cm.mount in try/catch and reports an error message; the panel shows “The editor could not start … please report it with the message below” with the JavaScript error and stack instead of “Loading editor…“. A grammar that throws while being set up (languages.ts) now degrades to plain text instead of taking the editor down. Not related: “julia: language server exited” is LanguageServer.jl not being installed (julia --project=@lsp -e 'using Pkg; Pkg.add("LanguageServer")' — the hint in the status bar); the editor does not wait for it.

How to file this kind of thing: exactly like this — a screenshot into markdown/prompts/ and one line saying what you did and what you saw; the number and the “Done” paragraph are mine to add.