fix(tui): rename ActorSelectionOverlay._render to avoid shadowing Textual Widget._render #11182

Closed
HAL9000 wants to merge 1 commits from fix/pr-11042-rename-render into master
3 changed files with 7 additions and 5 deletions
+1
View File
@@ -53,6 +53,7 @@ Changed `wf10_batch.robot` to be less likely to create files, and
`final_validation_results` fields on the result model, DI container
## [Unreleased]
- **TUI ActorSelectionOverlay render method rename** (#11042): Renamed `ActorSelectionOverlay._render()` to `_refresh_display()` to avoid shadowing the Textual Widget's internal `_render` method. The overlay class inherits from `textual.widgets.Static`, which has its own `_render` implementation used for rendering widget content. Shadowing this caused incorrect repaint behavior and interfered with Textual's layout pass.
- **Structural Component Output Validation** (#8164): Replaces exact character matching with structural component checking for output validation. Implements three validators covering plan tree output, decision CLI dicts, and structured session snapshots. The `validate_plan_tree` function validates node dicts for required keys (`decision_id`, `type`, `sequence`, `question`, `children`), ULID format, correct types, and sibling ordering. The `validate_decision_dict` function validates decision CLI output against the `Decision.as_cli_dict()` schema with field presence, type, ULID pattern, confidence range [0..1], and boolean field checks. The `validate_structured_output` function validates the StructuredOutput envelope for `command`, `session_id` (ULID), status membership, `exit_code`, and elements integrity. A unified dispatcher (`validate_structured_component_output`) enables routing by target_type. BDD test coverage added in `features/structural_validation.feature`. [Epic #8137](https://git.cleverthis.com/cleveragents/cleveragents-core/issues/8137)
- **Fixed `agents actor add --config` crash with nested `actors:` map and `config.actor` combined shorthand** (#11189): The
+1
View File
@@ -10,6 +10,7 @@
* Rui Hu <rui.hu@cleverthis.com>
# Details
* HAL 9000 has contributed rename of `ActorSelectionOverlay._render` to `_refresh_display` to avoid shadowing Textual Widget internal method (PR #11042).
Below are some of the specific details of various contributions.
1
@@ -145,7 +145,7 @@ class ActorSelectionOverlay(_StaticBase):
self._confirmed = False
self._selected_actor = None
self._visible = True
self._render()
self._refresh_display()
def hide(self) -> None:
"""Hide the overlay and clear its content."""
@@ -161,14 +161,14 @@ class ActorSelectionOverlay(_StaticBase):
if not self._filtered_actors:
return
self._selected_index = (self._selected_index - 1) % len(self._filtered_actors)
self._render()
self._refresh_display()
def move_down(self) -> None:
"""Move the selection cursor down by one position (wraps)."""
if not self._filtered_actors:
return
self._selected_index = (self._selected_index + 1) % len(self._filtered_actors)
self._render()
self._refresh_display()
# ------------------------------------------------------------------
# Search / filter
@@ -191,7 +191,7 @@ class ActorSelectionOverlay(_StaticBase):
else:
self._filtered_actors = list(self._actors)
self._selected_index = 0
self._render()
self._refresh_display()
# ------------------------------------------------------------------
# Confirmation
@@ -218,7 +218,7 @@ class ActorSelectionOverlay(_StaticBase):
# Internal rendering
# ------------------------------------------------------------------
def _render(self) -> None:
def _refresh_display(self) -> None:
content = render_actor_selection(
self._filtered_actors,
self._selected_index,