Jewelry AI・結果の削除

結果の削除は、30日の時計を動かし始めます

このアプリでは、削除と恒久的な完全削除は別々の出来事であり、その間隔はコードで固定されています。このページは、その間隔がどれだけか、期間の終わりに何が走るか、そしてその後の記録がどう見えるかを述べます。

結果を削除すると何が始まるか

Jewelry AIで生成を削除しても、同じ瞬間に記録の一生が終わるわけではありません。削除は、恒久的な完全削除で終わる決まった長さの期間を始めます。その長さは30日です(soft-delete-retention-sweeper.tsの25行、2026-08-18に確認)。

この形から二つのことが導かれます。一つ目は、この数字が自分の削除から完全削除までの隔たりについてのものであって、アプリが結果一般をどう扱うかについてのものではないということです。二つ目は、完全削除を実行するのがバックグラウンドのスイーパーであるため、30日目は作業の期限が来る時点であって、作業が済んでいることが確実な時点ではないということです。

コードが固定していることと、その記載場所

以下の各行は、プロダクト自身のコードからの言明であり、読み取ったファイルと行を添えてあります。

保持期間は30日です。
RETENTION_MS = 30 * 24 * 60 * 60 * 1000(soft-delete-retention-sweeper.tsの25行)。この値はそのファイル内の定数であり、環境変数でも設定項目でもありません。
完全削除は、時刻が書き込まれた記録を後に残します。
完全削除はpurgedAtに実行時の時刻を設定し、outputAssetIdをnullにクリアします(generation.service.tsの943行)。
完全削除された記録は、どのツールの入力としても適格ではなくなります。
新しいジョブの入力元を選ぶ処理と、保存済みの作業を一覧するコレクションの読み取りは、どちらも完全削除された記録を除外します(generation.service.tsの362-375行と562-576行、collections.service.tsの48行と164行)。
スイーパーはバッチで走り、遅れているときはアラートを上げます。
1ラウンドあたり100件の記録を扱い、滞留についてはRETENTION-01のアラートを出します(soft-delete-retention-sweeper.tsの145-158行)。

このページが立脚している値

2026-08-18にプロダクトのコードから読み取りました。

項目記載箇所
記録を削除してから完全削除までの間隔30日、コード内の定数としてsoft-delete-retention-sweeper.tsの25行
1ラウンドで扱う記録の件数100soft-delete-retention-sweeper.tsの145-158行
滞留が生じたときに上がるアラートRETENTION-01soft-delete-retention-sweeper.tsの145-158行
完全削除が記録に書き込むものpurgedAtを設定し、outputAssetIdをクリアgeneration.service.tsの943行

完全削除が予定ではなく期限の到来である理由

スイーパーは、期限を迎えたものを一度にすべて片づけるわけではありません。1ラウンドあたり100件の記録を取り、削除がラウンドで片づく速さより速く届くと、その滞留がサービスを運用する人々に向けてRETENTION-01のアラートを上げます(soft-delete-retention-sweeper.tsの145-158行)。

これがタイミングについての正直な説明であり、このページはここまでしか進みません。30日は、削除された記録が完全削除の対象になる時点です。上の処理の速さは、記録が取り出される順番を決めるものです。完了までの最長時間はここでは述べません。このページのために読んだコードが、それを定めていないからです。

完全削除の後、記録はどう見えるか

完全削除は行そのものを取り除きません。記録に完全削除の時刻を書き込み、出力アセットへの参照をクリアします(generation.service.tsの943行)。そのため残るのは、完全削除が行われたと述べ、どの出力も指していない記録です。

完全削除の時刻が付いた記録を見ているなら、それは完全削除された記録の姿であって、削除操作の失敗ではありません。

手元にあるファイルの控えは、ここまでのどれとも別の話であり、自分のモデル写真を使う場合のページが扱っています。そちらでは、自分の写真を使った実行がジョブの記録に何を残し、何を落とすのかを示しています。

出品者が30日を読み違えるところ

もっともらしく見えて、コードの動きとは違う三つの読み方です。

  • 大量にまとめて片づけ、それがすべて同じ一巡で完全削除されると考える。

    スイーパーは1ラウンドあたり100件の記録を取るため、大きな一括の片づけは複数のラウンドに分かれます。続いてしまう滞留のために、RETENTION-01のアラートがあります。

  • 30日を、アプリのデータ保管方針として顧客に伝える。

    自分が記録を削除してから、その記録が完全削除されるまでの間隔として述べてください。この定数がそれより広いことを支えることはありません。

  • 完全削除の時刻が付いた記録を、履歴の不具合として扱う。

    それは文書化されたとおりの結果です。行は残り、完全削除の時刻が書き込まれ、出力アセットへの参照がクリアされます(generation.service.tsの943行)。

このページが守る境界

境界はほのめかすのではなく、明示します。

  • 完全削除が走る前に、削除した結果を自分で取り戻せるかどうか。このページのために読んだコードは、どちらの方向にもそれを立てていないため、いずれの主張もしません。
  • 完全削除までの最長時間。期間、バッチの大きさ、滞留のアラートは説明していますが、完了の期限は説明していません。見つからなかったからです。
  • ある記録が新しいジョブの入力として適格になる条件の一般的な規則。このページは上で述べた狭い一点だけを述べ、より広い仕組みは専用のページに委ねます。
  • そもそも生成を送信したときに、アプリが何をアップロードするか。それは、実際に端末から何が出ていくかのページに属します。
  • クレジット、返金、そしてすでに行われた課金に削除が何をするかについてのすべて。

よくある質問

30日の期間は、私が作るすべての生成に当てはまりますか。

いいえ。これは、自分で削除した記録に対してスイーパーが適用する間隔です。手元に残している結果がどれだけ保たれるかについては何も述べておらず、このページはそのような期間を示しません。

自分のアカウントや工房のために、30日を変更できますか。

いいえ。値はスイーパーのコードにRETENTION_MS = 30 * 24 * 60 * 60 * 1000として書き込まれています(soft-delete-retention-sweeper.tsの25行)。環境変数ではありませんし、アプリの中にもそのための操作項目はありません。

完全削除が走った後には何が残りますか。

時刻が書き込まれた記録です。完全削除はpurgedAtに実行時の時刻を設定し、outputAssetIdをnullにクリアします(generation.service.tsの943行)。そのため行は残り、出力アセットはもう指されません。

完全削除は、ちょうど30日目に行われますか。

30日目は、完全削除の期限が来る時点です。その後スイーパーは1ラウンドあたり100件の記録を処理し、滞留が生じればRETENTION-01のアラートを上げます(soft-delete-retention-sweeper.tsの145-158行)。ですからこのページは、完了時刻を約束する代わりに、この処理の速さを説明しています。