> ## Documentation Index
> Fetch the complete documentation index at: https://docs.makkii.jp/llms.txt
> Use this file to discover all available pages before exploring further.

# 旧バージョンのデータを救出する

> 旧公開版のデータが残っている場合に表示される救出画面と、バックアップの中身

新しい Storm Code は保存形式が変わっており、**旧公開版のブラウザ保存データを読めません。
自動変換もしません。**

そのため、旧公開版のデータが残っている間は、通常の起動より先に専用の救出画面を表示します。
この画面から、旧データを消さずにバックアップを取り出せます。

<Warning>
  **バックアップの保存を確認するまで、旧データの削除や「全データを初期化」を行わないでください。**
  救出画面の「旧データを削除」は元に戻せません。
</Warning>

## いつ表示されるか

旧公開版が使っていたブラウザのデータベースが残っている限り、**リロードのたびに**表示されます。

* 新しいバージョンでワークスペースを作った後でも表示されます。
* 「読んだ」という記録は持ちません。あとで忘れられてデータが失われるのを防ぐためです。
* `Escape` や背景クリックでは閉じられません。
* 共有リンクから開いた場合でも、この画面が先に出ます。

エクスポートしたファイルの保存を確認するか、明示的に削除を完了するまで、通常の起動は再開しません。

## 手順

<Steps>
  <Step title="旧バージョンのタブを閉じる">
    旧バージョンを別のタブで開いたままにしていると、書き出しの最中に内容が変わることがあります。
    先に閉じてください。
  </Step>

  <Step title="救出バックアップを保存する">
    救出画面からバックアップを書き出します。
    `storm-code-legacy-backup-<日時>.zip` という名前でダウンロードされます。

    <Note>
      **エクスポートしても旧データは一切変更されません。**
      読み取り専用で読み出しているだけなので、何度でもやり直せます。
      端末の中だけで処理され、サーバーへ送信されることもありません。
    </Note>
  </Step>

  <Step title="ダウンロードを確認して「新版を開く」を押す">
    ブラウザからはディスクへの保存完了を確認できないため、
    ダウンロードが始まっただけでは画面を閉じません。
    保存されたファイルを実際に確認してからボタンを押してください。
  </Step>

  <Step title="zip を解凍して code.zip を取り出す">
    ダウンロードした zip を PC などで解凍します。
    中に `code.zip` が入っています。
  </Step>

  <Step title="code.zip を新しいバージョンへ取り込む">
    ワークスペース選択画面の「Zip をインポート」から `code.zip` を開きます。
    新しいワークスペースとして取り込まれます。

    <Warning>
      **外側のバックアップ zip をそのままインポートしないでください。**
      取り込めるのは中の `code.zip` だけです。
    </Warning>
  </Step>
</Steps>

## バックアップの中身

| パス                       | 内容                                   | 新バージョンへ取り込める   |
| ------------------------ | ------------------------------------ | -------------- |
| `code.zip`               | 通常のファイルとフォルダ                         | **これだけ取り込めます** |
| `designs/<元のパス>.json`    | 旧 Design の JSON                      | 取り込めません        |
| `raw/indexeddb.json`     | 元のデータベースをそのまま退避したもの                  | 取り込めません        |
| `raw/local-storage.json` | 旧バージョンの作業状態                          | 取り込めません        |
| `README.txt`             | 使い方と制限の説明                            | —              |
| `.scode/workspace.json`  | 外側の zip を通常のワークスペースとして誤って取り込ませないための印 | —              |

`code.zip` は普通の zip です。ファイルを取り出すだけで、コード自体は変換されません。
旧バージョン向けに書かれた API の呼び出しがそのまま動くことは保証しません。

### 旧 Design について

**旧 Design は自動変換しません。**
`designs/` の JSON は旧形式のままなので、必要であれば AI などを使って手動で新形式へ変換してください。

<Warning>
  AI サービスへ渡す前に、コードや JSON に秘密にすべき情報が含まれていないか確認してください。
</Warning>

### `raw/` について

元のデータベースの内容をそのまま退避したものです。
旧世代履歴もここに含まれますが、新バージョンへ取り込む機能はありません。
あとから解析したい場合のために残しています。

## 取り出しに失敗した場合

**中途半端な `code.zip` を成功として出すことはありません。**

内容を完全に復元できない場合は `code.zip` と `designs/` を含めず、
`raw/` だけを残して `EXTRACTION-ERROR.txt` に理由を記録します。
画面にも警告が出ます。

「一部だけ取れた zip」を成功として渡すと、欠けていることに気づかないまま
元データを消してしまう恐れがあるためです。

旧履歴のデータベースだけが残っていて、プロジェクトのデータベースが無い場合も、
空の `code.zip` を成功扱いにはしません。

## 旧データを削除する

バックアップを保存し、内容を確認したあとで削除できます。

`旧データを削除…` から確認画面へ進み、**`DELETE` と正確に入力**した場合だけ実行されます。

削除されるのは旧公開版のデータベース2つと、列挙した旧バージョンの作業状態のキーだけです。
新しいバージョンのデータ、ワークスペース一覧、ログイン情報、
他のツールのデータには触れません。

<Note>
  他のタブで旧バージョンを開いたままだと削除が進まないことがあります。
  その場合は画面に「他のタブを閉じてください」と表示されます。
  完了していないものを完了扱いにはしないので、残っていれば次回も検出されます。
</Note>

## 旧バージョンの Export Zip を持っている場合

旧バージョンの `File > Export Zip...` で保存した zip も取り込めます。
ワークスペース選択画面の「Zip をインポート」からそのまま渡してください。

読み込めない Design が入っていても、**その `.design` だけを飛ばして残りを取り込み、
何を飛ばしたかを表示します。** zip を開いて作り直す必要はありません。

<Note>
  旧バージョンの Export Zip に Design が含まれていると、
  中身の無い `<名前>.design/` というディレクトリのエントリが入ります。
  これも上記の「飛ばす」対象なので、そのまま取り込めます。
</Note>
