Skip to content

chore: backwards-compat inventory — decide a removal horizon #732

Description

@psamiton

Problem

Project policy is "don't add backwards compatibility without asking," but a fair amount has accumulated deliberately over time and none of it has a removal date. Individually each shim is reasonable; collectively they're carry-cost (extra code paths, doc confusion, test surface). This issue is the inventory + a decision: keep indefinitely, or remove at a chosen version (e.g. next minor/major).

Inventory (as of 0.51.x)

Legacy CLI aliases

  • packages/cli/src/commands/seed.ts, sprout.ts — forward to volute seed create/sprout
  • packages/cli/src/commands/variant.ts — 4 deprecated subcommands forwarding to mind split/join/...
  • packages/cli/src/commands/mind.ts:76-88mind sleep/wake/seed/sprout legacy dispatch
  • packages/cli/src/commands/service.ts:92,99 — legacy aliases

Protocol/config shims

  • packages/daemon/src/web/middleware/auth.ts:18-30,178X-Volute-SessionX-Volute-Thread (warn-only, no fallback read; warns once per mind per daemon lifetime)
  • packages/daemon/src/lib/mind/volute-config.ts:13 — deprecated channel field still read
  • packages/daemon/src/lib/schema.ts:156 — null-parent legacy fallback
  • packages/daemon/src/lib/mind/migrate-thread-config.ts — session→thread config migration
  • packages/daemon/src/web/api/setup.ts:90 — legacy configure endpoint
  • packages/daemon/src/web/api/minds.ts — legacy upgrade and session-range paths (~:2285, ~:2983)

Startup migrations (probably keep longer — they repair on-disk state): migrateDotVoluteDir(), migrateMindState(), migrateConfigSecrets(), migrateSetupConfig()

Proposal

Tag each item with a removal milestone. Reasonable default: CLI aliases and the legacy endpoints go at the next minor after a release-notes warning; warn-only shims and on-disk migrations get one major cycle. Removing anything is a feat!:/fix!: decision per the release conventions if behavior-visible.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Normal priorityarea:platformDaemon internals, CI, refactors, extensions, CLIchore

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions