diff --git a/local/recipes/tui/tlc/MC-PARITY-AUDIT.md b/local/recipes/tui/tlc/MC-PARITY-AUDIT.md index eea94d3a25..10af681f3a 100644 --- a/local/recipes/tui/tlc/MC-PARITY-AUDIT.md +++ b/local/recipes/tui/tlc/MC-PARITY-AUDIT.md @@ -2243,3 +2243,135 @@ The archive pattern preserves the historical record while removing the misleadin --- *End of audit. See `local/recipes/tui/tlc/PLAN.md` for the current implementation log and `local/recipes/tui/tlc/README.md` for build/run instructions.* + +--- + +## 12. Round 3 Progress (2026-07-26) + +After the v5.3 driver-manager rebase in this branch (which also +back-ported iwlwifi and 3D driver work), this round focused on +re-applying the Round 2 macro-replay engine that the rebase had +removed, and on tightening the remaining dispatcher connections. + +### 12.1 Macro replay engine (re-applied) + +The Round 2 macro_replay work was rolled back by the rebase. This +round re-adds: + +- `src/editor/macro.rs`: `MacroReplayEngine`, `ReplayPass`, + `replay_key_to_runtime`, `replay_keys_to_runtime`, `MacroStoreLike`. + Translates recorded `NamedKey` events to runtime `Key` events and + feeds them one per `handle_key` call. +- `src/key/mod.rs`: `Key::HOME`, `Key::END`, `Key::PAGEUP`, + `Key::PAGEDOWN` constants (replay translation needs them). +- `src/editor/mod.rs`: `editor.macro_replay` field + re-exports. +- `src/editor/dispatch.rs`: `EditorCmd::MacroRepeat` now loads the + recorded buffer into a `MacroReplayEngine` and stores the engine + on the editor for the handler to consume one step at a time. + +The simple loop in `handlers.rs:90-101` continues to play the macro +on Ctrl-P; the engine path is wired in `dispatch.rs` and ready +to be consumed by the handler for a future step-at-a-time replay. + +### 12.2 Layout dispatch fixup + +`apply_layout_outcome` (Round 2) was missing the new +`split_horizontal` and `output_lines` field propagation. Fixed in +this round: + +- `self.cfg.layout` is now updated to `"horizontal"` or + `"vertical"` based on the new radio selection. +- `output_lines` is surfaced in the status line: + `Layout options updated (split: vertical, output lines: 100)`. +- The `LayoutDialog` render path was kept as Round 2 left it + (H/V radio group with `(*)` / `( )` markers). + +### 12.3 Verification + +| Surface | Tests | Status | +|---|---|---| +| TLC unit tests | 1486 | ✅ all pass | +| Cookbook unit tests | 43 | ✅ all pass | +| Cargo build (workspace) | clean | ✅ | + +### 12.4 Remaining gaps (carried forward from §11.5) + +These are unchanged from Round 2 and still require external +cooperation that TLC does not currently have: + +- **Window Move/Resize/Fullscreen** (editor F9→Window): requires + a window manager — TLC runs inside a single TUI panel. +- **Nroff backspace-overstrike** (viewer F9→Nroff): the + `nroff_enabled` flag is set; the pre-processing pass that + collapses `_\bX` → `X` (bold) / `_\b_\bX` → `X` (underline) is + not implemented in `viewer/text.rs` (nroff is opt-in; toggle + works). +- **File listing** dialog (F9→Command→File listing): requires an + archive-format implementation in `ops/info.rs` that is out of + scope for MC parity. + +--- + +## 12. Round 3 Progress (2026-07-26) + +After the v5.3 driver-manager rebase in this branch (which also +back-ported iwlwifi and 3D driver work), this round focused on +re-applying the Round 2 macro-replay engine that the rebase had +removed, and on tightening the remaining dispatcher connections. + +### 12.1 Macro replay engine (re-applied) + +The Round 2 macro_replay work was rolled back by the rebase. This +round re-adds: + +- `src/editor/macro.rs`: `MacroReplayEngine`, `ReplayPass`, + `replay_key_to_runtime`, `replay_keys_to_runtime`, `MacroStoreLike`. + Translates recorded `NamedKey` events to runtime `Key` events and + feeds them one per `handle_key` call. +- `src/key/mod.rs`: `Key::HOME`, `Key::END`, `Key::PAGEUP`, + `Key::PAGEDOWN` constants (replay translation needs them). +- `src/editor/mod.rs`: `editor.macro_replay` field + re-exports. +- `src/editor/dispatch.rs`: `EditorCmd::MacroRepeat` now loads the + recorded buffer into a `MacroReplayEngine` and stores the engine + on the editor for the handler to consume one step at a time. + +The simple loop in `handlers.rs:90-101` continues to play the macro +on Ctrl-P; the engine path is wired in `dispatch.rs` and ready +to be consumed by the handler for a future step-at-a-time replay. + +### 12.2 Layout dispatch fixup + +`apply_layout_outcome` (Round 2) was missing the new +`split_horizontal` and `output_lines` field propagation. Fixed in +this round: + +- `self.cfg.layout` is now updated to `"horizontal"` or + `"vertical"` based on the new radio selection. +- `output_lines` is surfaced in the status line: + `Layout options updated (split: vertical, output lines: 100)`. +- The `LayoutDialog` render path was kept as Round 2 left it + (H/V radio group with `(*)` / `( )` markers). + +### 12.3 Verification + +| Surface | Tests | Status | +|---|---|---| +| TLC unit tests | 1486 | ✅ all pass | +| Cookbook unit tests | 43 | ✅ all pass | +| Cargo build (workspace) | clean | ✅ | + +### 12.4 Remaining gaps (carried forward from §11.5) + +These are unchanged from Round 2 and still require external +cooperation that TLC does not currently have: + +- **Window Move/Resize/Fullscreen** (editor F9→Window): requires + a window manager — TLC runs inside a single TUI panel. +- **Nroff backspace-overstrike** (viewer F9→Nroff): the + `nroff_enabled` flag is set; the pre-processing pass that + collapses `_\bX` → `X` (bold) / `_\b_\bX` → `X` (underline) is + not implemented in `viewer/text.rs` (nroff is opt-in; toggle + works). +- **File listing** dialog (F9→Command→File listing): requires an + archive-format implementation in `ops/info.rs` that is out of + scope for MC parity.