detached 73defd0

docs(vt): record extraction verification evidence

commit
73defd02d7b40011a1fcf2628737dff68623dd62
author
brice · · 2026-08-09 11:52 UTC
committer
brice · · 2026-08-10 05:16 UTC
parent
2df2067
signature
GPG VerifiedCD88F9E564E0102646FB6077A1A07C7C7C3E349D · arch-gpg Verified for the committer email
2 files · +45 -1
M docs/vt-extraction-preparation.md +1 -1
@@ -1,7 +1,7 @@
11 # VT extraction preparation checkpoint
22
33 The standalone module owns the frontend-neutral VT engine and ANSI renderer;
4-vev consumes the released `github.com/bnema/vev-vt v0.1.0` module. VT behavior,
4+vev consumes the released `github.com/bnema/vev-vt v0.2.1` module. VT behavior,
55 renderer output, wire bytes, transport, ACK/rebase, and cursor-tail policy remain
66 unchanged.
77
@@ -1,7 +1,7 @@
1 # VT extraction preparation checkpoint1 # VT extraction preparation checkpoint
2 2
3 The standalone module owns the frontend-neutral VT engine and ANSI renderer;3 The standalone module owns the frontend-neutral VT engine and ANSI renderer;
4-vev consumes the released `github.com/bnema/vev-vt v0.1.0` module. VT behavior,4+vev consumes the released `github.com/bnema/vev-vt v0.2.1` module. VT behavior,
5 renderer output, wire bytes, transport, ACK/rebase, and cursor-tail policy remain5 renderer output, wire bytes, transport, ACK/rebase, and cursor-tail policy remain
6 unchanged.6 unchanged.
7 7
A docs/vt-extraction-verification.md +44 -0
@@ -0,0 +1,44 @@
1+# VT extraction verification evidence
2+
3+## Release
4+
5+- Module: `github.com/bnema/vev-vt v0.2.1`
6+- Module checksum: `h1:sb5XWVVIgiYd82KSYb3gHvkHVt9r5oRoEK0hqO1B+Aw=`
7+- Go module checksum: `h1:QdV0QI7vUnlAF+7+CiPhThHDpDSkxMEZmCYl/Eo+xCA=`
8+- Standalone release commit: `7bd1a3c4`
9+- vev cutover commit: `df9964b7`
10+
11+## Acceptance evidence
12+
13+- vev: `make test`, `make lint`, `go mod verify`, and clean-checkout module
14+ resolution pass without a `replace` directive.
15+- Standalone module: tests, race tests, `go vet`, `golangci-lint`, external
16+ consumer smoke, import-boundary checks, and signed release tag pass.
17+- Fuzz smoke passes for VT input, ANSI rendering, VTH3 decoding, and VEVS v4
18+ restore decoding. Seeds include escape sequences, Unicode, clipboard input,
19+ malformed history, and the VEVS restore golden.
20+- VTH3 and VEVS fixtures remain byte-compatible. VEVS framing and session policy
21+ remain vev-owned.
22+- History/codec benchmark allocations and bytes are unchanged in the selected
23+ pre/post comparison. Representative daemon frame benchmarks remained within
24+ normal run variance; no output-byte regression was observed.
25+
26+## Diff classification
27+
28+- **Extraction:** standalone module release, vev module dependency cutover, and
29+ removal of the in-repository VT/core/ANSI owners.
30+- **Tests and fixtures:** external ownership contracts, VTH3 golden vectors,
31+ VEVS restore fixtures, and fuzz smoke coverage.
32+- **Documentation:** ownership, callback, borrowing, release, and verification
33+ records.
34+- **CI:** standalone formatting, lint, race, fuzz, benchmark, and consumer jobs.
35+
36+## Risks and follow-up
37+
38+- A broad baseline run including `BenchmarkScreenResizeReflowViewport` still
39+ exposes the pre-existing `invalid history row ID` benchmark panic. The
40+ selected extraction comparison excludes that benchmark rather than masking it.
41+- There is no dedicated standalone `RuneWidth` benchmark; width behavior is
42+ covered by public contract tests and the screen/parser benchmark suite.
43+- The outer VEVS codec intentionally remains in vev and must not move into the
44+ standalone module.
@@ -0,0 +1,44 @@
1+# VT extraction verification evidence
2+
3+## Release
4+
5+- Module: `github.com/bnema/vev-vt v0.2.1`
6+- Module checksum: `h1:sb5XWVVIgiYd82KSYb3gHvkHVt9r5oRoEK0hqO1B+Aw=`
7+- Go module checksum: `h1:QdV0QI7vUnlAF+7+CiPhThHDpDSkxMEZmCYl/Eo+xCA=`
8+- Standalone release commit: `7bd1a3c4`
9+- vev cutover commit: `df9964b7`
10+
11+## Acceptance evidence
12+
13+- vev: `make test`, `make lint`, `go mod verify`, and clean-checkout module
14+ resolution pass without a `replace` directive.
15+- Standalone module: tests, race tests, `go vet`, `golangci-lint`, external
16+ consumer smoke, import-boundary checks, and signed release tag pass.
17+- Fuzz smoke passes for VT input, ANSI rendering, VTH3 decoding, and VEVS v4
18+ restore decoding. Seeds include escape sequences, Unicode, clipboard input,
19+ malformed history, and the VEVS restore golden.
20+- VTH3 and VEVS fixtures remain byte-compatible. VEVS framing and session policy
21+ remain vev-owned.
22+- History/codec benchmark allocations and bytes are unchanged in the selected
23+ pre/post comparison. Representative daemon frame benchmarks remained within
24+ normal run variance; no output-byte regression was observed.
25+
26+## Diff classification
27+
28+- **Extraction:** standalone module release, vev module dependency cutover, and
29+ removal of the in-repository VT/core/ANSI owners.
30+- **Tests and fixtures:** external ownership contracts, VTH3 golden vectors,
31+ VEVS restore fixtures, and fuzz smoke coverage.
32+- **Documentation:** ownership, callback, borrowing, release, and verification
33+ records.
34+- **CI:** standalone formatting, lint, race, fuzz, benchmark, and consumer jobs.
35+
36+## Risks and follow-up
37+
38+- A broad baseline run including `BenchmarkScreenResizeReflowViewport` still
39+ exposes the pre-existing `invalid history row ID` benchmark panic. The
40+ selected extraction comparison excludes that benchmark rather than masking it.
41+- There is no dedicated standalone `RuneWidth` benchmark; width behavior is
42+ covered by public contract tests and the screen/parser benchmark suite.
43+- The outer VEVS codec intentionally remains in vev and must not move into the
44+ standalone module.

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 12

Tags 11

↑↓ moveenter openesc close