Hmbown/CodeWhale · info · anyhow::Error

Account settings import is not available yet; local config w

Error message

Account settings import is not available yet; local config was not changed. Run `codewhale account pull --dry-run` to inspect the signed-in account.

What it means

`codewhale account pull` without --dry-run is intentionally unimplemented: the service's /api/me exposes identity and key metadata, not a versioned settings document that could be applied locally, so the command stays read-only until that import contract exists. The bail guarantees local config is never changed by a half-specified import.

Source

Thrown at crates/cli/src/cloud.rs:686

                )?;
                Ok(())
            }
            CloudKeysCommand::Remove { provider } => {
                let user = client.me()?;
                client.remove_key(provider)?;
                writeln!(
                    out,
                    "Removed {} from Codewhale account {} (profile {}).",
                    provider.slug(),
                    printable(&user.id),
                    printable(profile)
                )?;
                Ok(())
            }
        },
        CloudCommand::Pull(args) => {
            if !args.dry_run {
                bail!(
                    "Account settings import is not available yet; local config was not changed. Run `codewhale account pull --dry-run` to inspect the signed-in account."
                );
            }
            let user = client.me()?;
            // `/api/me` currently exposes account identity and key metadata,
            // not a versioned settings document that can be applied locally.
            // Stay read-only and explicit until that import contract exists.
            writeln!(out, "Account settings (pull --dry-run):")?;
            writeln!(out, "Account ID: {}", printable(&user.id))?;
            writeln!(out, "Profile: {}", printable(profile))?;
            writeln!(out, "API: {api_base}")?;
            writeln!(
                out,
                "dry-run: remote settings import is not available; local config unchanged"
            )?;
            // Show the invariant: Bearer custody stays in the OS keyring, never in config.toml.
            writeln!(
                out,

View on GitHub (pinned to 0c42157ee5)

Solutions

  1. Run `codewhale account pull --dry-run` to inspect account id, profile, API base, and key metadata.
  2. Apply any wanted settings manually in local config; there is no automated import yet.
  3. Track the feature; once /api/me exposes a versioned settings document, non-dry-run pull will ship.
  4. Remove pull (non-dry-run) from automation scripts.

Example fix

# before
codewhale account pull

# after
codewhale account pull --dry-run
Defensive patterns

Strategy: validation

Validate before calling

// In automation, force the safe mode explicitly
let args = PullArgs { dry_run: true }; // never construct non-dry-run pull today

Prevention

When it happens

Trigger: Running `codewhale account pull` (no flags) expecting settings to be applied; running it in scripts that assumed pull applies remote settings.

Common situations: Users assuming parity with `push`, automation invoking pull for config sync, onboarding docs that promise account-settings sync before the feature shipped.

Related errors


AI-assisted analysis of Hmbown/CodeWhale@0c42157ee5 (2026-08-20). Data as JSON: /api/errors/5206a7d58edba2ee. Report an issue: GitHub.