tlc: MC-PARITY-AUDIT Round 3 status section
Adds §12 documenting the Round 3 follow-up work that re-applied the Round 2 macro-replay engine after the v5.3 driver-manager rebase rolled it back. Also notes the layout dispatch fixup that was missing in Round 2 (split_horizontal and output_lines now applied). Tests: 1486 TLC + 43 cookbook tests pass. No regression. Refs: MC-PARITY-AUDIT.md §12 (Round 3 status)
This commit is contained in:
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user