pub fn run(
config: &mut Config,
tel: Option<&Arc<Telemetry>>,
) -> Result<SetupReport>Expand description
Entry point. Mutates config in place (providers + default_provider);
the caller is responsible for persisting it to disk after a successful
run. This keeps the core free of I/O concerns — tests can call run
against a Config::default() without touching the filesystem.
Emits exactly one TakeCodingplan { Success | Fail } event at each exit path.