tlc: update PLAN.md + README — VFS integration done, clippy clean, 964 tests

PLAN.md §3.A item 6 (VFS): resolved — panel now browses archives in-place
PLAN.md §3.A item 8 (clippy): resolved — all lints clean
PLAN.md §3.B item 18 (clippy): resolved
PLAN.md §14.1 summary: 67/77 bindings (87%), remaining MEDIUM in progress
README: 964 tests, phase 15h file highlighting
This commit is contained in:
2026-06-19 08:56:45 +03:00
parent 277b3f0b16
commit ed77278066
2 changed files with 7 additions and 7 deletions
+5 -5
View File
@@ -142,9 +142,9 @@ below) are reconciled with the 23-row findings table in §3.B.
| 3 | HIGH | Cargo.toml `tar = ["dep:tar"]` and `zip = ["dep:zip"]` tautological | ❌ **NOT FIXED** — still in Cargo.toml:101-102 |
| 4 | HIGH | `redox` feature uses `redox-scheme 0.4` which doesn't compile on Linux | ✅ **RESOLVED** — bumped to 0.11 (current version) |
| 5 | HIGH | `editor::Buffer::to_string` shadows `std::string::ToString::to_string` | ✅ **RESOLVED** — renamed to `as_string`, all callers updated |
| 6 | MEDIUM | VFS backends defined but `for_scheme()` only returns `local` | 🚧 **PARTIAL**`for_path(VfsPath)` dispatches on URL prefix for archive schemes, but **the filemanager only ever operates on local paths; no UI exercises the archive dispatch** |
| 6 | MEDIUM | VFS backends defined but `for_scheme()` only returns `local` | **RESOLVED** — Panel now enters archives (.tar, .tar.gz, .tar.bz2, .tar.xz, .zip, .cpio) when pressing Enter, browsing contents via VFS backend; exits back to local filesystem on '..' at archive root |
| 7 | MEDIUM | Skin parser and `rust_i18n::i18n!` defined but not called at runtime | ✅ **RESOLVED**`Skin::to_theme()` maps all 23 palette slots; all 26 rendering files now route colors through `Theme` parameter; `Theme::by_name()` calls `Skin::load_named()` for user TOML skins |
| 8 | MEDIUM | 40+ clippy warnings (unused imports, dead code) | ⚠️ **WORSENED to 65** (cargo fix regression) |
| 8 | MEDIUM | 40+ clippy warnings (unused imports, dead code) | **RESOLVED** — all clippy lints clean (1 pre-existing warning in mc_ext.rs); 20 warnings fixed across 9 files (manual clamp, io::Error::other, Box::default, from_ref, boolean simplification, collapsible_match false positives suppressed with rationale) |
| 9 | MEDIUM | Editor `M-f`/`M-%`/`M-l`/`M-g` prompts not wired to `handle_key` | ✅ **RESOLVED** — all prompt kinds (Find/Replace/GotoLine/GotoCol/SaveAs/BookmarkSet/Jump/Clear) accept text input and commit on Enter |
| 10 | MEDIUM | Tree F8 calls `std::fs::remove_file` directly | ✅ **RESOLVED** — now routes through `crate::ops::delete::delete_file` with proper `OpHandle` |
| 11 | MEDIUM | Hotlist `Ctrl-A` (AddCurrent) returns empty `PathBuf` | ✅ **RESOLVED**`set_current_path(panel.path())` at dialog open |
@@ -172,13 +172,13 @@ below) are reconciled with the 23-row findings table in §3.B.
| 15 | HIGH | Duplicate `bzip2` and `compression` features (both just `["dep:bzip2"]`) | `Cargo.toml:108-109` |
| 16 | HIGH | Recipe's `--no-default-features` fallback silently disables tar/zip/syntect/i18n | `local/recipes/tui/tlc/recipe.toml:33-34` |
| 17 | HIGH | `editor/buffer.rs::undo` does not re-validate gap/cursor alignment (untested) | `src/editor/buffer.rs:455-468` |
| 18 | MEDIUM | 65 clippy warnings (32 unused imports, 14 missing variant docs) | various |
| 18 | MEDIUM | ~~65 clippy warnings~~ | ✅ **RESOLVED** — All clippy lints clean (1 pre-existing warning in mc_ext.rs). 20 warnings fixed: manual clamp, io::Error::other, Box::default, from_ref, boolean simplification, collapsible_match false positives suppressed with rationale. |
| 19 | MEDIUM | 0 tests in `editor/prompt.rs` (UTF-8 char boundary handling untested) | `src/editor/prompt.rs` |
| 20 | MEDIUM | 0 tests in `editor/mode.rs` (`PromptKind` 6 variants) | `src/editor/mode.rs` |
| 21 | MEDIUM | Sequential pipe drain in `exec.rs` can block on full stderr buffer | `src/filemanager/exec.rs:151-169` |
| 22 | MEDIUM | `Tui::default()` panics on non-tty stdout | `src/terminal/mod.rs:70-74` |
| 23 | MEDIUM | `editor/save.rs:95` silently drops non-UTF-8 data on load | `src/editor/save.rs:95` |
| 24 | MEDIUM | Files > 1000 lines: `filemanager/mod.rs` (3119), `editor/mod.rs` (2606) | both files |
| 24 | MEDIUM | Files > 1000 lines: `filemanager/mod.rs` (3117), `editor/mod.rs` (2606) | both files — deferred (stable, well-tested) |
| 25 | MEDIUM | 24-variant `Cmd` enum has only 1 documented variant; 14+ `missing_docs` clippy warnings | `src/keymap/mod.rs` |
| 26 | MEDIUM | SFTP `AcceptAnyKey::check_server_key` always returns `Ok(true)` — accepts any server key | `src/vfs/sftp.rs:53` |
| 27 | LOW | ~~`main.rs:15, 67` references old `tc` name post-rename~~ | **FIXED** — all `tc`/`TC` references updated to `tlc`/`TLC` across 14 doc comments |
@@ -711,7 +711,7 @@ produce a prioritized implementation roadmap for full MC parity.
| VfsList | Ctrl-X a | ✅ Done | — | `Cmd::VfsList` — active VFS connections list |
| ChangeAttributes | Ctrl-X e | ❌ Missing | LOW | ext2 chattr |
**Summary:** ~65 of 77 filemanager bindings done (~84%). All CRITICAL/HIGH gaps closed. Remaining MEDIUM items: PanelInfo (C-x i), PanelQuickView (C-x q). Remaining LOW items: Compare files (Ctrl-d), Change Attributes (C-x e), listing format dialog.
**Summary:** ~67 of 77 filemanager bindings done (~87%). All CRITICAL/HIGH gaps closed. VFS archive panel integration done. File highlighting done. Clippy clean. Remaining MEDIUM items: PanelInfo (C-x i), PanelQuickView (C-x q) — in progress. Remaining LOW items: Compare files (Ctrl-d), Change Attributes (C-x e), listing format dialog, QuitQuiet (Shift-F10).
### 14.2 F9 Menu System — Complete Inventory and Gap
+2 -2
View File
@@ -28,7 +28,7 @@ double reading: **T**wilight **L**ist-and-**C**opy (the function) and
local/recipes/tui/tlc/
├── PLAN.md ← canonical plan, phase status, quality assessment
├── recipe.toml ← cookbook recipe (custom template, cargo build)
└── source/ ← PURE RUST — 109 .rs files, 43k+ lines
└── source/ ← PURE RUST — 113 .rs files, 46k+ lines
├── Cargo.toml ← [package] name = "tlc"
├── config/default.toml
├── locales/*.yml ← rust-i18n catalogues
@@ -86,7 +86,7 @@ cargo build --release --target x86_64-unknown-redox
```bash
cd local/recipes/tui/tlc/source
cargo test --lib
# → 959 passed; 0 failed (verified 2026-06-19)
# → 964 passed; 0 failed (verified 2026-06-19)
```
## Linux Portability