{"record":{"id":"5206a7d58edba2ee","repo":"Hmbown/CodeWhale","slug":"account-settings-import-is-not-available-yet-loca","errorCode":null,"errorMessage":"Account settings import is not available yet; local config was not changed. Run `codewhale account pull --dry-run` to inspect the signed-in account.","messagePattern":"Account settings import is not available yet; local config was not changed\\. Run `codewhale account pull --dry-run` to inspect the signed-in account\\.","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"crates/cli/src/cloud.rs","lineNumber":912,"sourceCode":"                let who = machine_client.whoami(sleeper)?;\n                machine::write_whoami(out, &who, api_base, machine_client.key_head())\n            }\n            None => {\n                let user = client.me()?;\n                write_account(out, \"Signed in to Codewhale.\", profile, api_base, &user)\n            }\n        },\n        CloudCommand::Agent => {\n            // The agent route is machine-key-only by design, so CI and humans\n            // never blur in an audit trail. There is no session fallback.\n            let key = machine.require()?;\n            let machine_client = machine::MachineClient::new(transport, key);\n            let agent = machine_client.agent(sleeper)?.agent;\n            machine::write_agent(out, &agent)\n        }\n        CloudCommand::Pull(args) => {\n            if !args.dry_run {\n                bail!(\n                    \"Account settings import is not available yet; local config was not changed. Run `codewhale account pull --dry-run` to inspect the signed-in account.\"\n                );\n            }\n            let user = client.me()?;\n            // `/api/me` currently exposes account identity and key metadata,\n            // not a versioned settings document that can be applied locally.\n            // Stay read-only and explicit until that import contract exists.\n            writeln!(out, \"Account settings (pull --dry-run):\")?;\n            writeln!(out, \"Account ID: {}\", printable(&user.id))?;\n            writeln!(out, \"Profile: {}\", printable(profile))?;\n            writeln!(out, \"API: {api_base}\")?;\n            writeln!(\n                out,\n                \"dry-run: remote settings import is not available; local config unchanged\"\n            )?;\n            // Show the invariant: Bearer custody stays in the OS keyring, never in config.toml.\n            writeln!(\n                out,","sourceCodeStart":894,"sourceCodeEnd":930,"githubUrl":"https://github.com/Hmbown/CodeWhale/blob/73e0f67d83c59909b571efdfc88c4bc28c309cb1/crates/cli/src/cloud.rs#L894-L930","documentation":"`codewhale account pull` only implements the `--dry-run` preview: /api/me exposes identity and key metadata but not a versioned settings document that could be applied locally. Without `--dry-run` the command refuses early, guaranteeing local config is untouched.","triggerScenarios":"Running `codewhale account pull` without the `--dry-run` flag.","commonSituations":"Users expecting pull to actually import account settings today; habits from other tools where pull applies changes; attempting config sync between machines.","solutions":["Re-run with `--dry-run`: `codewhale account pull --dry-run`.","Wait for the settings-import feature; do not script around the guard, since local config must not change.","Manage local config directly until import ships."],"exampleFix":"// before\ncodewhale account pull\n// after\ncodewhale account pull --dry-run","handlingStrategy":"validation","validationCode":"// Only invoke pull with --dry-run until import ships\nlet args: Vec<String> = std::env::args().collect();\nassert!(args.iter().any(|a| a == \"--dry-run\"), \"pull is dry-run-only\");","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Always pass `--dry-run` to `codewhale account pull`.","Treat pull as a read-only preview until the import feature ships.","Never script non-interactive pull without the flag.","Check `codewhale account pull --help` for the current capability set."],"tags":["cli","feature-gate","dry-run"],"backgroundTag":"feature-not-enabled","analyzedSha":"73e0f67d83c59909b571efdfc88c4bc28c309cb1","analyzedAt":"2026-09-22T01:30:00.501Z","contentChangedAt":"2026-09-22T01:30:00.501Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}