Skip to content

Epic: retire the deepseek-tui-era identifiers — tiered migration (internals now, env aliases deprecated to 0.10, storage keys via explicit migration) #5443

Description

@Hmbown

Why tiered

AGENTS.md: compatibility identifiers and storage keys change only through an
explicit migration. Some DEEPSEEK_* identifiers are the provider's name and
stay (DEEPSEEK_API_KEY as provider credential — ANTHROPIC_API_KEY-shaped).
The rest split by blast radius.

Tier 0 — keep (provider identity, not era)

  • DEEPSEEK_API_KEY where it means the DeepSeek provider credential
    (crates/tui/src/dsh_credentials.rs:11,144; provider auth in setup).

Tier 1 — internal renames, land in 0.9.9 (zero user impact)

  • handle_deepseek_turn → run_turn (core/engine/turn_loop.rs:512; call
    sites engine.rs:4222 + 9 in engine/tests.rs; stale doc refs in
    crates/core/src/engine/thread/{mod,executor}.rs, dispatch.rs)
  • pi_delegate/pi_timeout (tools/shell.rs:3792-3799) + pi_* edit helpers
    (tools/file.rs:1578-1775) — v0.9.6 vocabulary; coordinate with the
    one-bash consolidation design
  • SubAgentRuntime::step_api_timeout doc ("Per-step DeepSeek API timeout")

Tier 2 — env aliases: CODEWHALE_ primary + deprecation warning in 0.9.9, delete at 0.10.0

Template: CODEWHALE_STREAM_IDLE_TIMEOUT_SECS (subagent_limits.rs:56-58) already
carries DEEPSEEK_STREAM_IDLE_TIMEOUT_SECS as a legacy alias.

  • DEEPSEEK_MODEL / DEEPSEEK_DEFAULT_TEXT_MODEL (config/src/lib.rs:6737 chain)
  • DEEPSEEK_PREFER_BWRAP — and flip config.example.toml:378 to document
    CODEWHALE_PREFER_BWRAP as the override
  • DEEPSEEK_CONFIG_PATH (ui.rs:3179-3205, startup_defaults.rs:872,919, views/mod.rs:5166)
  • DEEPSEEK_SESSION_ID (ui/provider_routes.rs:17)
  • DEEPSEEK_TOOL_CALL_ID (tui/tool_routing.rs:1822)
  • DEEPSEEK_BUILD_VERSION (tui/underwater.rs:323)
  • DEEPSEEK_RUNTIME_HOST / DEEPSEEK_RUNTIME_TOKEN (tui/setup/remote.rs:30,35)
  • DEEPSEEK_SANDBOX child-env marker (sandbox/*) — observable by user
    scripts; keep as alias longest
  • Mechanism: each alias read logs one deprecation line naming the new
    spelling; CHANGELOG "Deprecations" section each release until 0.10.0 removes.

Tier 3 — storage keys: read-migration + one-time notice in 0.9.9, delete at 0.10.0

  • ~/.deepseek config-home fallback (config/src/lib.rs:5828,5873)
  • ~/.deepseek/sessions legacy migration (session_manager.rs:2895+ — exists)
  • .deepseek/instructions.md (core/src/fragments.rs:259)
  • .deepseek/handoff.md (tui/src/prompts.rs:83)
  • Each: keep read-path, add a one-time "found legacy ~/.deepseek — migrated"
    notice where missing, remove in 0.10.0. bwrap protected-descendant lists
    keep guarding .deepseek paths while any migration reads them.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    Status
    Backlog

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions