Skip to content

feat(kit): add offline mutation controls and local reset - #76

Merged
rdlabo merged 2 commits into
mainfrom
agent/offline-mutation-control-reset
Aug 14, 2026
Merged

feat(kit): add offline mutation controls and local reset#76
rdlabo merged 2 commits into
mainfrom
agent/offline-mutation-control-reset

Conversation

@rdlabo

@rdlabo rdlabo commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

概要

オフライン保存の有効・無効をプロダクトから切り替えられる共通機構と、破損時にローカルオフラインデータを明示的に初期化するcold-start APIをKitへ追加します。

オフライン読み込みは常に維持し、保存を無効化した場合だけ新規Outbox受付を停止して通常のHTTP transportへ切り替えます。

変更内容

  • 新規enqueueの共通境界にmutation admission gateを追加
  • 永続設定adapterと、直列化された有効・無効遷移を追加
  • 無効化時は受付停止、処理中enqueueの完了待ち、flush、pending確認、設定永続化の順で実行
  • 設定読込障害時はfail-closedでErrorHandlerへ報告し、アプリ初期化は継続
  • OFF時のmutationはoffline policyを通さず通常transportを使用
  • GETとローカルread cacheの動作は変更なし
  • 明示markerを使ったnative cold-start local reset APIを追加
  • reset失敗時はmarkerを保持し、次回起動時に再試行可能
  • Kit互換SQLite構成とproduct固有cleanupの責務境界を型・READMEに明記
  • 公開API、利用例、競合・失敗系の回帰テストを追加

背景

プロダクトごとに設定・enqueue受付・reset lifecycleを実装すると、設定切替中の遅延enqueueや初期化競合、部分削除後の誤った成功扱いが再発します。Outbox commitとcold bootstrapという大本の境界をKitが所有し、横展開時も同じ安全性を利用できるようにします。

利用者・運用への影響

  • オフライン保存は設定に応じて安全に停止・再開できます。
  • 読み込みキャッシュによる高速化とオフライン閲覧は設定OFFでも維持されます。
  • ローカルデータ破損時は明示操作後の再起動でSQLiteと追加データを初期化できます。
  • 設定ストレージ障害では保存受付を閉じますが、通常HTTP・read cache・アプリ起動は継続します。

検証

  • Kit全体: 47 files / 862 tests passed
  • workspace全体テスト passed
  • npm run lint passed
  • Kit production build passed
  • npm run test:offline-types:nonstrict passed
  • git diff --check passed
  • 上長レビュー承認
  • 第三者受け入れレビュー承認

補足

native SQLite pluginのreload・delete lifecycleはunit mockで検証しています。リリース前にiOS/Android実機でのreset smoke testを推奨します。


Open in Devin Review

@netlify

netlify Bot commented Aug 14, 2026

Copy link
Copy Markdown

Deploy Preview for rdlabo-ionic-angular-library ready!

Name Link
🔨 Latest commit 3d533f0
🔍 Latest deploy log https://app.netlify.com/projects/rdlabo-ionic-angular-library/deploys/6a7ec61c47d2570008d8b2df
😎 Deploy Preview https://deploy-preview-76--rdlabo-ionic-angular-library.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 2 potential issues.

View 1 additional finding in Devin Review.

Open in Devin Review

Comment thread projects/kit/offline/src/lib/offline-local-reset.ts
@rdlabo
rdlabo merged commit 9e8fcc3 into main Aug 14, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant