Hmbown/CodeWhale · error

{LEGACY_ANTIGRAVITY_TOMBSTONE_MESSAGE}

Error message

{LEGACY_ANTIGRAVITY_TOMBSTONE_MESSAGE}

What it means

`top_level_provider_override` in crates/cli/src/lib.rs rejects the legacy `antigravity` provider selector with a tombstone message from codewhale-config (`LEGACY_ANTIGRAVITY_TOMBSTONE_MESSAGE`). The provider was removed/renamed, and this bail turns any use of the old name into an explicit, permanent failure rather than a silent alias or a confusing 'invalid value' error.

Solutions

  1. Read the tombstone message printed with the error and switch to the replacement provider name it names.
  2. Update any scripts, aliases, or config files that still say `antigravity`.
  3. Run `codewhale --help` (or list providers) to see the currently valid `--provider` values.

Example fix

// before
codewhale --provider antigravity "fix the bug"
// after (use the current provider name)
codewhale --provider <new-provider-name> "fix the bug"
Defensive patterns

Strategy: validation

Validate before calling

const LEGACY = ['antigravity'];
if (LEGACY.includes(process.env.CW_PROVIDER)) throw new Error(`provider '${process.env.CW_PROVIDER}' is removed; see tombstone message`);

Prevention

When it happens

Trigger: Passing `--provider antigravity` (or any value for which `is_antigravity_legacy_selector` returns true) at the top level of any command, or via the alias-clearing test path; also any config/script still specifying the old provider name.

Common situations: Users upgrading from an older codewhale version where `antigravity` was a valid provider; docs, shell aliases, or CI configs that still contain the old name; following an outdated tutorial.

Understand the failure class

Background: "is deprecated and will be removed" — deprecation warnings for old API names, keywords, and options, and how to migrate before the removal release — this error's family across 29 libraries.

Related errors


AI-assisted analysis of Hmbown/CodeWhale@73e0f67d83 (2026-09-22). Data as JSON: /api/errors/6e0012f2648981cf. Report an issue: GitHub.

Appendix: source

Thrown at crates/cli/src/lib.rs:527

             set edit:completion:arg-completer[{alias}] = $edit:completion:arg-completer[{bin}]\n"
        ),
        _ => script,
    }
}

fn command_accepts_raw_provider(command: Option<&Commands>) -> bool {
    matches!(command, Some(Commands::Exec(_) | Commands::Fleet(_)))
}

fn top_level_provider_override(
    provider: Option<&str>,
    command: Option<&Commands>,
) -> Result<Option<ProviderKind>> {
    let Some(provider) = provider else {
        return Ok(None);
    };
    if is_antigravity_legacy_selector(provider) {
        bail!(codewhale_config::LEGACY_ANTIGRAVITY_TOMBSTONE_MESSAGE);
    }
    if let Some(provider) = builtin_provider_arg(provider) {
        return Ok(Some(provider));
    }
    if command_accepts_raw_provider(command) {
        return Ok(None);
    }

    let expected = ProviderKind::names_hint();
    bail!(
        "invalid value '{provider}' for '--provider <PROVIDER>': expected one of {expected}; configured custom providers are accepted only by exec and fleet"
    )
}

fn prepare_raw_provider_tui_dispatch(
    cli: &Cli,
    command: Option<&Commands>,
    runtime_overrides: &CliRuntimeOverrides,

View on GitHub (pinned to 73e0f67d83)