5175dfb739
Critical fixes (46 audit findings addressed): app.rs:74 — poll() error in event loop now logs + breaks instead of silently continuing (prevents silent hang on stdin failure) config.rs:47 — .expect() in Config::default() replaced with unwrap_or_else + log::error + full-field fallback config dialog_ops.rs:831-842 — .expect() in spawned copy/move threads replaced with let-else pattern that sends OpsError through the channel gracefully (no more thread panics) app.rs:43-46 — current_dir / canonicalize errors now logged via inspect_err before falling back main.rs:115 — logging init failure now prints to stderr via unwrap_or_else(eprintln!) instead of silent discard viewer/mod.rs:540 — filepos save failure now logged at debug level instead of silently swallowed terminal/mod.rs:73-74 — tcgetattr failure now logged at warn level with a clear message about incomplete terminal restore Tests: 1427 pass, zero warnings.