コンテンツにスキップ

出欠確認のデスクトップ幅・本番反映

2026-09-25。ユーザーが1列の配置モックと実装を確認後、「本番よろ」と依頼した。

現在の状態

2026-09-27 05:05:45 JSTに本番反映が完了。05:13:55 JSTに稼働メタデータを独立照合し、05:15:35 JSTに公開ヘルスチェックと新しいCSSの配信を確認した。 実機の sudo -n true が sudo: a password is required を返したため、管理者認証をユーザーに依頼した。認証と配備は完了しており、起動コマンドの再実行は不要。

本番反映の結果

  • 稼働commit:c907275b94cabcb613b4cf2a8edf778c05ade8dd。
  • 実機イメージ:sha256:1287fc69674e87be665794fcc25da38ff03547891a4d0eab55ac0035e4746367。
  • 本番ソース:/mnt/main/open-hoikuict-pilot/releases/c907275b94ca-20260926T195928Z。
  • 更新後deployment.json SHA256:f149a351ce06687a02cd38de38a6d78d972c65388a37511f8d96b3ec6b612a73。
  • 実機内の隔離環境でも17テストすべて成功。失敗・スキップ・収集エラーなし。復元演習と既存バックアップ10件の互換性検査も成功した。
  • 既存78テーブルの記録、添付13ファイル、Compose・設定を保持。園児100人、家庭134件、保護者アカウント8件、園児との紐づけ104件を保持した。
  • 在籍98人の出欠画面・キオスク、33種類の職員権限と記録関連3,234ページを読み取り専用で検査。デスクトップ用クラス・CSS参照・詳細の2列表示を確認し、モック専用UIが含まれていないことも確認した。
  • アプリ・gateway・backup-worker・restore-workerが正常。定期バックアップは「有効・毎日02:00 JST・weekday=0」を保持した。
  • 公開 /healthz はHTTP 200・status: ok。公開CSSは配備アーカイブ内のファイルとバイト単位で完全一致し、最大幅1,000pxのルールを含む。
  • 直前退避:/mnt/main/open-hoikuict-pilot/backups/before-desktop25-20260926T195928Z。
  • スナップショット:main/open-hoikuict-pilot/runtime@before-desktop25-20260926T195928Z。

公開CSSの初回照合では、CRLFを含む生バイトを改行正規化済みのマニフェストと比較したため不一致になった。照合側を修正し、配備アーカイブとの生バイト完全一致と、既存の実機検証と同じ改行正規化後のハッシュ一致の両方を確認した。公開CSS自体の修正・再配備は不要だった。

完了証跡は .local-dev/truenas-desktop-20260925/bundle/ の completed-status.json、live-after.json、verified-completion.json、public-health-after.json に保存した。

基準と変更範囲

  • 最新の配備記録:docs/deployment-spec-2026-09-25.md。
  • 基準commit:d7df60d658f3d066783c537cd5c26866911d4722。
  • 基準イメージ:sha256:6c628855795df8d7dce3c461826dcac23e788b28dd8e52273b1fc144d69f5d83。
  • 基準deployment.json SHA256:6efc76f22783ecb33ac905b90246164dbbed25e42fd685e516acb77fe1258f0e。
  • Compose SHA256:a15583b8d1edf8b23827986068b6e95af2eba17992ef91c6ab212cf128a2db3b。内容は保持する。
  • 配備commit:c907275b94cabcb613b4cf2a8edf778c05ade8dd。
  • ローカルブランチ:codex/desktop-attendance-20260925-production。
  • 専用作業コピー:.local-dev/truenas-desktop-20260925/source。
  • 固定配備ファイル:.local-dev/truenas-desktop-20260925/bundle。
  • 実機ディレクトリ:/home/truenas_admin/desktop-20260925-c907275。
  • systemdサービス:hoikuict-desktop-20260925-c907275。

本番commitからCSS・テンプレート3ファイルだけを取り込んだ。差分は4行追加・3行削除。 出欠確認の最大幅を1,000pxとし、詳細の4項目を通常2列・狭い画面1列にする。CSSの参照バージョンも更新。 業務処理・DBスキーマは変更せず、既存の個人メモ・共有範囲・出欠訂正を保持する。 他の開発中変更やモック専用UIを配備しない。仕様と画面検証は docs/implementation-desktop-attendance-2026-09-25.md。

配備前の確認

  • 本番基準の専用作業コピーで出欠確認・名前一覧・表示の既存17テストが成功(失敗・スキップ・収集エラーなし)。
  • 配備手順の8テストがWindowsと実機Linuxで成功。設定保持、復元/バックアップとの排他、失敗時の両ワーカー復旧、DBを巻き戻さない処理を確認。
  • 架空100人のDBで新旧画面・権限を読み取り専用検査。記録関連400ページ・職員権限4種類を確認し、検査前後のDBダンプが一致した。
  • 新しい幅制限・CSSバージョン・詳細の2列表示・モックUIの不在を本番用画面検査へ追加。名前一覧には幅制限を付けないことも確認する。
  • ソース392ファイルのハッシュを照合し、基準との差分が承認した3ファイルだけであることを確認した。
  • 固定配備入力18ファイルとUPDATE.json・SHA256SUMSを実機へ転送して照合した。
  • 準備前と転送後に実機の稼働版・Compose・deployment.jsonを独立照合。いずれも基準と一致した。

実機での手順

前回成功した配備処理を基に、今回のバージョン・退避名・検証対象を固定する。 新イメージを構築し、隔離環境で復元演習と17テスト、本番DBコピーの起動と新旧画面の検査、既存バックアップの互換性検査を行う。 検証後、公開を短時間停止してバックアップ・復元と排他し、ZFSスナップショットとDB・設定の退避を取得する。 アプリと両ワーカーを切り替え、既存記録・添付・設定・定期バックアップ・新旧画面を照合して公開を再開する。 実データへの試験登録や検査メール送信は行わない。失敗時もDBを古いコピーへ戻さない。

完了後は独立取得した実機メタデータと照合し、公開 /healthz と新しいCSSの配信を確認した。 証跡は .local-dev/truenas-desktop-20260925/bundle/ に保持する。