Skip to content

v2.0.9

Choose a tag to compare

@github-actions github-actions released this 23 Sep 05:23
· 1345 commits to main since this release

cdn-default — the exported World page ships CDN-first

  • The exported World page loads three.js from the CDN by default. export_model({ format: 'html' }) now writes a world.html whose importmap points at the pinned jsdelivr path;
    cdn: false writes the self-contained world.offline.html that opens from file:// with no
    server and no network. The names follow the content, so the default export carries the obvious
    name and nothing silently changes meaning inside the bundle.
  • Why the flip: the constraint was never bytes. 2.0.8 shipped cdn: true as a size lever
    ("for a page door with a byte limit"). The artifact host actually refuses data: scripts under
    its CSP script-src at ANY size — a 2 MiB page clears the 16 MiB door and still renders black.
    A CDN page fails only for a viewer with no network; an inline page fails on every web host,
    every time. The default now points at the rarer failure.
  • The handoff note says it before it bites. pageSentence's artifact case no longer hides
    the CDN advisory inside the over-budget branch, so a page that FITS the door is no longer told
    it is fine when it is about to be blocked. The handoff.box.cdns field that claude-code.json
    has declared since 2.0.8 is finally read instead of merely asserted.
  • The bundle stays offline on purpose. export_model({ format: 'bundle' }) opts its page
    back into the self-contained build: the zip is a download, unzipped and opened from disk, so
    the README's "open world.html from disk" promise still holds inside the archive.
  • export_game gains the same cdn option, defaulting on, threaded to every page role
    (level, menu, preview). An exported game could not be published as an artifact page at all
    before this — emitWorldPage hardcoded inline: true with no flag to reach.