{"record":{"id":"78db82a80609784b","repo":"Hmbown/CodeWhale","slug":"codewhale-continue-resumes-the-interactive-tui","errorCode":null,"errorMessage":"`codewhale --continue` resumes the interactive TUI. Use `codewhale exec --continue <PROMPT>` to continue a session non-interactively.","messagePattern":"`codewhale --continue` resumes the interactive TUI\\. Use `codewhale exec --continue <PROMPT>` to continue a session non-interactively\\.","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/cli/src/lib.rs","lineNumber":2035,"sourceCode":"    let mut forwarded = Vec::new();\n    if cli.continue_session {\n        forwarded.push(\"--continue\".to_string());\n    }\n\n    let prompt =\n        cli.prompt_flag\n            .iter()\n            .chain(cli.prompt.iter())\n            .fold(String::new(), |mut acc, part| {\n                if !acc.is_empty() {\n                    acc.push(' ');\n                }\n                acc.push_str(part);\n                acc\n            });\n    if !prompt.is_empty() {\n        if cli.continue_session {\n            bail!(\n                \"`codewhale --continue` resumes the interactive TUI. Use `codewhale exec --continue <PROMPT>` to continue a session non-interactively.\"\n            );\n        }\n        forwarded.push(\"--prompt\".to_string());\n        forwarded.push(prompt);\n    }\n\n    Ok(forwarded)\n}\n\nfn resolve_runtime_for_dispatch(\n    store: &mut ConfigStore,\n    runtime_overrides: &CliRuntimeOverrides,\n) -> ResolvedRuntimeOptions {\n    let runtime_secrets = Secrets::auto_detect();\n    resolve_runtime_for_dispatch_with_secrets(store, runtime_overrides, &runtime_secrets)\n}\n","sourceCodeStart":2017,"sourceCodeEnd":2053,"githubUrl":"https://github.com/Hmbown/CodeWhale/blob/0c42157ee52f9d55af2b506d71b46249910f77d3/crates/cli/src/lib.rs#L2017-L2053","documentation":"Codewhale rejects the combination of `--continue` with any prompt input (`-p/--prompt` or a positional prompt) while building forwarded arguments for the interactive TUI. `--continue` resumes the interactive TUI and takes no prompt; non-interactive continuation with a prompt must go through the `exec` subcommand. The message tells you the exact replacement command shape.","triggerScenarios":"`codewhale --continue \"fix the failing test\"`, `codewhale -c --prompt \"summarize\"`, or scripts that append a prompt to a resume invocation; any invocation where the concatenated prompt is non-empty and `continue_session` is true.","commonSituations":"Users coming from other CLIs (e.g. Claude Code-style `--continue \"prompt\"`) expecting continue-plus-prompt to work; shell aliases that always inject a prompt; copy-pasting an old command after the flag semantics changed.","solutions":["For non-interactive continuation with a prompt, use `codewhale exec --continue \"<PROMPT>\"`","For interactive resume, drop the prompt entirely: `codewhale --continue`","Audit shell aliases/scripts that append prompts to resume commands"],"exampleFix":"# before\n$ codewhale --continue \"fix the failing test\"\n\n# after\n$ codewhale exec --continue \"fix the failing test\"","handlingStrategy":"validation","validationCode":"#!/usr/bin/env bash\nprompt=\"fix the failing test\"\nif [ -n \"$prompt\" ] && [ \"$CONTINUE\" = \"1\" ]; then\n  exec codewhale exec --continue \"$prompt\"   # non-interactive continue\nelse\n  exec codewhale --continue                   # interactive resume\nfi","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Never append a prompt to `--continue`; keep the two modes separate in scripts","Encode the rule in wrappers: prompt present → `exec` subcommand; no prompt → plain `--continue`"],"tags":["cli","arguments","mutually-exclusive-flags","continue","exec"],"backgroundTag":"mutually-exclusive-flags","analyzedSha":"0c42157ee52f9d55af2b506d71b46249910f77d3","analyzedAt":"2026-08-20T21:50:45.477Z","schemaVersion":2},"datasetVersion":"2026-08-21T13:17:26.733Z"}