← Jobs
success

headless ant/term ↗

started 22 Sep 2026 20:52 UTC · ran for
2m 38s, success 2m 32s, success 2m 41s, success 2m 37s, success 3m 43s, success 3m 29s, success 3m 47s, success 3m 37s, success 3m 31s, success 3m 46s, success avg 3m 14s ± 33s over the last 10 runs
feat: support multiple configurable fallback fonts config.odin's fallback_font_family was a single fontconfig family query, resolved to one font.Style.Fallback face. Replace it with fallback_font_families ([]string): an ordered list of fontconfig queries, each independently resolved and loaded (best-effort, same as the existing bold/italic variants), tried in order per glyph missing from the primary font until one has it. font.Font_Set gains fallback_faces/fallback_caches (parallel dynamic arrays, sized to however many configured families actually resolve), and font.get loops through them in order. Style.Fallback is removed from the enum since it no longer maps to a single fixed slot. resolve_font_paths (main.odin) now also returns a fallback_paths list, threaded through font.load_font_set at all three call sites (startup, change_font_size, e2e_start). nix/package.nix and nix/home-manager-module.nix updated to expose fallbackFontFamilies as a list, building the Odin slice literal from it. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
$ headless success · exit 0 · raw
++ mktemp -d
+ checkout=/tmp/tmp.PXTSrXFOoj
+ trap 'rm -rf "$checkout"' EXIT
+ cp -R /var/lib/ci-tron/sources/da99f4d2ffea69b7/. /tmp/tmp.PXTSrXFOoj
+ cd /tmp/tmp.PXTSrXFOoj
+ nix develop --command python3 scripts/headless_test.py
GC Warning: Could not open /proc/stat
headless_test: building term...
headless_test: starting headless sway...
headless_test: headless sway is on wayland-1 (pid 1075443)
headless_test: starting term...
headless_test: term window mapped
headless_test: screenshot captured (5444 bytes)
headless_test: wlrctl found — exercising wl_pointer capability negotiation
headless_test: wl_pointer wiring survived a synthetic scroll (does not confirm axis_discrete fired)
headless_test: wlrctl found — exercising pointer motion + click
headless_test: wl_pointer click/motion wiring survived a synthetic click and follow-up motion
headless_test: resizing headless output (term was 1280x672)...
headless_test: term resized to 640x432
headless_test: post-resize screenshot captured (12056 bytes) — resize path survived
headless_test: middle-click never reached term after 5 synthetic attempts — known wlrctl virtual-pointer enter/leave race (see check_pointer_click's docstring and ROADMAP.md's Known v1 limitations), not a paste-logic failure; skipping the round-trip assertion
headless_test: PASS
+ rm -rf /tmp/tmp.PXTSrXFOoj
Artifacts

no artifacts