diff --git a/docs/flow-manage/10_マスタードキュメント_Windmillフロー管理_API一本化編.md b/docs/flow-manage/10_マスタードキュメント_Windmillフロー管理_API一本化編.md index b023fe0..11d44e2 100644 --- a/docs/flow-manage/10_マスタードキュメント_Windmillフロー管理_API一本化編.md +++ b/docs/flow-manage/10_マスタードキュメント_Windmillフロー管理_API一本化編.md @@ -208,6 +208,11 @@ 2. `scripts/alexa_speak.ts` を編集 3. `push-script u/admin/alexa_speak scripts/alexa_speak.ts` 4. Windmill UIで動作確認(`device` がドロップダウン表示) +5. API反映後にUIが変わらない場合は `Edit -> Deploy` を1回実行して再確認 + +関連引き継ぎ文書: + +- `docs/flow-manage/11_引き継ぎ_alexa_speak_API反映後にUIドロップダウンが変わらない件.md` --- @@ -299,3 +304,4 @@ Windmill API依存は避けられないため、依存点を最小化する。 |------|----------| | 2026-03-03 | 初版作成(API一本化方針、同期仕様、実装計画、Runbookを定義) | | 2026-03-03 | 障害前提の復旧設計、Windmill依存を薄くする方針を必須要件として追記 | +| 2026-03-04 | `u/admin/alexa_speak` のAPI反映後にUIドロップダウンが即時反映されない事象と運用回避策(`Edit -> Deploy`)を追記 | diff --git a/docs/flow-manage/11_引き継ぎ_alexa_speak_API反映後にUIドロップダウンが変わらない件.md b/docs/flow-manage/11_引き継ぎ_alexa_speak_API反映後にUIドロップダウンが変わらない件.md new file mode 100644 index 0000000..344de23 --- /dev/null +++ b/docs/flow-manage/11_引き継ぎ_alexa_speak_API反映後にUIドロップダウンが変わらない件.md @@ -0,0 +1,105 @@ +# 引き継ぎ - `u/admin/alexa_speak` API反映後にUIドロップダウンが変わらない件 + +> **作成日**: 2026-03-04 +> **対象**: `windmill.keinafarm.net` / workspace `admins` +> **対象スクリプト**: `u/admin/alexa_speak` +> **目的**: 別端末から同じ事象に遭遇しても、原因切り分けと復旧をすぐ実施できるようにする + +--- + +## 1. 事象の概要 + +`u/admin/alexa_speak` を Windmill API(`create-script`)で更新した直後、 + +- Scriptタブ上のコードは更新済み +- `schema` 上も `device` が `dynselect-device` +- しかし Inputフォームは `Device` がテキスト入力のまま(ドロップダウンにならない) + +という状態になった。 + +--- + +## 2. 当日の時系列(要点) + +1. 既存スクリプトを取得し、ローカル `scripts/alexa_speak.ts`(Dynamic Select実装あり)をAPIで反映 +2. サーバー再取得で `content` 一致を確認(更新自体は成功) +3. UIを開くと `Device` が入力欄のままで、ドロップダウン化されていない +4. `schema.device` を `format: dynselect-device`, `originalType: DynSelect_device` に更新して再反映 +5. それでも UI は直ちには変わらず +6. Windmill UIで `Edit` に入り、`Deploy` を1回実施 +7. 直後にドロップダウン表示へ反映 + +--- + +## 3. 確認できた事実 + +- API反映は成功している(hash更新) + - 中間: `a6010687183a199d` + - 最終: `318d78f45a084e32` +- 最終状態では以下がAPIで確認済み + - `schema.properties.device.format = "dynselect-device"` + - `schema.properties.device.originalType = "DynSelect_device"` +- UI反映は API反映だけでは即時にならず、`Edit -> Deploy` 後に反映された + +--- + +## 4. 想定される原因 + +Windmill CE 側で、API経由更新時にフォームUIメタ情報(入力ウィジェット解決)の再計算または再適用が即時反映されないケースがある。 + +実務上は「API更新後にUIで1回Deploy」が回避策として有効。 + +--- + +## 5. 再現時の標準対応手順(Runbook) + +### 5.1 APIでスクリプト更新 + +```bash +cd /home/akira/develop/windmill_workflow +./wm-api.sh get-script u/admin/alexa_speak > /tmp/remote_alexa_speak.json +# parent_hash を含む payload を作成して create-script +./wm-api.sh create-script /tmp/alexa_speak_push.json +``` + +### 5.2 APIで反映確認 + +```bash +./wm-api.sh get-script u/admin/alexa_speak +``` + +確認ポイント: + +- `hash` が更新されている +- `content` が想定コードになっている +- `schema.properties.device.format` が `dynselect-device` +- `schema.properties.device.originalType` が `DynSelect_device` + +### 5.3 UI反映されない場合 + +1. `u/admin/alexa_speak` を最新リビジョンで開く +2. ハードリロード(`Ctrl + Shift + R`) +3. 変化がなければ `Edit -> Deploy` を1回実施 +4. Inputフォームの `Device` がドロップダウン化されたことを確認 + +--- + +## 6. 補足(今回の最終状態) + +- スクリプト: `u/admin/alexa_speak` +- 期待UI: + - `Device`: ドロップダウン(dynselect) + - `Text`: テキスト入力 +- 前提: + - `alexa_api` コンテナが稼働 + - `http://alexa_api:3500/devices` が取得可能 + +--- + +## 7. 引き継ぎメモ + +- 「API反映成功」と「UIフォーム反映成功」は同時とは限らない +- 引き継ぎ時は、必ず以下をセットで確認する + 1. APIレスポンスの `hash` と `schema` + 2. UI表示(必要なら `Edit -> Deploy`) +