Linear ArchiveArchived issues viewer
← Back to list
INS-726

lunaEditer の codegen が、不具合を生成する問題

StatusDone
TeamInstansys
Assigneeasuki.uehata@instansys.co.jp
PriorityUrgent
Created2026/04/24 06:59
Completed2026/04/27 04:13
Archived2026/05/05 03:28

Description

杉浦さんより相談の件

lunaEditerのcodegenするとlunaEditer側とUltemist側にある違いで壊れるんですよ。
それ直さないとHomeも背景しか表示されないみたいなバグが起こります。

マヤヤの”デフォルト”がlunaEditer側から消えてるのでUltemist側で
マヤヤのデフォルトを笑顔とかに一時的に置き換えると治ります。
が、根本的な解決にはならないのでそこの修正をお願いしたい形です。
  • 起きたこと

    Luna Editor 側でマヤヤの「デフォルト」表情が削除され、codegen で型定義から該当 state が消失。しかしアルテミスト側の master-data(mayaya.ts と home-voices.ts)は旧来の マヤヤ.デフォルト を参照したままで、実行時に undefined を画像表示関数に渡して例外発生。Home 画面の描画が中断し、背景画像のみが表示される状態になった。 一時的な対応 マヤヤ.デフォルト を参照していた5箇所を マヤヤ.笑顔 に書き換えて復旧。

  • ┌──────────────────────────────────────────────────────┬────────────────────┐ │ ファイル │ 行 │ ├──────────────────────────────────────────────────────┼────────────────────┤ │ packages/shared/src/master-data/characters/mayaya.ts │ 72 │ ├──────────────────────────────────────────────────────┼────────────────────┤ │ packages/shared/src/master-data/home-voices.ts │ 109, 115, 121, 128 │ └──────────────────────────────────────────────────────┴────────────────────┘ 根本的な対応

    1. CI に bun typecheck を必須ゲート化(最優先)。TS は警告を出していたが dev/build が無視して起動するため気付けなかった。マージ前に型エラーで赤くなるようにすれば同種の事故は必ず止まる。 2. bun codegen:luna-editor 直後に typecheck を自動実行(pre-commit フック推奨)。codegen を走らせた本人が即座に気付ける。 3. 運用ルール: Luna Editor で state を削除/リネームする前に rg "LunaEditorStates.<キャラ>." で参照を洗い出し、手書き側を同時に追従させる。

    --- Homeページクラッシュ 不具合レポート 事象

    • #/home で背景画像のみ表示され、Home UI が描画されない
      • 他シーン(Members 等)は正常
      • 発生コミット: 5194c0d8 chore: auto-update codegen output 以降
  • 原因 Luna Editor からマヤヤの デフォルト state が削除 → codegen で型から消失。手書き側は未追従で LunaEditorStates.マヤヤ.デフォルト が undefined になり、resolveLayeredPictureUrls(undefined) が throw して Home 描画が中断。dev/build は型エラーを無視して起動するため事前に気付けなかった。 修正ファイル

    • packages/shared/src/master-data/characters/mayaya.ts:72
      • packages/shared/src/master-data/home-voices.ts:109, 115, 121, 128

    いずれも マヤヤ.デフォルト → マヤヤ.笑顔 に置換。 再発リスク Luna Editor で state を削除/リネーム後に codegen を走らせれば再発する構造的問題。複数人で Luna Editor を触っている現体制では高確率で再発する。 推奨対策

    1. CI に bun typecheck 必須ゲートを導入(最優先) 2. codegen:luna-editor 後に typecheck 自動連鎖(pre-commit) 3. state 削除前の参照洗い出しを運用手順化

Comments (2)

asuki.uehata@instansys.co.jp2026/04/24 09:20

これが問題の構造か?

auto-fix-codegen.yml

→ codegen 実行 → LunaEditorStates.ts 更新(デフォルト state 消滅)

→ 型エラーを無視してそのままコミット・プッシュ ← ここが盲点

lint-and-test.yaml

→ lint / test / build は通る

→ typecheck なし ← 型エラーが CI で止まらない

asuki.uehata@instansys.co.jp2026/04/24 11:04

lint-and-test.yaml(最優先)

Build ステップの直前に追加:

      - name: Typecheck

run: cd apps/client && bun run typecheck

これで PR マージ前に型エラーが必ず CI で止める。


auto-fix-codegen.yml(推奨)

Run codegen ステップの直後に追加:

      - name: Typecheck after codegen

run: |

cd apps/client && bun run typecheck || {

echo "::error::codegen 後に型エラーが検出されました。手書き側 master-data の修正が必要です。"

exit 1

}

これで「codegen が壊れた状態のまま自動コミットされる」のを防ぐか