本番 D1 の SQL 最適化
Cloudflare Workers の一覧・キュー表示とジョブ実行に伴う、不要な行の読み取りを削減しました。
- キュー件数: 終了済みジョブの全履歴をポーリングのたびに集計せず、ジョブの追加・状態遷移・削除と同じトランザクションで更新する集計表を参照します。件数の意味や履歴の保持は変更しません。
- バーチャル小説の属性再計算: メンバー ID から作品を引く実行計画に変更し、無関係な漫画作品まで走査するのを防ぎました。混在時の選択や変更の即時反映は従来どおりです。
- 待機再開・実行開始の作品照合: URL・N コード・URL suffix の対応表を毎回組み立てず、永続索引を利用します。複数一致時の最小 ID、同一サイト・同一作品の排他は維持します。
リリース時の適用
本番配備の検証成功後、CI が D1 migration 0017_worker_job_counts.sql と 0018_novel_target_aliases.sql を適用し、成功してから新しい Worker を配備します。migration が失敗した場合は配備を中止します。既存の作品・本文・ジョブ履歴を削除する処理はありません。手動配備でも同じ順序で適用してください。Native の SQLite にこの D1 migration を適用する必要はありません。
その他の修正
narou api delete <ID>で、-や--から始まるトークン ID をオプションとして誤認する不具合を修正しました。保存形式や既存の ID は変わりません。- Cloudflare Access の Service Token を
Authorizationヘッダ 1 つでも渡せるようにしました。従来のヘッダ対も引き続き使えます。 - Worker の MCP エンドポイントに POST 以外でアクセスした場合、405 の JSON エラーを返すようにしました。
v0.6.1 は公開前の検証で中止したため、SQL 最適化と CLI 修正を v0.6.2 にまとめています。
詳細: 変更履歴 / v0.6.0 からの全変更