hurui200320
|
94bc1caae2
|
feat(cli): implement full output rendering framework
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 18s
CI / build (pull_request) Successful in 23s
CI / quality (pull_request) Successful in 28s
CI / typecheck (pull_request) Successful in 40s
CI / security (pull_request) Successful in 50s
CI / unit_tests (pull_request) Successful in 3m13s
CI / integration_tests (pull_request) Successful in 3m37s
CI / docker (pull_request) Successful in 56s
CI / e2e_tests (pull_request) Successful in 5m25s
CI / coverage (pull_request) Successful in 7m48s
CI / benchmark-regression (pull_request) Has been cancelled
Implement the 6 missing element handle types (Tree, Text, Code, Diff,
Separator, ActionHint) and ensure all 6 materialization strategies
(rich, color, table, plain, json, yaml) support all 10 element types.
- Split handles.py into handles/ package (_models, _base, _panel_table,
_concrete) to comply with 500-line file limit
- Split materializers.py: visual renderers moved to _renderers.py,
strategy classes remain in materializers.py
- Fix ColorMaterializer fallback: supports_cursor now checks for
cursor-capable TERM values (xterm, screen, tmux, etc.)
- Fix base ElementHandle.element_copy() thread-safety: acquires lock
- Fix _register_handle return type: Callable[..., H] -> H (was Any)
- Fix boxdraw summary width for multi-column tables
- Fix _tree_node_to_dict: adds "truncated" flag at depth limit
- Fix _sort_table_rows error path: returns list copy (not mutable ref)
- Fix fragile str.replace() in color progress/tree renderers
- Fix stale TextBlock.content in ElementUpdated snapshots
- Fix selection.py docstring: Rich -> Table -> Color -> Plain
- Fix _s alias renamed to _sanitize for readability
- Fix contextlib.suppress scope narrowed to specific exceptions
- Fix local import in session.__init__ moved to module level
- Add spec deviation documentation (SD-1 through SD-12)
- Add BDD scenarios: collapsed tree, terminal capabilities types,
session double-close, ColumnDef non-default field serialization
- Add 80+ Behave scenarios, 5 Robot integration tests, 3 ASV benchmarks
- Coverage: 97% overall, output module 94-100%
ISSUES CLOSED: #550
|
2026-03-19 08:29:13 +00:00 |
|