{"record":{"id":"06acaeefdeb6f072","repo":"pbakaus/impeccable","slug":"error-06acae","errorCode":null,"errorMessage":"{}\n","messagePattern":"\\{\\}\n","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/live/src/live_boot.rs","lineNumber":63,"sourceCode":"fn rel_or_null(base: &str, p: Option<&str>) -> Value {\n    match p {\n        Some(p) => json!(jsp::relative(\"/\", base, p)),\n        None => Value::Null,\n    }\n}\n\n/// JS: safeRead(p): file text or null (empty text is falsy in the gate).\nfn read_nonempty(p: Option<&str>) -> Option<String> {\n    p.and_then(safe_read)\n}\n\npub fn run(args: &[String], io: &mut Io) -> i32 {\n    let cwd = io.cwd.to_string_lossy().into_owned();\n    let env = io.env.clone();\n    let live_target = match resolve_live_target(&cwd, args, &env) {\n        Ok(t) => t,\n        Err(msg) => {\n            io.err(&format!(\"{}\\n\", msg));\n            return 1;\n        }\n    };\n    if args.iter().any(|a| a == \"--help\" || a == \"-h\") {\n        println(io, HELP);\n        return 0;\n    }\n\n    if let Some(sel) =\n        resolve_target_selection(&live_target.original_cwd, &live_target.target_options, &env)\n    {\n        let payload = json!({\n            \"ok\": false,\n            \"error\": \"target_selection_required\",\n            \"targetPath\": null,\n            \"projectRoot\": sel.project_root,\n            \"repoRoot\": sel.repo_root,\n            \"targetCandidates\": sel.target_candidates,","sourceCodeStart":45,"sourceCodeEnd":81,"githubUrl":"https://github.com/pbakaus/impeccable/blob/f2c7051853848826aac2f4646581d62a732155ad/crates/live/src/live_boot.rs#L45-L81","documentation":"live_boot's run prints the resolver's error message to stderr and exits with code 1 when resolve_live_target cannot determine the live target for the current working directory. The `{}` placeholder carries the actual reason (e.g. no package.json/dev server found).","triggerScenarios":"Running a live verb from a directory where resolve_live_target fails: no framework project detected, missing package.json, unrecognized dev server config, or unsupported cwd layout.","commonSituations":"Invoking `impeccable live` outside a project root or in a subdirectory without a resolvable root; a framework the target resolver does not support yet; corrupted or missing package.json.","solutions":["Run the command from (or point it at) the project root containing package.json.","Start the framework dev server first so the target can be resolved.","Read the printed message (the `{}` content) for the specific resolution failure and adjust the project layout or supported-framework config."],"exampleFix":"// before (run in ~, no project)\n$ impeccable live\n# error printed, exit 1\n// after\n$ cd ~/my-app && impeccable live","handlingStrategy":"validation","validationCode":"import { existsSync, readFileSync } from 'node:fs';\nif (!existsSync('package.json')) throw new Error('Run impeccable live from the project root (package.json not found)');\nJSON.parse(readFileSync('package.json', 'utf8'));","typeGuard":null,"tryCatchPattern":"const res = await execFile('impeccable', ['live']).catch(e => e);\nif (res.code === 1 && res.stderr.includes('live')) {\n  console.error('Could not resolve live target: cd into the project root and start the dev server first');\n}","preventionTips":["Always run live verbs from the directory containing package.json.","Start the framework dev server before running `impeccable live`.","Verify the project's framework is one the target resolver supports."],"tags":["cli","live","boot","target-resolution"],"backgroundTag":"invalid-config-value","analyzedSha":"f2c7051853848826aac2f4646581d62a732155ad","analyzedAt":"2026-09-08T04:51:14.109Z","contentChangedAt":"2026-09-08T04:51:14.109Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}