Skip to content

test: bind desktop fixtures to the current host and renderer - #956

Merged
i2cjak merged 1 commit into
mainfrom
backplane/thin-fixtures-current-host
Nov 4, 2026
Merged

i2cjak merged 1 commit into
mainfrom
backplane/thin-fixtures-current-host

Conversation

@i2cjak

@i2cjak i2cjak commented Nov 4, 2026

Copy link
Copy Markdown
Collaborator

Fixes the 23 Node failures in the small gate's desktop batch that are red on main and block #951. This PR changes tests only: no product, Bend, law, CLI or guard change, and nothing is deleted or skipped.

All 23 fail on pure main 64eca09231 (Boat j20261104202440-1495217, 388 tests, 365 pass). With this change the same batch passes 389 of 389 (j20261104204829-1681554); the extra test is the new pending check below.

Why they failed

These tests run slices of src/web/host.js in a vm, so a slice can't see host.js's imports or the top-level names outside it. Later commits added uses of those names inside the slices. Several failures were hidden: each fix exposed the next, and ThinHost's bare catch turned one ReferenceError into View request could not be sent.

Test file Failures Missing or stale From Fix
host-thin-startup 15 directReconnect #941 a44e1e11a9 real export from reconnect.js
PHONE_TITLES phone-web series real line from host.js
secretSaves 36d45ab07 real SecretSaveHost; its build and send throw if used
phoneReplyWatch phone-web series real block from host.js
phoneRequest, PHONE c12327204 real phoneRequest; PHONE: false as a desktop input
thin-search-ui 6 PHONE_TITLES, softFocus #938, #942 real line and real touch-focus.js export
thin-view-hold 1 end marker retireAllowance( left host.js #802 end at trace("dom",; the sliced lines are the same
focused-cache 1 expects msg assistant live #680 138b2731e see below

Please review these two closely: they change what a test expects or sets up

  1. focused-cache.test.cjs "normal live DOM shape": Restore account selection and combine requested local UI updates #680 made the live row a static pending bubble, which is the documented contract (docs/active-threads-load.md:85) and is pinned by test/signal_ui_test.bend. The same three shape checks (class, body, no data-id) now read View.pending.node. A new test checks that the bubble stays out of a saved picture.
  2. host-thin-startup "late retry probe": Web: reconnect at once when the page comes back from the background #941 connects straight to the socket on a reconnect, so /hello is only probed once directFails reaches DIRECT_TRIES. The test now sets that state to reach the same race. Its assertions are unchanged, and its legacy branch still reproduces the old extra close.

Left for the owners (not changed here)

  • focused-cache.js still captures streaming rows by class live, which nothing in the normal web renderer now emits.
  • viewsEver is set when view mode starts (host.js:3490), not at the first view as reconnect.js's comment says. The effect is bounded by DIRECT_TRIES.
  • ThinHost's bare catch around api.send hides programming errors like these as View request could not be sent. Failing tests also left timers running, which is why the batch hung instead of finishing.

Merging: this PR and #955 each need the other for the guards to pass. Control on the combined tree is reported below once it finishes.

cc @jlcjak: these fixtures fell behind the phone-web and reconnect work. Please check the PHONE_TITLES, phoneReplyWatch and directReconnect handling matches what you intended.

23 tests in the small gate's Node batch fail on main, because these fixtures run
slices of host.js or read the renderer and fell behind them. Load the real names
the slices now reach, move an end marker that left host.js, reach the probe path
#941 moved behind directReconnect, and re-bind the focused-cache shape checks to
the static pending bubble. Adds one check that the bubble stays out of a saved
picture. Tests only; nothing is deleted or skipped.
@i2cjak

i2cjak commented Nov 4, 2026

Copy link
Copy Markdown
Collaborator Author

Combined control passed on 5a035a8b17 (this PR plus #955 on 64eca09231, tree 928f878df4), Boat j20261104204946-1688241, capped at 3.7e9 with swap 0: the pin test passed, the old pin failed as expected, and scripts/local-small.py --guards-only completed (Node batch 389 of 389). This does not cover the Bend step.

@i2cjak
i2cjak merged commit e7d8ff7 into main Nov 4, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant