Update SlashCommandOverlay.set_commands() to accept list[SlashCommandSpec]
instead of list[str], and render each entry as aligned columns:
/command-name Description text
Changes:
- slash_command_overlay.py: update set_commands() signature to accept
list[SlashCommandSpec]; render name + description with aligned padding
using _COMMAND_COL_WIDTH = 28 characters for the name column
- slash_catalog.py: add slash_command_specs() helper returning all specs
- app.py: switch on_mount() to call slash_command_specs() instead of
slash_command_names() so full spec objects are passed to the overlay
- features/tui_slash_command_overlay_coverage.feature: add scenario
verifying description rendering; update existing scenarios to use
SlashCommandSpec objects via _make_specs() helper
- features/steps/tui_slash_command_overlay_coverage_steps.py: update
step implementations to build SlashCommandSpec objects from CSV names
- features/tui_slash_overlay_descriptions.feature: new feature file with
BDD scenarios covering description rendering and @tdd_expected_fail
capture of the pre-fix name-only behaviour
- features/steps/tui_slash_overlay_descriptions_steps.py: step defs for
the new feature file
- robot/tui_smoke.robot: add Slash Command Overlay Renders Descriptions
integration test verifying descriptions appear in rendered overlay
ISSUES CLOSED: #3437