DSL 4.0 release smoke

Copyright © 2026 Hiroya Kubo. この文書はCC BY-SA 4.0で提供します。

文書状態: 公開プレリリース4.0.0-rc.8の再現・公開照合・追加smoke手順
対象Issue: tm-kamishibai-docs #47#169

本書はリリース担当者向けで、一般的な動作確認を説明する文書ではありません。一般的な使い方は 大人向け概要、実装の責務は ソフトウェアメンテナンスガイドを参照してください。

v4.0.0-rc.8はnpm next、GitHub prerelease、Pagesのダウンロード導線として公開済みです。ただし、 推奨安定版はv3.2.3で、正式版v4.0.0は未公開です。Standard SB3の配布正本はGitHub Releaseです。 公開サンプルは、この公開SB3とfreeze commitから再生成したlockを別途照合します。

用語 この文書での意味
manifest version、commit、成果物、検証結果を固定する機械可読な記録
checksum 取得・再生成した成果物が固定byte列と一致するか確認する値

固定値

正本はsources/dsl4/release-smoke-4.0-candidate.jsonです。

対象 固定値
candidate merge ad244910b6bf579b8eb7c7af70d72b7ca4b1fff6
freeze/tag commit 29c0deadcb98badf94a0244c479ca896dc71f842
version 4.0.0-rc.8
release source tag v4.0.0-rc.8(現行branchへ展開copyを保持しない)
source identity sha256:8edbc02a06b3770cce0a89cf658367df129d974d53f401258b69f0713762014a
Schema SHA-256 46ff159c29e13704d707dae8e0d2ad3a146b6aa8a68a968614e6ef56d112f135
Standard SB3 6,749,955 bytes / 91d7f594aaf922450fba359a90c7c26e7c1dfda51cf002534cb4605dbb0d7041
npm tarball 6,492,990 bytes / a7b91378e6345c530515cc4e8f82314c3c5f2a19d3e136de5e4fe8bff8d24c5e

固定commitを取得します。

git clone https://github.com/kubohiroya/tm-kamishibai.git
git -C tm-kamishibai checkout --detach 29c0deadcb98badf94a0244c479ca896dc71f842
git -C tm-kamishibai status --short

Feature flag snapshot

すべてのDSL 4.0 flagは既定OFFです。配布surfaceは起動時に次のsnapshotを明示します。 ポーズoverlayには専用flagがなく、poseRecognition.preview.overlayを記述した全runtime profileで同じ契約を使います。

Surface ONにするflag
Standard production dsl4Runtimedsl4AppShelldsl4PoseFeedbackModesdsl4SpeechAdvanceTypewriterdsl4TurboWarpActionSurface
非埋め込みdevelopment Standard productionに加え、dsl4WebPreviewAdapterdsl4BrowserDistributionBuilddsl4PreviewReloadOverlaydsl4Debugger

dsl4TurboWarpActionSurfaceにより、23個のcore actionを可視blockとして公開します。4個の内部制御blockは 非表示のままです。smoke中に既定値を変更しません。

自動検証

cd tm-kamishibai
pnpm install --frozen-lockfile
pnpm release:dsl4:check
pnpm verify:full
pnpm release:check
shasum -a 256 dist/downloads/kamishibai-4.0.0-rc.8.sb3

candidate PRのpnpm verify:fullはNode系test 1,161件、Chromium test 13件を通過しました。 GitHub Actionsの記録を 一次証跡とします。

公開物を照合する

公開元を別々に取得し、固定値と照合します。

curl -fL \
  https://github.com/kubohiroya/tm-kamishibai/releases/download/v4.0.0-rc.8/kamishibai-4.0.0-rc.8.sb3 \
  -o kamishibai-4.0.0-rc.8.sb3
shasum -a 256 kamishibai-4.0.0-rc.8.sb3

npm view @kubohiroya/tm-kamishibai@4.0.0-rc.8 \
  version dist.tarball dist.integrity dist.shasum
npm view @kubohiroya/tm-kamishibai dist-tags

確認済みのnpm integrityは sha512-nQmvHakwLWZioi1gOUZatKwyLe2nD3GPJbEBrqDqm5mzqQhbbLEMGl3znJQpVs0JRfzyeLI1JDTcGrePiIpjUg==です。 next4.0.0-rc.8latest3.2.3であることを確認します。

TurboWarp surfaceを確認する

rc.8 Standard SB3をfresh TurboWarp Editorで開き、次を確認します。

  1. composite IDがkubohiroyakamishibai4である
  2. Runtimeと6つの外部機能拡張、合計7 memberの見出しと文書ボタンが表示される
  3. Runtime由来の23 core action blockが表示される
  4. TurboWarp blockからの実行がYAMLと同じregistry、Schema正規化、ActionContext、lifecycleを通る
  5. Asset Manager 0.11.0、Async Input 0.4.0、Bubble 0.10.0、Runtime Expression 0.4.0、 SVG Text 0.5.0、TurboWarp TM 1.12.0のexact pinと一致する
  6. remote codeを取得せず、PoseNet model dataをprojectから復元できる
  7. poseRecognition.preview.overlay設定時にSVGの関節とボーンが表示され、省略時は非表示になる
  8. Bubble 0.10.0由来の31個の可視blockと、組み込みsaythink styleが表示される
  9. bubbleClosePoliciesの秒数、入力待ち、両者のraceが、inline指定と同じspeech lifecycleで完了する
  10. 未定義closePolicyと、closePolicy+inline secondswaitForの競合をbuild前に拒否する

Browser/CLI Previewを確認する

Browser-owned Previewではuser gestureでproject directoryを選び、正常YAML、不正YAMLからの復帰、asset変更、 reload overlay、camera control、pose feedback、停止後のresource解放を確認します。source本文、local absolute path、 session token、file handle、camera device IDをログやSB3へ保存しません。

CLI Previewは候補packageとversion付きStandard SB3を使います。

pnpm exec tm-kamishibai preview-dsl4 --watch \
  --base /absolute/path/to/kamishibai-4.0.0-rc.8.sb3 \
  --project-root /absolute/path/to/project \
  --source-manifest /absolute/path/to/project/project.source.json \
  --control-profile production \
  --channel bundled

token付きloopback URLだけを開き、runtime-ready、source/asset変更、診断、safe stop、Ctrl+C後の socket/watcher/timer解放を確認します。

実カメラ・実ポーズ

camera contextの責務境界はIssue #601で Chrome 151と物理cameraを使って測定しました。実際と同じ1 draw/1 read経路ではwillReadFrequentlyに 再現性のある高速化がなく、WebGLでは全条件で悪化したため、TurboWarp TM 1.12.0は通常contextを使用します。 CPU推論時にChromiumのreadback警告が1回出る場合がありますが、警告抑制だけを目的に成果物を書き換えません。

現時点の判定は次のとおりです。

項目 rc.8の状態
自動test/Chromium 合格
npm/GitHub/Pages公開照合 合格
camera context物理測定 合格
overlay browser確認 合格

追加の物理確認ではcamera許可/拒否、preview、legacyと必要時のlatest-needed、model準備の中断、認識feedback、 overlayの位置合わせ、scene遷移、終了時のtrack/model/timer解放を確認します。camera frameは保存しません。

Release-stop条件

  • commit、version、Schema、source identity、flag snapshot、artifact hashの不一致
  • 23 core action、7 member見出し/文書ボタン、dependency pinの不一致
  • 名前付きclose policyとinline終了条件で、入力購読、timeout、cancel、Bubble cleanupが一致しない
  • 同じ入力から生成したSB3またはWeb版の非決定性
  • Browser Preview、CLI Preview、Standard SB3での診断または挙動差
  • camera拒否、model中断、asset失敗、無効source、runtime例外での部分commitまたはresource残留
  • production成果物へのpreview token、debug session、local path、file handleの混入

Rollback

公開済みrc.8のtag、SB3、npm tarballを同じversionで差し替えません。

  1. npmのnext4.0.0-rc.7へ戻す
  2. GitHub prereleaseとPagesへ影響範囲と回避策を追記する
  3. 必要ならPagesをa7f377d4675a9bf9acc8691a11d269ff3d78118bへ戻す
  4. 修正版を4.0.0-rc.9としてbuild、検証、公開する
  5. 推奨安定版3.2.3と過去のversion付き成果物を変更しない

文書だけをrollbackする場合は、このMarkdown、candidate manifest、リリース履歴、docs/config.mjssite/4.0/index.html、対応testを同じcommitで戻します。