コンテンツにスキップ

2026年9月20日の所属園児数修正の本番更新

状態: 2026年9月20日9:29:22 JSTに本番反映完了。

ユーザーによるsudo認証後、更新プログラムが正常に完了した。完了証跡と現在の配備メタデータを照合し、版・イメージの一致、Composeの保持、実機で描画した所属園児数と在園数の一致を確認済み。起動コマンドの再実行は不要。

ユーザーはモック確認後の実装を承認し、続けて本番反映を依頼した。現在の本番版を土台に、所属園児数の修正だけを取り込んだ。

固定した配備版

  • 更新前: 8e458f223e2b32b30675cfec78cb2464fcf1fc0e(9月19日配備版)。
  • 配備版: 801ed69915846bc42ec6e1f1342fc4f9f9aa6771。
  • 本番用ブランチ: codex/classroom-count-20260920-production。
  • 開発側の修正: 45639ae(codex/spec-20260919)。

ランタイムの差分は routers/classrooms.py と templates/classrooms/list.html の2ファイルのみ。所属園児を在園状態の園児だけで数える。画面構成、追加・編集操作、退園・卒園記録とクラスとの関連は保持する。DBスキーマ変更はない。

本番側のカレンダー取込・議事録出力・端末全画面維持・バックアップ方式・認証・通知・Composeを保持する。開発側の全体をそのまま配備しない。

配備前の検証

  • 固定した本番用版の全体テスト: 754件成功、298.30秒。
  • Ruff、MkDocs strict、差分の空白検査: 成功。
  • 合意したモックの人数、在園0人、クラス未登録、クラス未設定、在籍状況変更後の再集計、退園・卒園記録の保持を確認。
  • 更新プログラムの構成保持、WALバックアップ、既存データ改変検出、正常更新、切替前中断、起動失敗時の復旧、人数検証結果が得られない場合の復旧を模擬検証。
  • 実機で使う既存機能・スキーマ確認コードをローカルの合成DBで実行。
  • 新しい人数確認コードを合成データで検証。表示値が誤っていれば更新確認を失敗させる。
  • ランタイム314ファイルのハッシュを固定。転送後のチェックサム・Python構文・本番版と設定の不変・更新未開始を確認。

本番反映の確認

新イメージを構築し、ネットワークを遮断した実DBコピーで起動処理を検証した。切替前にSQLiteバックアップ、設定退避、ZFSスナップショットを取得した。

更新後にアプリの正常起動、コネクターの稼働、既存68テーブルの内容、314ファイル、設定の保持を確認した。実機でクラス一覧を読み取り専用で描画し、人数がDBの在園数と一致することも検証した。退園児の記録は保持されている。確認結果はクラス別・在籍状況別の集計値のみを取得し、園児の氏名や入退園日は取得していない。

  • 配備イメージ: sha256:e5576e7e853705922f279ca82d895634ab3f59a09feb20917cc48540858a8fcf。
  • 更新前バックアップ・スナップショット識別子: before-classroom-count-20260920-20260920T002644Z。
  • 完了証跡: SSHユーザーのホームの classroom-count-20260920-801ed69/status.json。
  • 完了状態は complete。現在の配備メタデータが完了証跡のコミット・イメージと一致し、Composeハッシュが更新前と一致することを再確認した。

公開HTTPSへのブラウザー確認は、実行環境からのアクセスが ERR_BLOCKED_BY_CLIENT で遮断された。公開画面を確認済みとは扱わず、更新処理内のヘルスチェック・実機での読み取り専用描画・既存データ照合・配備メタデータの一致を完了根拠とする。アクセス制限は変更していない。

実利用者のアカウントによる編集試験は行っていない。利用中のクラス管理画面は再読み込みしてから人数を確認する。