docs: record review round 1 and the P1a block on the #227 lane
The lane said "normal review; no merge authorization", which is no longer the state: two of three blockers are fixed and the third makes the PR merge-blocked behind the destination-capture lane. P1a is recorded as deliberately NOT fixed rather than outstanding. commit_to is the right mechanism and is not Lua-reachable outside a directory open --- DirectoryDestinationLua is nonconstructible by design and minted only in the path.open-directory dispatch --- so the fix is a prerequisite lane and this one adopts it afterwards. Recorded with the mechanical check that no diff line in either fix reaches the four named symbols, so a later reader does not have to take it on trust. The P2 entry keeps the reasoning for teardown over a canonicalized preflight, because the rejected option is the one that looks obviously better: a Lua canonicalizer would be a second copy of the Rust alias table and would go stale the day that table gains a name, reintroducing this exact bug for the new alias. Keymap::bind is the authority because it is what decides. Also recorded: there is no Lua-reachable canonicalization to build on, verified, and no binding was added to invent one. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016bqGA6s9tTUFzYpbeW3tai
This commit is contained in:
parent
6c1631eaa8
commit
a70ee5fdc0
|
|
@ -269,8 +269,48 @@ census.
|
|||
|
||||
**PR #227** — https://github.com/levineuwirth/pmacs/pull/227. Opened
|
||||
2026-08-09 at `4002734`, after the framing was approved at revision 5
|
||||
and the full gate suite went green. Normal review; no merge
|
||||
authorization.
|
||||
and the full gate suite went green. **Now at `6c1631e`, MERGE-BLOCKED.**
|
||||
|
||||
**Review round 1 found three blockers. Two are fixed; the third is why
|
||||
this lane is blocked.**
|
||||
|
||||
- **P1 fixed (`ffe5ae2`) — concurrent `status` opens were ordered by
|
||||
`rev-parse` completion, not by invocation.** The generation was
|
||||
minted on arrival, inside `start_status`, so the **slowest root
|
||||
lookup won** rather than the newest invocation. It is now reserved at
|
||||
the command and carried through the root-resolution callback, which
|
||||
drops a superseded result **before any effect** — no spawn, no
|
||||
`state.root` write, and no status message either, since a message
|
||||
from a replaced invocation is as wrong as a panel from one.
|
||||
- **P2 fixed (`6c1631e`) — a refused `keys` bind left a live, unowned
|
||||
buffer.** The preflight compared **raw tokens** while `parse_key_code`
|
||||
folds `RET`/`RETURN`/`ENTER` (and `SPC`/`SPACE`, `ESC`/`ESCAPE`,
|
||||
`BS`/`BACKSPACE`, `DEL`/`DELETE`, case-insensitively) onto one chord,
|
||||
so an alias spelling passed preflight and failed at bind time —
|
||||
*after* buffer creation and intercept install. The partial rollback
|
||||
removed only new keys, so later opens silently got `<2>`.
|
||||
|
||||
**Fixed by full teardown, not by canonicalizing the preflight**, and
|
||||
the reasoning is worth keeping: a Lua canonicalizer would be a second
|
||||
copy of the Rust alias table and would go stale the day that table
|
||||
gains a name, reintroducing this exact bug for the new alias.
|
||||
`Keymap::bind` is the authority because it *is* what decides. There
|
||||
is also **no Lua-reachable canonicalization** to build on —
|
||||
`display_sequence` escapes only through `describe.key` and
|
||||
`keymap.list`, both of which require the sequence to be bound
|
||||
already. Verified; no binding was added for this.
|
||||
- **P1a NOT fixed, and deliberately — it blocks this PR.** The async
|
||||
completions display UI without capturing the initiating frontend
|
||||
(`builtin/runtime/git.lua:609`, `:854`), so a result surfaces in
|
||||
whichever frontend is active when git exits. `commit_to` is the right
|
||||
mechanism and is **not Lua-reachable** outside a directory open, so
|
||||
the fix lives in the **`destination-capture`** lane. This lane adopts
|
||||
it after that lands. Verified untouched: no diff line in `ffe5ae2` or
|
||||
`6c1631e` reaches `open_status_panel`, `show_diff_buffer`,
|
||||
`pmacs.window.display` or `commit_to`.
|
||||
|
||||
**Re-gated at `6c1631e`:** all 11 steps green, acceptance now 27 tests.
|
||||
Both fixes mutation-verified.
|
||||
|
||||
**Written with the lane's first commit, before the PR exists** — the
|
||||
standing correction from #171 and #215. This session it was missed on
|
||||
|
|
|
|||
Loading…
Reference in New Issue