Skip to content

Bluesky (social-app web build)

Generated from docs/compat/bluesky.md when the site was built at 7aa23e2.

  • Build: bluesky-social/social-app at 8a61650d44de204ee4219148ccac3ed99e45aabf, expo export web build, served from a directory.

  • Run:

    Terminal window
    niso-run --page serve/index.html --root serve --url http://localhost/ \
    --missing --max-ms 15000

With Web Animations, the Splash component’s element.animate(...) runs: the fade-out (opacity 1 to 0, scale 1 to 1.5, 300 ms, fill forwards) plays on animation frames, its finished promise resolves at 300 ms, and getComputedStyle then gives opacity 0 and matrix(1.5, 0, 0, 1.5, 0, 0).

This was checked against the live bsky.app build (index-a9f3c868….js, mirrored on 2026-11-08 with its lazy messages-… chunk and the script URLs made local), not the commit above, which isn’t on this machine. The app now mounts and stops in two error boundaries (“Oh no! There was an unexpected issue in the application”): a horizontal scroller’s effect calls element.scroll({ left, behavior: 'smooth' }), which niso doesn’t have (“not a function”), and another component uses IntersectionObserver, which isn’t defined. The IndexedDB rejection is still logged as unhandled.

# What failed Cause Fix
1 The run never finished: a 2 s setInterval fired forever on the virtual clock niso_js_run cleared its first flag whenever DOM tasks ran, so the timer hook never got its time budget The flag is cleared only after the timer hook has seen it. Test: run_honors_its_budget_when_dom_tasks_run, which hangs without the fix.
2 new Headers(...) No fetch API Fixed by main’s fetch, Headers and Response. Relative fetch URLs now resolve against the document’s base URL, and GETs the embedder’s loader answers come from it (niso-run --root). Test: fetch_and_images_load_through_the_loader.
3 Splash: element.animate is not a function No Web Animations Web Animations Level 1 in the core (animation.rs, animation_style.rs), run from the rendering update and applied through the cascade. Tests: crates/niso-quickjs/tests/animations.rs and the web-animations WPT suite.
4 indexedDB undefined (an unhandled rejection) No IndexedDB IndexedDB on the storage driver (crates/niso-core/src/indexeddb). Not rerun: the build is not on the machine that added it.
5 A horizontal scroller: element.scroll(...) is not a function No Element.scroll/scrollTo/scrollBy (CSSOM View) Not fixed.
6 IntersectionObserver is not defined No IntersectionObserver Not fixed.

Earlier fixes in this effort, made while getting this app and the others to start: URL and URLSearchParams, History and Location (fragment navigation only), Web Storage, matchMedia, CSSOM (style sheets, rules, insertRule), MutationObserver, the Encoding API, HTMLLinkElement load and error events, ES modules and the unhandled rejection tracker in the QuickJS binding, HTML’s timer nesting clamp, and error causes in the console.