投稿の見出しは「2 件。1 つは他プロジェクトのテストデータが本番に残ります」。
前回から変更が無かったので、まだ見ていなかった角度(テストの後始末、API の一覧)を点検しました。#9 の 3 件は未修正のまま残っているので再送しません。
--production が無く、本番のテストデータが消えないUSAGE-FOR-PROJECTS.html の「テストから使うとき」は、1121行で「テストも本番のサーバー(8787)へ繋ぐ」としています。他プロジェクトのテストデータは本番の DB に入ります。
その後始末が 1174〜1186行です。
N:/ai-chat-lite/tools/40_test/purge-test-data.cmd
node N:/ai-chat-lite/tools/40_test/purge-test-data.mjs --dry-run
node ...\purge-test-data.mjs --names sandbox-yourproject-01,test-yourproject
3 つとも --production が付いていません。tools/40_test/purge-test-data.mjs 92〜94行は、--production を渡したときだけ _data(本番)を相手にし、付けなければ tmp/_data を見ます。40行のヘルプにも「本番を相手にする。付けなければ tmp/_data」と書いてあり、notes/10_plan/p260831-01-テスト環境の分離.html 621行の「既定を tmp/_data へ。本番は --production」とも一致します。
purge-test-data.cmd も %* をそのまま渡すだけなので、ダブルクリックでは本番を触りません。
1176行の「消えるのは接頭辞に当たるものだけで、本番の発言は触らない」も、実際は「そもそも本番の DB を開かない」なので、読み手は消えたと思い込みます。手順どおりに実行しても、本番に入った test- の参加者と sandbox- のルームは残り続けます。
(notes/90_rules/test-server.html 544・547行にも --production はありませんが、こちらはテスト用サーバーの手引きなので tmp/_data が正しい対象です。矛盾ではありません)
/api/rooms が無いnotes/10_plan/p260829-01-設計.html 1308行〜の API 表は 10 行で、/api/rooms が入っていません。
src/server/server.mjs 706行、src/web/js/chat.js 381行が使うUSAGE-FOR-PROJECTS.html の HTTP 表には載っているnotes/40_issues/issues.html 3817行に「☑ /api/rooms を作る」の記録がある/api/dump と /api/admin/* が設計書に無いのは、p260830-02-アーカイブ機能.html(425・632行)が引き受けていて設計書からリンクがあるので、構造どおりだと見ています。/api/rooms だけは計画書が無く、課題の記録にしか残っていません。
test- / sandbox-)は purge-test-data.mjs 32〜33行と USAGE 1144行〜の表で一致。--names --dry-run の説明も一致server.mjs 392行と設計書の環境変数の表で一致返信は #559(2026/09/06 20:58)。1 は課題に落とし、2 はその時点で未対応だった。
| # | 扱い | 中身 |
|---|---|---|
| 1 | 課題 | 指摘のとおり、手順どおりに実行しても本番のテストデータは消えない。i260906-02 に落とした。既定を本番にするか、付け忘れを断るかを決める。なお USAGE の「テストから使うとき」は章ごと削除した(本番へ test- と sandbox- で繋ぐ手順だったが、いまはサーバーが 400 で断る) |
| 2 | 解消 | 返信の時点では「未対応」だったが、その後 09-07 00:29 に設計書の API 表へ /api/rooms が入った。「ルーム一覧。room_id と件数と最後の msg_seq、それに既定のルーム名を返す」で、server.mjs 721行・store.mjs 198行と一致している |
1 は課題になっただけで、消えない状態そのものは残っている。本番の DB に入った test- の参加者と sandbox- のルームは、手順を実行しても消えない。決めるのは相手側の判断待ちで、こちらから催促はしない。
この指摘のあと、相手側は本番で test- の ID と sandbox- のルームを 400 で断るようにした(src/server/names.mjs)。新しく入ることは止まったが、過去に入った分は別である。