Split lib.rs::run into named construction and wiring functions
run() was 2,724 lines that built every controller, owned the develop session and its render loop, and registered every develop-screen callback inline — the state CH-1 in docs/dev/code-health.md describes. This is the mechanical split CH-1 calls for, done in one pass rather than section by section since develop_ui.rs only compiles once lib.rs stops registering those callbacks itself. develop_ui.rs is new: a DevelopWiring struct holding the session, the rows model, the redraw/render closures and the other controllers' handles, and one wire_* function per section run() used to contain — presets, export, the adjustment panel, film, undo/redo, zoom/pan/crop, rotation/flips/ straightening, navigation and peaking — called in the order run() registered them. window travels as its own parameter throughout rather than living on the struct, because the generated AppWindow type is not Clone; every other field is an owned clone so each function's body could be pasted from run() unchanged. lib.rs::run is now under 300 lines: construction and startup only, calling named functions for the window and its diagnostics/inference wiring, the launch/library/collections/identity/settings screens, import and merge, the render loop (render_now/redraw/show), the remote open path, the window chrome (resize, layout class, panel toggles, back gesture), and develop_ui::wire for the rest. Every TRACES and GESTURE comment moved with the code it annotates. Two latent type errors surfaced while restructuring rather than being introduced by it: activity and display were being passed around as bare ActivityLog/DisplayWatch instead of the Rc<...> their constructors actually return, which only worked before because nothing needed to name the type explicitly.
This commit is contained in: