pub fn start_core(
config_dir: &Path,
project: Option<&str>,
) -> Result<Arc<Workspace>>Expand description
Build the workspace and start the whole subsystem wave, in the order the boot has always started it.
project is the CLI’s positional, validated here because a mistyped
name has to fail the boot the same way for every caller; what each
caller then DOES with it differs (the headless server starts that
project’s sessions).
Not async: every step is a spawn, a store write or the skill install, and the await on
anything that actually does I/O belongs to serve_socket. Nothing here
needs a LocalSet either - every task in this wave is a plain
tokio::spawn, verified by the headless boot test exercising it
without one.