DSL 3.1 release smoke
Copyright © 2026 Hiroya Kubo. この文書はCC BY-SA 4.0で提供します。
This procedure verifies the browser-only paths that the Scratch VM integration tests cannot cover. Run it against the exact SB3 proposed for publication. A failure in any release-stop item blocks the release; it is not converted into an exception by updating this record.
Prepare the candidate
pnpm install --frozen-lockfile
pnpm run build
node scripts/build-release-smoke-fixtures.mjs
shasum -a 256 dist/downloads/kamishibai.sb3 tmp/release-smoke/*.sb3
The generator creates two Player-style copies of the candidate without changing the tracked SB3:
| Fixture | featureDetailedScriptErrors |
Embedded script | Purpose |
|---|---|---|---|
detailed-on-unsupported-version.sb3 |
true |
kamishibai=4.0 |
detailed SVG and safe stop |
detailed-off-unsupported-version.sb3 |
false |
kamishibai=4.0 |
3.1.7-compatible fallback |
tmp/release-smoke/manifest.json binds every generated file to the candidate SHA-256. Do not reuse
fixtures after rebuilding the candidate.
TurboWarp Editor
- Open
https://turbowarp.org/editorin a clean browser profile or a new browser session. - Select File → Load from your computer and choose the candidate SB3.
- Approve each unsandboxed extension only after checking that it belongs to this project.
- Confirm that the candidate asks seven times: Asset Manager, TurboWarp TM, Text Lines, Runtime Expression, Kamishibai Runtime, Async Input, and Web Link. A 3.1.7 artifact without Kamishibai Runtime asks six times.
- Press the green flag. Confirm that the title and menu are readable and that no load-error dialog appears.
Record the TurboWarp editor bundle filename shown by the served HTML, browser version, OS, candidate commit, SB3 SHA-256, permission count, and result. Repeating a test in the same Editor tab does not prove the initial permission count; reload it in a new session.
External and embedded scripts
External
- Open the generic candidate and close the title screen.
- Choose Open file and select
test/fixtures/manual/pr-44-smoke.txt. - Confirm the title-to-Stars transition, the 30-second wait, and the return to Title.
- Reload the script and press Right during the wait. Confirm that the wait is interrupted and the next scene is reached without leaving animation, input, or audio work behind.
Embedded
-
Open a Player SB3 created by the builder, or the published
urashima.sb3, in a new Editor session. - Press the green flag and close the title screen. No file chooser must appear.
- Confirm that the first scene is displayed and Space/Right/Down advance according to the script.
Camera, TurboWarp TM, and scene transition
Use a Player story whose script contains a pose action and whose model URL is still available.
- Close the title screen and allow camera access for the story origin.
- Confirm a live preview and a TurboWarp TM skeleton or recognition result. Merely granting permission is not sufficient.
- Perform the expected pose and confirm that the current pose action completes.
- Confirm that the following scene/backdrop is displayed and that camera preview and recognition stop when the story or pose action stops.
Do not record or commit camera frames. Record only the result, browser/origin, model URL, and the scene labels before and after the transition.
Detailed diagnostic and safe stop
Open each generated fixture in a new Editor session and press the green flag.
For detailed-on-unsupported-version.sb3, confirm all of the following:
- the Stage is covered by an SVG headed
Script erroror台本エラー; - it identifies line 1, code
K31-VERSION-001, and sourcekamishibai=4.0; - the story does not start, the camera does not request access, and no actor, input, animation, or asset-loading work remains;
- pressing the green flag again clears the previous presentation before presenting the same error.
For detailed-off-unsupported-version.sb3, confirm that the detailed SVG is absent and the existing
3.1.7 invalidScript fallback is used. This is the rollback check, not an acceptable release mode for
the new diagnostic.
Packager
- Package the verified Player SB3 with TurboWarp Packager using the release configuration.
- Open the output in a browser session that did not run the Editor checks.
- Repeat the embedded-script, camera/TurboWarp TM, and scene-transition checks.
- Confirm that no Editor-only permission dialog or file chooser appears.
A previously published web build is useful for regression comparison but does not substitute for packaging the current candidate.
Release-stop conditions
Stop the release if any of these occurs:
- the candidate cannot be loaded in a fresh TurboWarp Editor session;
- the permission count differs without a reviewed manifest change;
- external or embedded script execution cannot reach its first scene;
- camera preview, TurboWarp TM recognition, or the following scene cannot be confirmed;
- the detailed fixture starts the story, requests camera access, leaves background work, or fails to show the line-numbered SVG;
- Packager output behaves differently from the verified Player SB3;
- the recorded commit, SB3 SHA-256, and generated-fixture manifest do not identify the same build.
Result record (2026-08-03)
| Item | Environment / artifact | Result |
|---|---|---|
| Candidate | 3865783, SHA-256 31d55f574ee6ac5f7244a9609c69efa74adf8eb141a13cf158e7b37453ed65b3 |
automated and browser paths passed |
| Synced generic base | 67a3295, SHA-256 b0d0809baadbbe406f26eefcf678035bfc3ed24cd4bdd80b7c05d87982419719 |
clone-only UI base matched the Player build input |
| Editor | TurboWarp pentapod, editor.6079e10d7d50d3d832ef.js; Chrome 150.0.7871.187; macOS 27.0 |
candidate loaded; title displayed |
| Permissions | candidate in fresh Editor tab | passed: seven prompts, then no security dialog |
| Published 3.1.7 comparison | public generic and Player SB3 | passed: six prompts; title/menu displayed |
| Packager comparison | current-candidate Urashima Player in an isolated Playwright context | automated pose wait and navigation paths passed |
| External script | pr-44-smoke.txt |
passed: timed and Right-interrupted paths |
| Embedded script | published and current-candidate Urashima Player | passed: Beach, Ocean, and Dragon Castle reached |
| Camera/TurboWarp TM/transition | Urashima model https://sqs.prof.cuc.ac.jp/kamishibai/20260630/1and2/ and camera |
live preview/inference and interrupted transition passed |
| Detailed diagnostic | generated flag ON/OFF fixtures | passed: ON SVG safe stop; OFF INVALIDSCRIPT fallback |
| Diagnostic restart | fixed ON fixture from PR #216 | passed: SVG → normal title → same SVG |
Physical help pose |
Player SHA-256 546a016a9842f61dc79af6ac4a507fb6793d30ab4b61f4dead1a96af35524db9 |
passed without a navigation key |
Playwright selected pr-44-smoke.txt through the real file chooser, observed Stars for the 30-second
wait, its normal return to Title, and a separate Right-key interruption. Both runs ended without
remaining runtime threads or extension-managed input/animation work.
The current candidate was combined with the Urashima source and asset manifest by the repository
builder, then packaged as plain HTML with autoplay and the release window title. Its builder manifest
records the candidate SHA-256 above. In a fresh Playwright browser context which had not run the
Editor checks, it opened without a permission dialog, file chooser, console error, or page error.
Camera permission was granted for that context. At the first help pose action, TurboWarp TM reported a
live 320×240 video track, a loaded model, active inference, a non-empty recognition result, and no
extension error. Right and Down advanced to Ocean and Dragon Castle; after leaving the pose action,
inference and the preview stopped.
The automated run did not produce the expected help pose (the recognizer returned ride1). A
subsequent physical check used a Player rebuilt from the synced clone-only UI base. A person performed
the expected pose and confirmed that the pose action completed without a navigation key. The Player
contained the embedded Urashima-help-1 costume, help action, and Squish Pop sound. No camera
frame is retained as release evidence or committed to the repository.