github Rumia-Channel/narou.rs v0.6.3

one hour ago

タグ表示・データ保全と共通処理の改善

  • タグの並び順とお気に入りの更新競合を修正しました(issue #46)。連続操作を操作順に保存し、古い応答で選択・表示を巻き戻しません。お気に入りの追加・解除・並べ替えは開いているタグ一覧にも反映され、別画面からの変更・再接続・WebSocket 不通中のフォーカス復帰でも再同期します。定期ポーリングの回数は増やしていません。
  • Workers のお気に入り保存で、同時変更された別の登録が消える不具合を修正しました。競合時は最新の保存状態へ操作を適用し直します。既存行の更新競合と初回登録同士の競合の両方が対象です。
  • お気に入りの保存形式・入力検証と Web UI 設定の解釈を Native/Workers で共通化しました。旧形式の配列も更新でき、数字だけのタグ名も文字列のまま扱います。壊れた保存状態を空の一覧として扱わず、失敗を返して既存データと画面表示を保持します。
  • 新しいタグの色が、最初に表示した並び順で変わる問題を修正しました。表示順とは独立した同じ割当順を Native/Workers で使い、保存済みの色は変更しません。
  • 有効な操作に「この環境では利用できません」という説明が残る問題と、お気に入り切替後の読み上げ用操作名の更新漏れを修正しました。
  • 外部公開 API の入力検証・本文取得・エラー応答を Native/Workers で共通化しました。通常作品の本文キーは話番号、バーチャル小説は メンバーID:話番号 です。全話取得で欠落・破損した本文を読み飛ばして成功扱いする問題、タグの JSONL と配列の XML の形式不備、Worker で欠落を 500 と返す問題を修正しました。
  • Native の limit=all と offset の併用を修正しました。上限と開始位置の加算オーバーフローをなくし、範囲外は空の一覧を返します。メモリ上の一覧処理を共通化し、返却しない作品を複製しません。
  • Native の一時取り出しによる生成物・挿絵の上書きや削除を防ぎました。変換用には本文・設定・表紙だけを取り出し、生成済み EPUB・テキスト・履歴を後片付けの対象にしません。挿絵の取得中に別の処理が作ったファイルも保持します。
  • SQLite の実ファイルを残さない構成でも、バックアップ・書き出し・挿絵索引の再構築に必要な全データを取得します。raw HTML・履歴・生成物・利用者ファイルは専用の一時ディレクトリで扱います。Web の EPUB 生成は保存済みの名前付きテキストと表紙を読め、Windows のパス表記差で失敗しません。
  • Worker と Native のオンデマンド変換にも作品レコードを渡します。変換本文の完結表示・掲載日・サイト名などの題名展開を通常変換と揃え、実行時の日付や欠けたサイト名に置き換わる問題を修正しました。
  • Worker の継続再投入とキュー消去が競合しても、消したジョブを新しい ID で復活させません。既存ジョブの通知だけを再送し、消去済み状態・保存済み本文・チェックポイントを保持します。
  • Worker の滞留ジョブ回収で、許可されている最後の再試行を打ち切る問題を修正しました。初回の失敗と再試行回数を区別し、上限超過したジョブだけを失敗確定します。再試行設定が 0 の境界も確認しています。
  • 継続ダウンロードの更新件数に、再開前に保存した新着・改稿も含めます。後半に変更がない場合でも更新なしと誤判定せず、必要な後続変換へ渡します。同じ時刻内の保存は、時計ではなく本文の保存世代で区別します。
  • サイトの初回 GET で得た匿名セッションを、YAML 前処理のフォーム送信へ引き継ぎます。取得ポリシーを作り直して Cookie を失い、正しいフォームが拒否される問題を修正しました。送信先・Path・有効期限の制限は維持します。
  • S3 挿絵の移行・検証・重複整理コマンドで起きる panic を修正しました。CLI の既存ランタイムで非同期処理を実行し、Tokio を二重起動しません。dry-run では書き込まず、実行後のバイト照合も確認しています。
  • バーチャル小説の本文・章見出し・画像参照の結合を Native/Workers で共通化しました。Native で同名の挿絵が上書きされる問題と、Worker の結合 EPUB に挿絵が入らない問題を修正し、仮想小説自身の変換設定を適用します。SQLite の実ファイルを残さず、挿絵を S3 に保存する構成も対象です。
  • Native Web のバーチャル小説ダウンロードと変換 API で、テキストだけを作って EPUB を生成しない問題を修正しました。外部 API も同じ EPUB 生成経路を使い、保存済みの結合 EPUB によってメンバーの変更を隠しません。
  • Worker のバーチャル小説の変換ジョブが、存在しない仮想小説自身の目次を探して失敗する問題を修正しました。通常作品と同じ変換処理へ結合済み本文を渡します。EPUB 生成時のサービス構築と変換設定の重複読み込みも除去しました。
  • バーチャル小説の同時登録・メンバー追加で、別の変更が消える問題を修正しました。Worker は競合時に最新の所属情報へ操作を適用し直し、作品・所属・タグ連番を同じトランザクションで保存します。同じメンバーの二重追加や重複所属を拒否し、メンバーの分類変更と追加が競合しても、混在作品で選択した属性を古い集計結果で上書きしません。
  • Native のバーチャル小説で、作品の保存・削除に失敗したのに所属情報だけ変わる問題を修正しました。SQLite は同一トランザクション、YAML は同じロック境界と書き込み失敗時の復元で整合性を保ちます。互換 YAML が欠けた場合は SQLite に残る所属を維持します。破損した所属データを空の一覧として扱わず、一覧 API は Native/Workers とも 503 を返します。タグ・話数・最新話掲載日・属性の集計も共有します。
  • 通常の YAML 保存にも同じ復元処理を適用しました。ファイルの置換後にディレクトリ同期などが失敗した場合も、公開済みの作品・タグ連番を復元の対象にします。復元自体が失敗した場合は対象と原因をエラーに含めます。プロセス強制終了・電源断に対する複数ファイルの原子性を保証するものではありません。
  • 一覧の件数計算とバーチャル小説一覧の組み立てを Native/Workers で共通化しました。全件を返す場合は取得済み件数を使い、不要な COUNT を省きます。Worker の仮想小説一覧は親・メンバーを最大 90 ID ずつ取得し、作品ごとの重複読み取りをなくします。件数・順序・欠けたメンバーの扱いは維持します。
  • Worker のタグ一覧から不要な親作品参照と同じ色設定の再保存を除去しました。外部キーと既存の被覆索引を使い、旧保存形式の移行・同時更新への対処は維持します。2,450作品の実 workerd 検証で、全件一覧の D1 読み取りは 13,554 → 8,454 行、タグ一覧は 11,179 → 6,075 行になり、タグ表示だけでの書き込みはなくなりました。キャッシュ期間とポーリング頻度は変更していません。
  • Worker の更新キューにバーチャル小説が混ざり、「Novel not found」で失敗する問題を修正しました。一括・タグ・選択・定期更新から仮想の親作品を除き、通常作品のメンバーは残します。投入済みの親作品の更新も、サイト取得せず正常終了します。Native と同じ作品識別を使い、除外だけの100件ページでも定期更新の走査を先へ進めます。
  • Worker の汎用 /api/jobs で、対象なしの Update が作品を一件も更新しない問題を修正しました。実ライブラリの対象作品へ展開します。明示的に仮想小説だけを選んだ場合は一括更新へ切り替えません。

変更一覧は v0.6.2...v0.6.3 を参照してください。

詳細は 変更履歴 を参照してください。

Don't miss a new narou.rs release

NewReleases is sending notifications on new releases.