13 Commits

Author SHA1 Message Date
HAL9000 6b2a97ecda refactor(tui-tests): extract mock-Textual infrastructure to _tui_mock_helpers.py
CI / load-versions (pull_request) Successful in 14s
CI / push-validation (pull_request) Successful in 24s
CI / lint (pull_request) Successful in 45s
CI / quality (pull_request) Successful in 58s
CI / security (pull_request) Successful in 1m4s
CI / typecheck (pull_request) Successful in 1m12s
CI / build (pull_request) Successful in 40s
CI / helm (pull_request) Successful in 38s
CI / unit_tests (pull_request) Successful in 4m51s
CI / docker (pull_request) Successful in 1m29s
CI / integration_tests (pull_request) Successful in 10m12s
CI / coverage (pull_request) Successful in 9m40s
CI / status-check (pull_request) Successful in 3s
Move _MOCK_TEXTUAL_KEYS, _build_mock_textual, _install_mock_textual,
_restore_modules, _make_persona_state, _cleanup_tmpdir, and
_FakeCommandRouter out of tui_app_coverage_steps.py into a shared
_tui_mock_helpers.py module so both step files can import them without
duplication and the coverage steps file stays within the 500-line budget.

ISSUES CLOSED: #6361
2026-06-17 00:21:34 -04:00
drew b83b84ca79 fix(test): restore SimpleNamespace import in tui_app_coverage_steps (rebase fixup)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-17 00:21:34 -04:00
HAL9000 9c6e6ce55f fix(tui): remove dead state fields and DRY up step helpers
- Remove `_shell_warning_active` and `_last_shell_warning` from
  CleverAgentsTuiApp.__init__, _show_shell_warning, and
  _clear_shell_warning — both fields were set but never consumed
- Extract shared `_submit_text` and `_submit_text_with_mocked_shell`
  into features/steps/_tui_helpers.py; update tui_app_coverage_steps
  and tui_shell_safety_steps to import from shared module, eliminating
  the duplicate definitions flagged across multiple review cycles
2026-06-17 00:21:34 -04:00
HAL9000 8e8f2d5f89 fix(tui): enforce shell safety gating
- honour ShellSafetyService verdicts before executing shell commands
- tighten TUI confirmation defaults and align warning messaging with spec
- split shell-safety Behave steps and add Robot coverage

ISSUES CLOSED: #6361
2026-06-17 00:21:34 -04:00
HAL9000 6fe9b86b60 fix(tui): integrate ShellSafetyService properly in TUI app (#6361)
- route shell submissions through ShellSafetyService and surface warnings in the UI
- add shell warning banner, prompt styling, and configurable shell.warn_dangerous flag
- extend TUI coverage scenarios for shell safety and document the fix

ISSUES CLOSED: #6361
2026-06-17 00:21:34 -04:00
HAL9000 eedd0b7a4d fix(tui): correct on_input_changed BDD step assertions and empty-text step
CI / push-validation (pull_request) Successful in 33s
CI / lint (pull_request) Successful in 41s
CI / build (pull_request) Successful in 42s
CI / helm (pull_request) Successful in 43s
CI / typecheck (pull_request) Successful in 59s
CI / quality (pull_request) Successful in 1m1s
CI / security (pull_request) Successful in 1m14s
CI / unit_tests (pull_request) Successful in 4m42s
CI / docker (pull_request) Successful in 1m50s
CI / integration_tests (pull_request) Successful in 9m32s
CI / coverage (pull_request) Successful in 11m47s
CI / status-check (pull_request) Successful in 3s
- step_ref_picker_reset: fix assertion to check _text == "" (set_suggestions
  with empty query calls hide(), not show "(no matches)")
- step_slash_overlay_all_commands: fix assertion to check overlay is hidden
  (_visible=False, _text="") after reset — set_commands with empty query
  calls hide(), it does not display all commands
- Add @when("I trigger on_input_changed with empty text") step so that the
  empty-string scenario is matched — parse's {text} placeholder requires
  one or more chars and would not match "" causing an "errored" scenario
- Feature: update scenario 4 (empty at-sign) to use step_ref_picker_reset
  since "send @" yields empty query which hides the picker
- Feature: update scenario 5 to use the new empty-text step

ISSUES CLOSED: #4738
2026-06-10 10:16:30 -04:00
HAL9000 e0e68fae60 fix(tui): add on_input_changed handler for live overlay updates
Add the missing on_input_changed event handler to the TUI app so that
both the slash command overlay and the reference picker overlay update
in real time as the user types, rather than only on submit.

- When the user types / the slash overlay filters commands by the query
  after the slash character
- When the user types @ the reference picker updates with matching
  suggestions based on the token after the last @ sign
- Otherwise both overlays are reset to their default (unfiltered) state

Also adds BDD scenarios and step definitions covering all branches of
the new handler.

ISSUES CLOSED: #4738
2026-06-10 10:16:30 -04:00
HAL9000 ed973575b1 feat(tui): implement escape cascade key behavior (#6450)
ISSUES CLOSED: #6450
2026-06-02 00:38:09 -04:00
HAL9000 b588de18d6 fix(tui): rebase onto master and add CHANGELOG entry for prompt symbol fix (#6431)
Rebases the TUI prompt symbol fix onto the latest master, resolving
conflicts with the TextArea→Input refactor and the dollar-prefix shell
mode addition. Adds the missing CHANGELOG.md entry for #6431 and
removes the now-obsolete tui_prompt_textarea feature/steps that tested
the old TextArea-based implementation.

ISSUES CLOSED: #6431
2026-05-08 11:15:36 +00:00
HAL9000 66bd3bf0cf fix(tui): set default THEME to dracula on TUI app class
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 1m0s
CI / build (pull_request) Successful in 27s
CI / quality (pull_request) Successful in 1m19s
CI / helm (pull_request) Successful in 34s
CI / security (pull_request) Successful in 1m26s
CI / typecheck (pull_request) Successful in 1m29s
CI / push-validation (pull_request) Successful in 20s
CI / integration_tests (pull_request) Successful in 4m33s
CI / e2e_tests (pull_request) Successful in 4m29s
CI / unit_tests (pull_request) Successful in 4m49s
CI / docker (pull_request) Successful in 1m28s
CI / coverage (pull_request) Successful in 12m16s
CI / status-check (pull_request) Successful in 3s
CI / benchmark-publish (push) Failing after 56s
CI / build (push) Successful in 59s
CI / lint (push) Successful in 1m20s
CI / push-validation (push) Successful in 35s
CI / typecheck (push) Successful in 1m27s
CI / quality (push) Successful in 1m25s
CI / helm (push) Successful in 44s
CI / security (push) Successful in 1m38s
CI / integration_tests (push) Successful in 3m45s
CI / e2e_tests (push) Successful in 3m51s
CI / unit_tests (push) Successful in 5m14s
CI / docker (push) Successful in 1m56s
CI / coverage (push) Successful in 11m0s
CI / status-check (push) Successful in 4s
The _TextualCleverAgentsTuiApp class was missing the THEME class
variable, causing Textual to use its default textual-dark theme
instead of the Dracula theme required by the spec (docs/specification.md
§TUI Theme). Added THEME: ClassVar[str] = "dracula" to the class and
a corresponding BDD scenario tagged @tdd_issue @tdd_issue_4742 to
verify the fix.

ISSUES CLOSED: #4742
2026-04-30 15:36:26 +00:00
HAL9000 7523a50db8 refactor(tui): PromptInput uses TextArea instead of Input
CI / push-validation (pull_request) Successful in 24s
CI / helm (pull_request) Successful in 32s
CI / build (pull_request) Successful in 3m53s
CI / lint (pull_request) Successful in 4m4s
CI / quality (pull_request) Successful in 4m25s
CI / typecheck (pull_request) Successful in 4m33s
CI / security (pull_request) Successful in 4m45s
CI / integration_tests (pull_request) Successful in 6m42s
CI / e2e_tests (pull_request) Successful in 7m10s
CI / unit_tests (pull_request) Successful in 7m35s
CI / docker (pull_request) Successful in 1m29s
CI / coverage (pull_request) Successful in 14m7s
CI / status-check (pull_request) Successful in 3s
CI / push-validation (push) Successful in 23s
CI / helm (push) Successful in 28s
CI / build (push) Successful in 3m50s
CI / lint (push) Successful in 3m58s
CI / quality (push) Successful in 4m21s
CI / typecheck (push) Successful in 4m29s
CI / security (push) Successful in 4m38s
CI / integration_tests (push) Successful in 6m39s
CI / e2e_tests (push) Successful in 6m57s
CI / unit_tests (push) Successful in 7m24s
CI / docker (push) Successful in 1m29s
CI / coverage (push) Successful in 13m59s
CI / status-check (push) Successful in 3s
CI / benchmark-publish (pull_request) Has been skipped
CI / benchmark-regression (push) Has been skipped
CI / benchmark-regression (pull_request) Successful in 1h4m50s
CI / benchmark-publish (push) Successful in 1h16m58s
Replaced the PromptInput base widget from textual.widgets.Input to textual.widgets.TextArea and updated related code to use the multi-line TextArea API. This includes switching from .value to .text, adjusting consume_text(), and updating all callers and tests accordingly. Also added UI test coverage for multi-line input, including new feature and steps files.

ISSUES CLOSED: #10410
2026-04-22 14:06:42 +00:00
brent.edwards 0ae733d01f feat(tui): implement help panel (F1) with context-sensitive help
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 18s
CI / helm (pull_request) Successful in 23s
CI / lint (pull_request) Successful in 3m20s
CI / quality (pull_request) Successful in 3m44s
CI / typecheck (pull_request) Successful in 3m58s
CI / security (pull_request) Successful in 4m10s
CI / unit_tests (pull_request) Successful in 9m2s
CI / docker (pull_request) Successful in 1m30s
CI / coverage (pull_request) Successful in 9m3s
CI / e2e_tests (pull_request) Successful in 22m5s
CI / integration_tests (pull_request) Successful in 24m37s
CI / status-check (pull_request) Successful in 2s
CI / benchmark-regression (pull_request) Successful in 55m59s
Add a dedicated TUI help overlay toggled by F1 and resolve its content from the current prompt mode for main-screen, slash-command, reference, and shell contexts.

Extend Behave and Robot coverage for the new help-panel widget, app wiring, context switching, and toggle behavior.

ISSUES CLOSED: #1013
2026-04-01 21:51:14 +00:00
freemo 051ee7c290 test(coverage): add Behave BDD tests to improve coverage across 52 source files
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 21s
CI / quality (pull_request) Successful in 31s
CI / typecheck (pull_request) Successful in 47s
CI / security (pull_request) Successful in 52s
CI / build (pull_request) Successful in 56s
CI / e2e_tests (pull_request) Successful in 5m1s
CI / integration_tests (pull_request) Successful in 5m30s
CI / unit_tests (pull_request) Successful in 5m42s
CI / docker (pull_request) Successful in 58s
CI / coverage (pull_request) Successful in 7m35s
CI / build (push) Successful in 21s
CI / docker (push) Has been skipped
CI / benchmark-regression (pull_request) Failing after 49m24s
CI / lint (push) Successful in 22s
CI / quality (push) Successful in 39s
CI / security (push) Successful in 48s
CI / typecheck (push) Successful in 1m26s
CI / benchmark-regression (push) Has been skipped
CI / e2e_tests (push) Successful in 5m53s
CI / coverage (push) Successful in 9m4s
CI / benchmark-publish (push) Successful in 19m10s
CI / integration_tests (push) Failing after 19m18s
CI / unit_tests (push) Failing after 19m20s
Added 52 new .feature files and corresponding _steps.py files targeting
previously uncovered code paths in the following areas:

- TUI layer: app, commands, persona (state/schema/registry), widgets,
  input (shell_exec, reference_parser)
- Application services: plan lifecycle/service/executor, session,
  project, repo indexing, correction, checkpoint, actor, llm_actors,
  strategy coordinator, resource file watcher, service retry wiring
- CLI commands: session, resource, repl, plan, db, automation_profile
- Domain models: retry_policy, resource_type, cost_budget,
  docker_compose_analyzer, detail_level, _sql_string_aware,
  _postgresql_helpers
- Core: circuit_breaker, retry_service_patterns
- Infrastructure: repositories, transaction_sandbox, strategy_registry,
  plugins/loader, container
- Config: settings
- Agents: plan_generation, context_analysis, auto_debug
- A2A: facade

All new tests follow the Behave/Gherkin BDD standard. Resolved step
definition collisions with unique prefixes. Fixed Alembic fileConfig
logger disabling issue (disable_existing_loggers=False).

ISSUES CLOSED: #1068
2026-03-20 21:22:10 +00:00