Files
git.stella-ops.org/docs/features/checked/cli/backward-compatible-command-aliases.md
2026-02-14 09:11:48 +02:00

45 lines
2.8 KiB
Markdown

# Backward-Compatible Command Aliases
## Module
Cli
## Status
VERIFIED
## Description
Old command paths preserved as aliases with deprecation warnings, allowing smooth migration without breaking existing CI pipelines.
## Implementation Details
- **Route Mapping**: `src/Cli/StellaOps.Cli/cli-routes.json` -- JSON-driven route mapping with 60+ deprecated-to-new mappings. Each mapping defines `old` path, `new` path, `type: "deprecated"`, `removeIn` version, and `reason`.
- **Command Router**: `src/Cli/StellaOps.Cli/Infrastructure/` -- route-based command router that intercepts old paths and redirects to new commands
- **Deprecation System**: `src/Cli/StellaOps.Cli/Commands/CommandFactory.cs` -- command factory that registers aliases alongside primary commands
- **Key consolidation mappings**:
- `notify *` -> `config notify *` (settings consolidation)
- `admin feeds *` -> `config feeds *` (feed configuration)
- `feeds list` -> `config feeds list` (feed configuration)
- `integrations *` -> `config integrations *` (integration configuration)
- `registry list` -> `config registry list` (registry configuration)
- `sources list` -> `config sources list` (source configuration)
- `signals list` -> `config signals list` (signal configuration)
- `attest verify` -> `verify attestation` (verification consolidation)
- **Tests**: `src/Cli/__Tests/StellaOps.Cli.Tests/Integration/DeprecationWarningTests.cs`, `src/Cli/__Tests/StellaOps.Cli.Tests/Infrastructure/CommandRouterTests.cs`
## E2E Test Plan
- [ ] Run deprecated `stella notify channels list` and verify it works but shows deprecation warning pointing to `stella config notify channels list`
- [ ] Run deprecated `stella feeds list` and verify deprecation warning pointing to `stella config feeds list`
- [ ] Run deprecated `stella attest verify` and verify deprecation warning pointing to `stella verify attestation`
- [ ] Verify the deprecation warning includes the `removeIn` version (e.g., "will be removed in 3.0")
- [ ] Verify the new command path works without deprecation warnings
- [ ] Run deprecated command with `--format json` and verify output still works correctly with warning on stderr
- [ ] Verify CI pipelines using old commands still exit with correct exit codes
- [ ] Verify all 60+ route mappings in cli-routes.json have corresponding working aliases
## Verification
- **Verified**: 2026-02-13T15:30:00Z
- **Tier 0 (Source)**: pass -- all referenced source files exist on disk
- **Tier 1 (Build)**: pass -- module builds cleanly, 412 tests pass in StellaOps.Cli.Commands.Tests
- **Tier 2d (Integration)**: pass -- targeted integration tests confirm behavioral correctness
- **Test Project**: `src/Cli/__Tests/StellaOps.Cli.Commands.Tests/StellaOps.Cli.Commands.Tests.csproj`
- **Evidence**: `docs/qa/feature-checks/runs/cli/backward-compatible-command-aliases/run-001/tier2-integration-check.json`