• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

umputun / agterm / 33899490703
93%

Build:
DEFAULT BRANCH: master
Ran 04 Sep 2026 05:19PM UTC
Jobs 1
Files 120
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

04 Sep 2026 05:14PM UTC coverage: 97.28%. Remained the same
33899490703

push

github

web-flow
fix(hud): resolve pane-scoped placement against the pane, not the window (#545)

* fix(hud): resolve pane-scoped placement against the deck, not the window

A pane-scoped HUD landed one detail-column origin off inside a split: shifted right by the
sidebar and divider, and up by the titlebar and its hairline. `HSplitView` hosts its arranged
subviews across an AppKit bridge that a named coordinate space does not cross, so `deckPane`'s
`frame(in: .named(...))` silently returned window coordinates there, and `overlayPanel` applied
that origin a second time through `.position`. A lone pane sits outside the split, which is why
only split sessions were wrong.

Carry the pane bounds as SwiftUI anchors instead. An anchor has no space of its own, so the
overlay layer resolves it in the layer's own space and both shapes land in the session detail
coordinates `HudPaneFrame` documents — leaving that public type's contract, and the cache
`ControlServer.paneMetrics` reads, unchanged.

Covered by hosted tests that mount the emitter and resolver behind a sidebar and a titlebar,
where a leaked window origin has somewhere to show up.

Related to #384

* test(hud): wait for the pane frames to settle instead of a fixed run-loop gap

The fixture stopped as soon as an anchor arrived, then bridged to the assertions with five
unconditional run-loop turns — and its own comment said the value it stopped on was the
pre-layout one. On a loaded machine the real layout pass can land after those 50ms, failing on a
rect mismatch that reads exactly like a coordinate leak.

Sample until the frames repeat, bounded by the same deadline, forcing a layout pass each turn so
a repeat means layout settled rather than that no pass has run yet.

* test(hud): return only a pane-frame sample that actually repeated

The settle loop assigned its result on every qualifying sample, so a fixture that never stopped
moving fell out of the deadline holding a mid-flight value and asserted on it — failing ... (continued)

9657 of 9927 relevant lines covered (97.28%)

4110552.43 hits per line

Jobs
ID Job ID Ran Files Coverage
1 33899490703.1 04 Sep 2026 05:19PM UTC 120
97.28
GitHub Action Run
Source Files on build 33899490703
  • Tree
  • List 120
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #33899490703
  • 094dc986 on github
  • Prev Build on master (#33839494192)
  • Next Build on master (#33900414782)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc