a73x

Commits:

Hash Message Author Date
c1e97b1e scenario: polish — indent + RunContext geom comment a73x 2026-04-19
32e5b24c scenarios: make blink-bar fixture render visible content a73x 2026-04-19
a1685301 scenarios: first fixture blink-bar + Makefile targets a73x 2026-04-19
0ce56438 scenario: guard scale change + tighten captureCb errdefer a73x 2026-04-19
98db6e5d main: let runScenarios defers run before process exit a73x 2026-04-19
df6b166c main: add scenario entry point + runtime callbacks a73x 2026-04-19
b1c9ad85 main: thread optional ScenarioState through runTerminal a73x 2026-04-19
ba71ab5e pty: close master fd on fcntl failure in openForScenario a73x 2026-04-19
b91f705a pty: add openForScenario — pty pair without a child a73x 2026-04-19
3f961039 Plan 3 of 3 for scenario runner: main-loop integration a73x 2026-04-19
52e5cdc1 scenario: plug capture leaks + thread CellGeom + distinct errors a73x 2026-04-19
9a964981 scenario: size-check golden in cell_matches_golden predicate a73x 2026-04-19
1f681745 scenario: add cell-region predicate evaluator + wire into tick a73x 2026-04-19
39c1f074 scenario: close TickError set + extract blink_period_ns const a73x 2026-04-19
a36f7122 scenario: add ScenarioState + tick state machine a73x 2026-04-19
2dadb5e0 scenario: reject size=0, out-of-bounds asserts, empty bytes-hex a73x 2026-04-19
4e65a5d1 scenario: add parser for the scenario runner DSL a73x 2026-04-19
46c96419 Plan 2 of 3 for scenario runner: parser + state + predicates a73x 2026-04-19
9fae3529 imgdiff: shrink CLI to thin wrapper over src/imgdiff.zig a73x 2026-04-19
5de16e01 imgdiff: add src/imgdiff.zig pure-math module a73x 2026-04-19
d725cafd Plan 1 of 3 for scenario runner: imgdiff extraction a73x 2026-04-19
1a0fc00e Scenario runner design: agent-runnable render smoke a73x 2026-04-19
07d3d200 main: use explicit viewportEql instead of std.meta.eql a73x 2026-04-19
51f41728 main: wire blink state machine into the render loop a73x 2026-04-19
73ad3949 main: collapse duplicate arm branches in reconfigureBlink a73x 2026-04-19
2c4e9a52 main: add blink state machine + draw-rule pure helpers a73x 2026-04-19
e0e1171e main: widen computePollTimeoutMs to accept a second deadline a73x 2026-04-19
73e2fd1c cursor: extract cursorInstance helper with DECSCUSR shape dispatch a73x 2026-04-19
3394c210 Cursor blink implementation plan a73x 2026-04-19
6dfa62bf Cursor blink design: DECSCUSR + 500ms phase a73x 2026-04-19
aadc1228 main: document drawTextCoverageCompareFrame as non-recoverable smoke path a73x 2026-04-18
6be8f234 main: add exponential backoff on Vulkan timeout retries a73x 2026-04-18
dba2175a check_unbounded_vk: comment the PATTERNS list as maintainer-update target a73x 2026-04-18
fd817e8a Add grep gate that forbids unbounded Vulkan waits outside vk_sync a73x 2026-04-18
9afdc9f8 Migrate 14 *WaitIdle sites to vk_sync.waitIdleForShutdown a73x 2026-04-18
c1de8b6f renderer: gate fence re-signal on pre-submit errors only a73x 2026-04-18
0c5b68af Migrate 10 Vulkan wait/acquire sites to bounded helpers a73x 2026-04-18
66ece494 renderer: reorder resetFences after acquire, add errdefer re-signal a73x 2026-04-18
94f2d7b5 vk_sync: fail closed on unknown acquire result + comments a73x 2026-04-18
2c50c63e Add vk_sync module with bounded Vulkan wait helpers a73x 2026-04-18
03430faf Add Vulkan bounded-waits implementation plan a73x 2026-04-18
b98c28dc Vulkan bounded-waits spec: match inline-test convention a73x 2026-04-18
7ef4a62c Add Vulkan bounded-waits design spec a73x 2026-04-18
922aa410 Add input-latency bench implementation plan a73x 2026-04-18
7a1e22d2 Input-latency bench: share grid-lock across all bench modes a73x 2026-04-18
da8a44a0 Input-latency bench: fold in reviewer feedback and controlled hot workload a73x 2026-04-18
35311690 Input-latency bench: cold child is cat > /dev/null a73x 2026-04-18
110e95aa Add input-latency bench design spec a73x 2026-04-18
5f8b00ab Split gpu_submit into sub-stage timings (bench only) a73x 2026-04-17
02224fad Default bench + profile to ReleaseFast a73x 2026-04-17
b7e080ca Make bench + profile workloads representative a73x 2026-04-17
321b2280 Merge branch 'gpu-render-testing' a73x 2026-04-17
eb4ff88c Polish frame-loop visibility handling a73x 2026-04-17
49903c96 Widen readbackOffscreen assert to usize a73x 2026-04-17
6720a6b9 Add make targets for render + bench tests a73x 2026-04-17
9e9d75b6 Add bench-baseline and bench-check a73x 2026-04-17
828c61f5 Commit initial golden reference PNGs a73x 2026-04-17
a9c14dfd Add test-render orchestrator a73x 2026-04-17
4ef7ebfb Add initial VT test scripts for render testing a73x 2026-04-17
4679378d Add imgdiff: RMSE + per-pixel-max PNG comparison a73x 2026-04-17
8f9e9953 Extract cell_instance helpers into shared module a73x 2026-04-17
a5726e8a Add --capture mode: render a VT script to PNG a73x 2026-04-17
6986eef7 Add BaselineRecord + JSON round-trip for frame stats a73x 2026-04-17
1d53cec2 Extract frame timing stats into bench_stats module a73x 2026-04-17
b0fdd27b Guard offscreen renderer against shared-state hazards a73x 2026-04-17
2d429b7f Add offscreen render target + readback to renderer a73x 2026-04-17
1acfbe4b Add vendored minimal RGBA8 PNG codec a73x 2026-04-17
7b928983 Add GPU render testing implementation plan a73x 2026-04-17
91570f6e Revise GPU render testing spec per review a73x 2026-04-17
b0ade34d Add GPU render testing design spec a73x 2026-04-17
f743ae41 Decouple rendering from visibility; fix v5 compositor bootstrap a73x 2026-04-17
c1104500 Final polish: restore SIGUSR1 under visibility gate, drop unused import a73x 2026-04-16
c0814a64 Restore stdin wait in --hidden-freeze-regression a73x 2026-04-16
fa7b59b5 Add --hidden-freeze-regression manual test mode a73x 2026-04-16
13a38303 Add WAYSTTY_BENCH_UNTHROTTLED escape hatch a73x 2026-04-16
d236646a Migrate runDrawSmokeTest to FrameLoop a73x 2026-04-16
33c334d6 Migrate runTextCoverageCompare to FrameLoop a73x 2026-04-16
35c92e24 Add synthetic hidden-freeze regression test a73x 2026-04-16
185553de Migrate main terminal loop to FrameLoop; fix hidden-workspace freeze a73x 2026-04-16
eb6c0232 Add real-path DisplayOps adapter on Window a73x 2026-04-16
da641eec Add MockDisplayOps + FrameLoop unit tests a73x 2026-04-16
b0070dd0 Harden FrameLoop per code-quality review a73x 2026-04-16
dec56ed3 Introduce FrameLoop module and DisplayOps trait a73x 2026-04-16
729572fe Simplify applyToplevelStates signature and expand test coverage a73x 2026-04-16
aba50517 Bump xdg_wm_base to v6 and honor toplevel suspended state a73x 2026-04-16
109a4daa Wire SurfaceState into Window a73x 2026-04-16
70396bf0 Add SurfaceState struct for visibility tracking a73x 2026-04-16
cd9e8b61 Add ScaleTracker.enteredCount a73x 2026-04-16
0c91e8f4 Add frame-callback throttling implementation plan a73x 2026-04-16
7df2905c Add frame-callback throttling design spec a73x 2026-04-16
551433ab Add incremental atlas upload with ASCII precompute a73x 2026-04-10
f754bb6b Add performance benchmarking instrumentation a73x 2026-04-10
fc9f9849 Add performance benchmarking and incremental atlas upload specs and plans a73x 2026-04-10
16676784 Add implementation plans for dirty row rendering, font config, HiDPI, text coverage, and visible selection a73x 2026-04-10
d7e61651 Force full row rebuild when selection span changes a73x 2026-04-09
6b990766 Clean up clipboard code after review: remove dead serial field and add guard comments a73x 2026-04-09
d0084ff5 Copy visible selection to clipboard a73x 2026-04-09
772dbdd6 Fix selection clear on off-grid click and clampGridPoint row clamping a73x 2026-04-09
bf07276c Highlight visible text selection a73x 2026-04-09
f37ca90d Fix clipboard send fd lifecycle a73x 2026-04-09
32c6ea16 Fix clipboard source transfer threading a73x 2026-04-09
ce9c391f Add Wayland pointer and clipboard source support a73x 2026-04-09
499daca1 Remove spacer boundary normalization a73x 2026-04-09
9a329e5a Fix selection grapheme and wide cell extraction a73x 2026-04-09
87544d89 Fix visible selection text extraction a73x 2026-04-09
ec887038 Add visible selection copy extraction a73x 2026-04-09
e752cef0 Fix visible selection resize semantics a73x 2026-04-09
e536c796 Fix selection helper scope a73x 2026-04-09
6a5f175f Refine selection span semantics a73x 2026-04-09
be9bf5ac Fix selection clamping semantics a73x 2026-04-09
d086c0e1 Add visible selection helpers a73x 2026-04-09
b5011067 Add visible selection design spec a73x 2026-04-09
ce21fd10 Honor wl_output buffer scale in terminal render loop a73x 2026-04-09
e4c70529 Merge branch 'feature/hidpi-support' into implement-v1 a73x 2026-04-09
52933806 Honor wl_output buffer scale in text-compare mode a73x 2026-04-09
c6a25e27 Add Atlas.reset and Face.reinit for scale changes a73x 2026-04-09
4f3b2926 Track wl_surface enter/leave on Window a73x 2026-04-09
12b4f1c8 Bind wl_output globals into ScaleTracker a73x 2026-04-09
2897c867 Add pure ScaleTracker for wl_output scale tracking a73x 2026-04-09
6564efc5 Ignore .worktrees directory a73x 2026-04-09
adb35120 Fix text compare mode event loop and labels a73x 2026-04-09
5cae59bc Add text coverage comparison mode a73x 2026-04-09
124b4c98 Make comparison panel helper explicitly four-panel a73x 2026-04-09
1146e2f0 Add text comparison layout helpers a73x 2026-04-09
0b323daf Use shared baseline coverage preset a73x 2026-04-09
fc5431d4 Keep default rendering on baseline coverage a73x 2026-04-09
96e8ea4e Plumb text coverage controls through renderer a73x 2026-04-09
54ba5780 Pin text coverage preset values in tests a73x 2026-04-09
2ff87ed6 Add text coverage variant helpers a73x 2026-04-09
12bf992b Add text coverage comparison design a73x 2026-04-09
1ad23272 Import terminal config directly in main a73x 2026-04-09
d9da3081 Read terminal font size from config a73x 2026-04-09
c3b6edc4 Resolve configured terminal font family a73x 2026-04-09
6294958b Add terminal font config module a73x 2026-04-09
3cdecfb9 Add font config design a73x 2026-04-09
124fa6a4 Handle color-only render cells safely a73x 2026-04-09
247fce8e Use dirty-row render cache in terminal loop a73x 2026-04-09
1b76e08f Test partial upload API contract a73x 2026-04-08
2fd9a6ab Fix partial upload fallback contract a73x 2026-04-08
4f15ba85 Add partial instance buffer uploads a73x 2026-04-08
1c051843 Fix cursor cache invalidation contract a73x 2026-04-08
9d6c13c8 Add cursor cache rebuild logic a73x 2026-04-08
9e189dbc Clarify row rebuild cache contract a73x 2026-04-08
0615931a Extract row instance rebuild logic a73x 2026-04-08
56668744 Reset row GPU spans on render cache resize a73x 2026-04-08
5e9ae29b Fix render cache resize invariants a73x 2026-04-08
7a8bf92e Add render cache data structures a73x 2026-04-08
255115ee Refine instance upload planning contract a73x 2026-04-08
a49da033 Add instance upload planning helpers a73x 2026-04-08
917999fd Fix dirty-row packing contract a73x 2026-04-08
f60856b1 Add dirty-row packing helpers a73x 2026-04-08
545e5683 Fix same-row cursor refresh planning a73x 2026-04-08
f4135ed2 Fix dirty-row refresh planning helpers a73x 2026-04-08
8975cd18 Add dirty-row refresh planning helpers a73x 2026-04-08
68df7b96 Clarify dirty-row rendering edge cases a73x 2026-04-08
f5d1aa15 Add dirty-row rendering design spec a73x 2026-04-08
b44b035d Improve terminal responsiveness and state handling a73x 2026-04-08
10cbcfdb Handle out-of-date swapchains during draw a73x 2026-04-08
55523c50 Fix renderer merge blockers a73x 2026-04-08
6f0c995e Fix clipboard paste deadlock a73x 2026-04-08
161124e4 Heap-allocate vt.Terminal a73x 2026-04-08
448e8bb8 Add clipboard paste support a73x 2026-04-08
b2d1bc2e Wire terminal effect callbacks a73x 2026-04-08
430800c8 Improve glyph positioning a73x 2026-04-08
9c669d38 Draw cell backgrounds a73x 2026-04-08
ae38f777 Render actual cell colors a73x 2026-04-08
52554a17 Render terminal cursor a73x 2026-04-08
e4c26d38 Handle window resize a73x 2026-04-08
3d5b717d Handle non-text key encoding a73x 2026-04-08
47eefde2 feat: full terminal integration — waystty works a73x 2026-04-08
6e422506 chore(main): extend draw smoke test duration for visual verification a73x 2026-04-08
e2859d88 feat(renderer): glyph atlas upload + instanced draw a73x 2026-04-08
ff8b9f51 feat(renderer): render pass + pipeline + clear-and-present loop a73x 2026-04-08
5686b7ab feat(renderer): vulkan instance + surface + device + swapchain a73x 2026-04-08
ee1a63bd build(renderer): wire vulkan-zig + glslc + embed SPIR-V a73x 2026-04-08
30b495f7 feat(wayland): keyboard + xkbcommon + key repeat a73x 2026-04-08
2c843d0d feat(wayland): create surface + xdg_toplevel a73x 2026-04-08
1f3f2cdf feat(wayland): connect + bind globals a73x 2026-04-08
445311ee feat(font): glyph atlas with row-based packing a73x 2026-04-08
61494a58 feat(font): freetype face + rasterize a73x 2026-04-08
568caf21 feat(font): fontconfig monospace lookup a73x 2026-04-08
5824bccb feat(main): headless mode — pty + vt proof of life a73x 2026-04-08
5a01c1f3 feat(vt): Terminal facade wrapping ghostty-vt a73x 2026-04-08
94e7b0ed feat(pty): add resize a73x 2026-04-08
7367068b feat(pty): add read/write helpers a73x 2026-04-08
835bd46d feat(pty): spawn child shell via forkpty a73x 2026-04-08
83a75672 build: wire ghostty-vt module a73x 2026-04-08
0d256ea4 build: add zig-wayland, vulkan-zig, vulkan-headers, ghostty deps a73x 2026-04-08
796976ec chore: minimal build.zig with working fingerprint a73x 2026-04-08
d5946d76 chore: add build.zig.zon skeleton a73x 2026-04-08
6d02f429 chore: add gitignore a73x 2026-04-08
85df18a0 Add corrections section to waystty implementation plan a73x 2026-04-08
c05013f9 Add waystty implementation plan a73x 2026-04-08
5c38fd57 Update design spec with review feedback a73x 2026-04-07
bddbc526 Add waystty design spec a73x 2026-04-07