J-Quants Local-first PWA v7e-alpha16

1.12GBレスキューSQLiteをCloudflare側OPFSへストリーミングImportし、公式SQLite-WASMで直接開く実機PoC。

v7e-alpha16 起動確認

JavaScript起動: PASS(ボタンが反応すれば正常)
日付エンジン確認中…

Web版 DataLake

現在の本番DataLake導線です。Catalog + Shards方式で、必要な小型DBだけを使います。旧巨大DataLake操作は開発者診断へ移しました。
未実行

未実行

未実行

年別Shard移行

最新年を既定値として、1暦年分の日足を専用Shardへ移します。
未実行

過去年を一括Shard化

Legacy DataLakeに実在する年を自動検出し、未移行年を新しい順に1年ずつ検証しながらShard化します。
未実行

未実行

未実行

不足期間をJ-Quantsから直接補完

旧巨大DataLakeを作り直さず、実機PASS済みの date=YYYYMMDD 取得方式で 2020〜2025年を日ごとに取得し、年別Shardへ直接保存します。 途中停止してもUPSERTなので同じ期間を再実行できます。
未実行

未実行

未実行
安全設計: 土日を自動スキップ / 祝日・休場日はAPI 0件としてスキップ / 1日ごとに取得→年別ShardへCommit / 年完了ごとにquick_check→Catalog ready登録 / Legacy DataLakeは未使用・未変更。

SAH Pool 緊急診断

固定Storage identity: origin=https://jquants-pwa-test.pages.dev / pool=jq-sahpool / directory=.jq-sahpool-v7c-r5
DataLakeを書き換えず、まずPoolの論理ファイル一覧を確認します。次に候補名をread-onlyで1つずつ開きます。
未実行

未実行

未実行

J-Quants DataLake 更新

普段はこちらだけ使います。J-Quants V2 APIキーはセッション中だけ利用し保存しません。 日次更新と過去データ穴埋めは、既存DataLakeへ日付単位で直接Commitします。
未実行

未実行

未実行

未実行

高速バックフィル v7e-alpha16

書込みを1行ごとの db.exec から prepared statement 再利用へ変更しました。 祝日ではなく「実際に株価データがある欠損営業日」を自動で探し、API取得+SQLite書込みを1日分実測してから大量穴埋めを開始します。
未実行

未実行
開発者診断(通常は開かなくてOK)
旧sql.jsのようにDB全体をRAMへ読み込みません。レスキューSQLiteはストリームでOPFSへコピーし、 SQLite-WASMはWorkerからOPFS上のDBを直接開きます。
Import先はCloudflare Pages側OPFSの jq_market_v7c.sqlite です。 GitHub Pages側の元DBや、Filesに保存したレスキューSQLiteは変更しません。

自動連続バックフィル v7e-alpha16

穴を再検出しながら連続処理。日付単位Commitなので安全停止・再開できます。Safariは前面表示のままにしてください。

未実行

DataLake ローカルスナップショット

全DBをRAM展開せず、SAH Pool内に完全SQLiteスナップショットを作成・検証します。

未実行
未実行

※同一ブラウザ領域内の復旧用。FilesのレスキューSQLiteは外部バックアップとして維持してください。

1. v7c前提チェック

Cloudflare配信条件とOPFS容量見積りを確認します。
未実行

2. レスキューSQLiteをストリーミングImport(Direct Open前に必須)

Filesから1.12GBのレスキューSQLiteを選択。4MB前後のチャンク単位でOPFSへコピーし、全体をRAMには載せません。
未実行

3. SQLite-WASM同一オリジン配信チェック

Cloudflare Pages Function経由で index.mjs / sqlite3.wasm を pages.dev 同一オリジンから取得できるか確認します。
未実行

4. SQLite-WASM初期化テスト(opfs-sahpool)

DBをまだ開かず、SQLite 3.53の新しい opfs-sahpool VFSだけを有効化して初期化します。opfs-sahpoolは意図的に無効化します。
未実行

5. SAH Pool基本動作テスト(小型DB)

巨大DBの前に、小型SQLiteを作成→INSERT→Worker終了→別Workerで再Open→SELECTし、永続化を確認します。
未実行

6. 公式SQLite-WASMで直接Open(opfs-sahpool)

Worker内で公式 @sqlite.org/sqlite-wasm を起動し、SQLite 3.53の opfs-sahpool VFSへ1.12GB DBをストリーミングImportし、read-onlyで直接開きます。
未実行

7. 整合性チェック(任意・重め)

PRAGMA quick_checkを実行します。1GB超DBを走査するため時間がかかる可能性があります。
未実行

7. v7e-alpha16総合判定

未判定

v7e-alpha16 実運用同期エンジン前段テスト

既存1.12GB DataLakeの実スキーマを検査し、日付単位Transaction → Commit → Checkpoint → Worker再起動後Resumeを同じSQLiteへ直接書き込みます。DB全体RAM展開・db.export()は使いません。
未実行

未実行

未実行

v7e-alpha16 J-Quants 実データ同期

J-Quantsの日足をブラウザから取得し、既存1.12GB DataLakeへ日付単位で直接Commitします。 認証情報はこの画面のメモリ内だけで使用し、SQLite・localStorage・GitHubには保存しません。
未実行

未実行

未実行

v7e-alpha16 自動Catch-up Sync

DataLakeの最終取得日と専用Checkpointを自動判定し、その翌日から指定日まで順番に同期します。 土日はAPI呼出しを省略。祝日などAPIが0件の日も「確認済み」としてCheckpointを進めます。 iPhoneでは前景実行のため、このカードの同期中はSafariを閉じないでください。
未実行

未実行

未実行

10. 更新履歴 / Build情報

正式な更新履歴は CHANGELOG.md / release_history.json / このUIの3層で管理します。
Version: v7e-alpha16 Build date: 2026-09-01 Schema version: catalog-shards-v1 Migration version: history-4