Files
cleveragents-core/features/legacy_plan_removal.feature
CoreRasurae cc24d8c8ac fix(cli): remove legacy plan commands from help output
Completely removed all legacy plan commands from the CLI:
    - Removed tell, build, new, current, cd, continue CLI commands
    - Removed programmatic wrapper functions (tell_command, build_command, etc.)
    - Removed legacy deprecation message
    - Updated help text to indicate V3 Plan Lifecycle exclusively
    - Removed stale references to tell/build in help output and command validation

    Removes the legacy 'tell' and 'build' CLI shortcuts from main.py:
    - Removed echo lines advertising tell/build commands
    - Removed tell/build from valid_cmds list
    - Removed tell/build from _LIGHTWEIGHT_COMMANDS frozenset
    - These dead entries were preventing helpful error messages

    Test infrastructure improvements:
    - Event bus exception test: Patch the module-level logger during emit() so that
      structlog.testing.capture_logs() can capture the logs. Without patching, the
      module-level logger created at import time is not captured by the context manager.
    - Session create/list commands: Suppress cleveragents.mcp logger to CRITICAL level
      during JSON/YAML output formatting to prevent health check warnings with ANSI codes
      from being written to stdout before JSON output, which breaks JSON parsing.
    - Extended plan_cli_coverage_boost with scenarios for estimation_result,
      invariants, execution_environment, validation_summary, and checkpoint
      coverage in _plan_spec_dict

    Documentation:
    - Created docs/Legacy_to_V3_Guide.md with comprehensive migration instructions
    - Updated CONTRIBUTING.md to document removal of legacy workflow
    - Updated CHANGELOG.md to reference issue #4181 instead of PR #10800

ISSUES CLOSED: #4181
2026-05-05 02:01:49 +00:00

43 lines
1.6 KiB
Gherkin

Feature: Legacy plan persistence removal
As a developer migrating to the v3 plan lifecycle,
I want legacy plan paths to emit deprecation warnings,
so that I know to use PlanLifecycleService instead.
Background:
Given a clean test environment for legacy removal
# --- PlanService deprecation ---
Scenario: PlanService emits deprecation warning on instantiation
When I instantiate PlanService
Then a DeprecationWarning mentioning "PlanService is deprecated" is raised
Scenario: PlanService still functions after deprecation warning
When I instantiate PlanService
And I call create_plan on the legacy service
Then the plan is created successfully
# --- PlanRepository deprecation ---
Scenario: PlanRepository emits deprecation warning on instantiation
When I instantiate PlanRepository
Then a DeprecationWarning mentioning "PlanRepository is deprecated" is raised
# --- ChangeRepository deprecation ---
Scenario: ChangeRepository emits deprecation warning on instantiation
When I instantiate ChangeRepository
Then a DeprecationWarning mentioning "ChangeRepository is deprecated" is raised
# --- PlanLifecycleService is NOT deprecated ---
Scenario: PlanLifecycleService does NOT emit deprecation warnings
When I instantiate PlanLifecycleService
Then no DeprecationWarning is raised
# --- UnitOfWorkContext plans accessor is deprecated ---
Scenario: UnitOfWorkContext plans property emits deprecation warning
When I access the plans property on UnitOfWorkContext
Then a DeprecationWarning mentioning "deprecated" is raised