docs(vterm): record PR 130 review round 1

Align the durable handoff with the approved escape-prefix contract, record the performance and lifecycle hardening, update the Stage 2 verification map, and publish exact final gate evidence in the active-work ledger.
This commit is contained in:
Levi Neuwirth 2026-07-22 08:29:33 -04:00
parent 8702791de9
commit 2e332b579c
3 changed files with 40 additions and 24 deletions

View File

@ -55,7 +55,7 @@ If it does not, stop and repair the remote/fetch configuration.
## Vterm Stage 2 implementation lane
- Portable branch: `githubsucks/vterm-tui`
- Feature head: `da8f6ae`; first published ledger checkpoint: `d2fca0c`
- Feature head after review round 1: `8702791`
- Base: canonical `main` @ `f1a2f75` (handoff refresh #128 atop config
registry #127 and Vterm Stage 1 #126).
- PR: #130, <https://github.com/levineuwirth/pmacs/pull/130>, open against
@ -66,15 +66,20 @@ If it does not, stop and repair the remote/fetch configuration.
clipboard/BEL through the authenticated frontend, and routes daemon
terminal input by connection source. Protocol remains v18; Stage 2 changes
neither the wire schema nor the GPU renderer.
- Review round 1: addressed. Dispatch now requires `C-c` before terminal-local
editor bindings; non-terminal context operations error; controller
replacement is atomic per frontend; zero-area layouts retain view anchors;
view projection borrows retained rows instead of deep-cloning scrollback.
- Implementation commits: `39e07cb`, `7c39535`, `0a846d9`, `0dacac7`,
`dc92257`, merge `0ddff24`, and final integration hardening `da8f6ae`.
- Final from-start verification: `cargo fmt --check`; strict workspace
Clippy; 1,742 default + 1,918 CRDT library tests (3 ignored each);
Stage 1 acceptance 9 default + 10 CRDT; Stage 2 acceptance 3 default +
3 CRDT; statusline acceptance 7 default + 8 CRDT; M4 114 passed
(3 ignored, 1 filtered); required GPU 109; workspace 2,869 passed across
`dc92257`, merge `0ddff24`, integration hardening `da8f6ae`, and first-review
fixes `8702791`.
- Review-round final verification: `cargo fmt --check`; strict workspace
Clippy; 1,743 default + 1,919 CRDT library tests (3 ignored each);
Stage 1 acceptance 9 default + 10 CRDT; Stage 2 acceptance 4 default +
4 CRDT; statusline acceptance 7 default + 8 CRDT; M4 114 passed
(3 ignored, 1 filtered); required GPU 109; workspace 2,871 passed across
81 suites (19 ignored, 1 filtered); `git diff --check` clean.
- Next: user review rounds. Do not merge without explicit authorization.
- Next: second user review. Do not merge without explicit authorization.
Recovery worktree on a machine that does not already own the branch:

View File

@ -1,9 +1,10 @@
# Agent handoff — cross-machine continuity
**Last updated: 2026-07-21, after the config registry (#127), Vterm
Stage 1 terminal core (#126), and handoff refresh (#128) landed on
`main`, atop completed Themes Arc 4 (#120/#124/#125). Vterm Stage 2 is
implemented on `vterm-tui`; Stage 3 is not implemented.**
**Last updated: 2026-07-22, after Vterm Stage 2 PR #130 review round 1
was addressed on `vterm-tui`; config registry (#127), Vterm Stage 1
terminal core (#126), and handoff refresh (#128) are landed on `main`,
atop completed Themes Arc 4 (#120/#124/#125). Vterm Stage 3 is not
implemented.**
This file is the
bridge between development machines. If you are an agent reading
this on a fresh clone: this document plus the `docs/*-framing.md`
@ -233,12 +234,15 @@ commands, read `docs/active-work.md` immediately after this file.
- **Stage 2 TUI is implemented on `vterm-tui`** (`docs/vterm-framing.md`
Revision 7, criteria 1527). `TerminalViewKey` keys per-frontend/window
projection state over one shared process/screen; logical row anchors retain
scroll/selection through reflow. A most-recent authenticated controller
owns input and cell resize, with release on focus/switch/kill/detach.
scroll/selection through reflow. One authenticated frontend controls at
most one session, with atomic replacement and release on
focus/switch/kill/detach.
- The strict `pmacs.terminal` Lua surface owns open/state/view/send/terminate
and context-implicit scroll/copy commands. Buffer-local terminal keymaps
resolve before raw child transport; fixed `C-c` remains the terminal escape
and owns its continuation per frontend. Copy drains through the acting
and context-implicit scroll/copy commands; the latter error unless the
invoking frontend's active window is a terminal. Fixed `C-c` is the
per-frontend terminal escape: only its next key reaches terminal-local
editor bindings, while unescaped bound keys pass through to the child.
`C-c C-c` sends one literal interrupt. Copy drains through the acting
frontend's clipboard path; active BELs drain once locally and per daemon
frontend, while historical/passive bells are baseline-suppressed.
- TUI composition paints owned terminal cells/styles only inside each
@ -251,12 +255,18 @@ commands, read `docs/active-work.md` immediately after this file.
isolation, clipboard/modeline behavior, and a hermetic real `/bin/sh` TUI
PTY smoke. Stage 2 changes no wire schema or GPU renderer; protocol remains
v18 until Stage 3.
- Integrated Stage 2 final gate: `cargo fmt --check`; strict workspace
Clippy; 1,742 default + 1,918 CRDT library tests (3 ignored each);
Stage 1 acceptance 9 default + 10 CRDT; Stage 2 acceptance 3 default +
3 CRDT; statusline acceptance 7 default + 8 CRDT; M4 114 passed
(3 ignored, 1 filtered); required GPU 109; workspace 2,869 passed
across 81 suites (19 ignored, 1 filtered); `git diff --check` clean.
- PR #130 review round 1 (`8702791`) aligned dispatch with the approved
escape-prefix contract, closed the non-terminal Lua error path, made
controller replacement atomic, retained zero-area view anchors, removed
duplicate detach work, and replaced per-view deep scrollback clones with
borrowed live/published row projections. Focused child-input coverage pins
both unescaped bound-key passthrough and `C-c C-c`.
- Review-round final gate: `cargo fmt --check`; strict workspace Clippy;
1,743 default + 1,919 CRDT library tests (3 ignored each); Stage 1
acceptance 9 default + 10 CRDT; Stage 2 acceptance 4 default + 4 CRDT;
statusline acceptance 7 default + 8 CRDT; M4 114 passed (3 ignored,
1 filtered); required GPU 109; workspace 2,871 passed across 81 suites
(19 ignored, 1 filtered); `git diff --check` clean.
- **PARKED: kill-ring browser + persistence.** Revision 2 framing is
preserved on branch `kill-ring-browser`, but its `0efb5cd` scout is stale
and must be repeated before implementation. No PR or implementation is

View File

@ -1150,8 +1150,9 @@ coverage remains beside the owning implementation. The criteria map as follows:
paste_and_focus_are_exact, unsupported_keys_are_invisible}` and the real-TUI
input/paste path.
- **19:** `editor::tests::dispatch_prefix_state_is_independent_per_frontend`,
`terminal_escape_gates_local_bindings_and_double_escape_sends_interrupt`,
`lua_surface_is_strict_fresh_transactional_and_context_safe`, and the
real-TUI terminal-escape/quit path.
real-TUI escaped editor-binding/quit path.
- **20:** `terminal::input::tests::sgr_mouse_modes_modifiers_and_coordinates`
plus the real-TUI editor-owned scroll/drag/copy path.
- **21:** `terminal::view::tests::{copy_joins_soft_wraps_trims_default_blanks_and_separates_hard_rows,