From fd0fc2336c2fb4352ad919691bc8f6b8c72fd3ca Mon Sep 17 00:00:00 2001 From: Buck Doyle Date: Wed, 19 Aug 2026 19:49:59 -0400 Subject: [PATCH 1/6] Try running the host tests without the D-Bus helpers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit An apt install of dbus-x11 and upower was added in October 2025 to reduce Percy instability, bundled in one commit with a Monaco test waiter and a Percy config change. Every Percy cause diagnosed since has been somewhere else — a module-level panel-width singleton, the discovery browser's font cache — so whether these packages still earn their place has never been tested. They are not free. This is the last apt call left in the workflow, and so the only remaining reason Ubuntu's mirrors sit on its critical path. upower alone brings six dependencies, four of them iOS device libraries, so that a headless runner can report the battery level of a phone that is not attached. The tests still run under `dbus-run-session`. If the image does not provide it the step fails immediately with a command-not-found rather than hanging, so this is inexpensive to be wrong about; the probe that replaces the install records what the image actually ships either way. Co-Authored-By: Claude Opus 5 --- .github/workflows/ci-host.yaml | 78 ++++++++++++++++++++-------------- 1 file changed, 46 insertions(+), 32 deletions(-) diff --git a/.github/workflows/ci-host.yaml b/.github/workflows/ci-host.yaml index e38a35c0d9e..67946ab2047 100644 --- a/.github/workflows/ci-host.yaml +++ b/.github/workflows/ci-host.yaml @@ -234,23 +234,30 @@ jobs: - name: Disable TCP/UDP network offloading run: sudo ethtool -K eth0 tx off rx off - # Install + restart dbus/upower BEFORE the test services come up. - # `sudo service dbus restart` triggers chrome's NetworkChangeNotifier - # in any already-running chromium (the prerender's standby probe and - # the realm-server's prerender workers), which aborts every in-flight - # h2 stream with ERR_NETWORK_CHANGED and leaves wait-for-host-standby - # stuck waiting for #standby-ready that never lands. - # These packages are absent from the runner image, so this step has to - # reach Ubuntu's mirrors. Bound it: apt retries a degraded mirror with - # long internal timeouts, so without a ceiling an upstream archive - # outage hangs the job rather than failing it. - - name: Install D-Bus helpers - timeout-minutes: 5 + # EXPERIMENT — this replaces an apt install of dbus-x11 and upower, added + # in October 2025 to reduce Percy instability. Every Percy cause diagnosed + # since has been elsewhere (a module-level panel-width singleton, the + # discovery browser's font cache), so whether these packages still earn + # their place is untested. They are the last apt call in this workflow, + # and upower alone pulls in six dependencies including the iOS device + # libraries, to report the battery level of a phone that is not attached. + # + # The tests still run under `dbus-run-session`. If the image does not + # provide it the test step fails immediately with a command-not-found + # rather than hanging, so this is a cheap thing to be wrong about. The + # probe records what the image actually ships either way. + - name: Report D-Bus tooling provided by the runner image run: | - sudo apt-get update -o Acquire::Retries=3 - sudo apt-get install -y -o Acquire::Retries=3 dbus-x11 upower - sudo service dbus restart - sudo service upower restart + for tool in dbus-run-session dbus-launch upower; do + if command -v "$tool" >/dev/null 2>&1; then + echo "present: $tool ($(command -v "$tool"))" + else + echo "ABSENT: $tool" + fi + done + ls -l /run/dbus/system_bus_socket 2>&1 || echo "no system bus socket" + dpkg -l dbus dbus-bin dbus-daemon dbus-x11 upower 2>/dev/null | + awk '/^[a-z]/ {print " dpkg:", $1, $2, $3}' || true # Trust mkcert's root in the system store too, so plain `curl` (which # ignores NODE_EXTRA_CA_CERTS) can validate Traefik's leaf. @@ -503,23 +510,30 @@ jobs: # https://github.com/actions/runner-images/issues/1187#issuecomment-686735760 - name: Disable TCP/UDP network offloading run: sudo ethtool -K eth0 tx off rx off - # Install + restart dbus/upower BEFORE the test services come up. - # `sudo service dbus restart` triggers chrome's NetworkChangeNotifier - # in any already-running chromium (the prerender's standby probe and - # the realm-server's prerender workers), which aborts every in-flight - # h2 stream with ERR_NETWORK_CHANGED and leaves wait-for-host-standby - # stuck waiting for #standby-ready that never lands. - # These packages are absent from the runner image, so this step has to - # reach Ubuntu's mirrors. Bound it: apt retries a degraded mirror with - # long internal timeouts, so without a ceiling an upstream archive - # outage hangs the job rather than failing it. - - name: Install D-Bus helpers - timeout-minutes: 5 + # EXPERIMENT — this replaces an apt install of dbus-x11 and upower, added + # in October 2025 to reduce Percy instability. Every Percy cause diagnosed + # since has been elsewhere (a module-level panel-width singleton, the + # discovery browser's font cache), so whether these packages still earn + # their place is untested. They are the last apt call in this workflow, + # and upower alone pulls in six dependencies including the iOS device + # libraries, to report the battery level of a phone that is not attached. + # + # The tests still run under `dbus-run-session`. If the image does not + # provide it the test step fails immediately with a command-not-found + # rather than hanging, so this is a cheap thing to be wrong about. The + # probe records what the image actually ships either way. + - name: Report D-Bus tooling provided by the runner image run: | - sudo apt-get update -o Acquire::Retries=3 - sudo apt-get install -y -o Acquire::Retries=3 dbus-x11 upower - sudo service dbus restart - sudo service upower restart + for tool in dbus-run-session dbus-launch upower; do + if command -v "$tool" >/dev/null 2>&1; then + echo "present: $tool ($(command -v "$tool"))" + else + echo "ABSENT: $tool" + fi + done + ls -l /run/dbus/system_bus_socket 2>&1 || echo "no system bus socket" + dpkg -l dbus dbus-bin dbus-daemon dbus-x11 upower 2>/dev/null | + awk '/^[a-z]/ {print " dpkg:", $1, $2, $3}' || true # Trust mkcert's root in the system store too, so plain `curl` (which # ignores NODE_EXTRA_CA_CERTS) can validate Traefik's leaf. From c7364919f42e4871eb3427a55cc5c64d9c2546c3 Mon Sep 17 00:00:00 2001 From: Buck Doyle Date: Wed, 19 Aug 2026 20:53:39 -0400 Subject: [PATCH 2/6] Touch a host file so Percy runs against the D-Bus removal MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Percy only runs when a pull request touches packages/host, boxel-ui, boxel-icons, base or runtime-common. This branch changes a workflow file alone, so Percy was skipped — and since the D-Bus helpers were installed specifically to reduce Percy instability, the first green run validated everything except the thing the experiment exists to test. A comment in the host README flips that gate without altering behaviour, and without matching the narrower render-path list that would also force a from-scratch index. Remove before merge. Co-Authored-By: Claude Opus 5 --- packages/host/README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/packages/host/README.md b/packages/host/README.md index 324d08593a6..30790d90d9a 100644 --- a/packages/host/README.md +++ b/packages/host/README.md @@ -63,3 +63,12 @@ Specify what it takes to deploy your app. - Development Browser Extensions - [ember inspector for chrome](https://chrome.google.com/webstore/detail/ember-inspector/bmdblncegkenkacieihfhpjfppoconhi) - [ember inspector for firefox](https://addons.mozilla.org/en-US/firefox/addon/ember-inspector/) + + From fc8ac231409703f35d0a494f3a6004195fa1c4b0 Mon Sep 17 00:00:00 2001 From: Buck Doyle Date: Wed, 19 Aug 2026 21:20:42 -0400 Subject: [PATCH 3/6] Resample the D-Bus removal The previous run's Percy result was inconclusive, so this takes another sample of the same tree. No content change. From 9f8e66ec0d079ccfa584d0b1535b72577d3d603e Mon Sep 17 00:00:00 2001 From: Buck Doyle Date: Wed, 19 Aug 2026 22:16:45 -0400 Subject: [PATCH 4/6] Resample the D-Bus removal against the accepted baseline The previous two builds reported differing counts of visual changes on an identical tree. Those snapshots have since been accepted, so this samples the same tree once more: a clean build means the earlier counts were baseline drift rather than run-to-run variance. No content change. From 91556d62c9373d1ab69fdd934e16987fad2e6e25 Mon Sep 17 00:00:00 2001 From: Buck Doyle Date: Wed, 19 Aug 2026 22:45:54 -0400 Subject: [PATCH 5/6] Resample the D-Bus removal once more The previous build was clean against the accepted baseline. This repeats it on the same tree to confirm that was stable rather than a single friendly comparison. No content change. From e25925cd7475c3a7a97563b5f65230c6e9f4d7fb Mon Sep 17 00:00:00 2001 From: Buck Doyle Date: Thu, 20 Aug 2026 08:11:07 -0400 Subject: [PATCH 6/6] Remove the temporary host README touch MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It existed only to bring Percy into this branch's runs, by making the pull request touch a path Percy gates on. Percy has now been sampled four times against an identical tree and reported three changes, then four, then none, then one — so it cannot attribute anything to this change in either direction, and further samples would characterise Percy rather than the removal. What the runs did establish stands on its own: dbus-run-session is already on the runner image via dbus-bin, upower is unnecessary, and the host suite is green across every sample. Co-Authored-By: Claude Opus 5 --- packages/host/README.md | 9 --------- 1 file changed, 9 deletions(-) diff --git a/packages/host/README.md b/packages/host/README.md index 30790d90d9a..324d08593a6 100644 --- a/packages/host/README.md +++ b/packages/host/README.md @@ -63,12 +63,3 @@ Specify what it takes to deploy your app. - Development Browser Extensions - [ember inspector for chrome](https://chrome.google.com/webstore/detail/ember-inspector/bmdblncegkenkacieihfhpjfppoconhi) - [ember inspector for firefox](https://addons.mozilla.org/en-US/firefox/addon/ember-inspector/) - -