Grok round 5 found:
1. examples/games.yaml was actually src/main.rs (227 lines of clap
CLI; my round-4 Item 4 commit message was wrong). Replaced with
a real seed YAML. The example shows the env format as
[[KEY, VALUE], ...] (a list of pairs), NOT KEY=*** (serde_yaml
will not parse KEY=*** into Vec<(String, String)>).
3. App.pending_ipc was written by Free-mode buttons but never
drained by the main loop. Replaced with direct self.ipc(...)
calls. Hoisted the closure borrow by collecting verbs into a
Vec<(&str, u32)> and draining after the slots borrow is
released. Dropped the pending_ipc field + App literal init.
8. Doc residue: passthrough / window_match claims still in
README.md, CHANGELOG.md, docs/DESIGN.md. Updated README.md to
point at round-4 Item 6 + Item 3. Added a round-4 section at
the top of CHANGELOG.md. Dropped the duplicate passthrough
bullet in docs/DESIGN.md.
10. Dead passthrough_id helper in hotkey.rs (unused after the
passthrough feature dropped in round-4 Item 6). Dropped the
function + its doc comment.
cargo test 103/103; clippy clean.
The T14 audit found more places where comments and docs claimed
T10 was a stub or follow-up after the gbm_bo_map work landed:
- src/vfx.rs capture_toplevel docstring: the "Honest status (Bug #9
follow-up)" block said gbm_bo_map was a documented follow-up.
Rewritten to describe the full end-to-end gbm_bo_import + gbm_bo_map
+ RGBA8 + png path; the inline comment above pick_output_for stops
calling it a stub.
- src/toplevel_export.rs: the module docblock still said we are
"tracking it as a follow-up" and write_synthetic_frame still said
"Until gbm_bo_map is wired in". Rewritten as the documented
fallback path. capture_via_export footer updated. Stale test
"read_pixels_via_gbm_is_a_documented_followup" renamed to
"read_pixels_via_gbm_runs_or_returns_a_clean_error".
- src/overlay.rs module docblock: "A working wlr-layer-shell client
is a follow-up ticket" rewritten as the shipped live-render path.
- README.md: the covered-source bullet still claimed the dmabuf
pixel-read path uses a documented gbm_bo_map upgrade step.
Rewritten to point at the shipped runtime dlopen path
(commit 0ba3c59).
cargo test 99+/0; clippy clean.
After T10 shipped (commit 0ba3c59) several docs still claimed the
gbm_bo_map / ENBOXER_ENABLE_TOPLEVEL path was a stub, follow-up, or
"/dev/dri/renderD128 + new dep" work that never happened. Rewrite:
- README.md: ENABLE_TOPLEVEL row no longer says "unset = stub".
- docs/VIDEO.md: live toplevel-export is real (gbm_bo_map via
runtime dlopen of libgbm.so.1, real RGBA8 PNG via the png crate).
- CHANGELOG.md: T10 follow-up entry rewritten as shipped.
- docs/MACROS.md: stale "Forever is not out yet / later helper
(not shipped)" paragraph rewritten to point users at the
per-character GUI rebind instead.
Hyprland binds called `ipc` twice so mapped keys never reached the daemon.
Overlays now use mpv with wayland-app-id and JSON reload. Empty window_match
matches nothing. Ctrl-c clears binds. Proven: send_shortcut to unfocused
XWayland, mpv overlay class enboxer-vfx.