← Pipelines
success

build #29 ant/term ↗

main @ 7a144b89
push by ant
started 17 Sep 2026 08:38 UTC · · 1 passed
fix: pin HarfBuzz's advance-query load flags to match cell_metrics
hb_ft_font_create leaves HarfBuzz's own glyph-advance query on an internal default that isn't font.LOAD_DEFAULT. At some pixel sizes (font-dependent — reproduced with both the Nerd Font build in use and DejaVu Sans Mono, just at different sizes for each) that path returns each glyph's *unhinted* advance, while cell_metrics derives cell_w from face.size.metrics.max_advance, a *hinted* value — same font, same size, two disagreeing numbers. draw_shaped_run accumulates HarfBuzz's advance across a run but resets each new run's origin_x from the grid (start_col * cell_w), so the 1px-per-character gap only became visible at the next Row_Run_Key boundary (a color/style change) — read as "extra space before differently-styled text, growing the further right you look" rather than uniform drift, and vanishing entirely for plain single-color text where nothing ever resets against it. hb_ft_font_set_load_flags(font, font.LOAD_DEFAULT) makes HarfBuzz use the exact same hinted advance font.odin's own rasterize() already loads glyphs with, closing the gap between the two paths.

Jobs 1

  1. jobs

    • success
      build
      exit 0

Evaluation

ok · push · 17 Sep 2026 08:38 UTC · synthesised from a run that predates job graphs