Skip to content

fix(offline): オフラインモードの検査を通らない経路と、切替の途中の抜けを塞ぐ (#1350) - #1396

Merged
hitalin merged 1 commit into
developfrom
fix/offline-review-followups-1350
Nov 12, 2026
Merged

hitalin merged 1 commit into
developfrom
fix/offline-review-followups-1350

Conversation

@hitalin

@hitalin hitalin commented Nov 12, 2026

Copy link
Copy Markdown
Collaborator

何を直すか

Release PR (#1395) に付いたレビューの指摘 10 件のうち 9 件。リリースに入れる前に直す。

コードで確かめて、実際の不具合だったもの

  • アプリの状態確認 (自己診断) が門を通らない — doctor::diagnose が検査なしのクライアントを固定で作っていて、アプリの状態確認もこれを呼ぶ。手動のオフライン中に開くと Misskey に要求が出る。門を引数で受ける形にし、アプリはオフラインの門を、コマンドラインは通す門を渡す
  • 全アカウントのカラムで、キャッシュの終端が「サーバーの終端」として残る — オフライン中にキャッシュの末尾まで読むと「尽きた」と記録され、解除後もそれより古いノートを読み込めない。修正を外すと回帰テストが落ちることを確かめた

切替の途中の抜け (起きにくいが、安く塞げるもの)

  • 投稿: 確認ダイアログを待つ間にオフラインに入った場合も、フォームを閉じる直前で止める (閉じてから送ると、退避先の下書きもサーバーなので本文を失う)
  • ログアウト / データの削除: 確認の後にもう一度見る
  • 巡回: 途中でオフラインに入ったら、AI を呼ぶ直前で見送る (AI の呼び出しは Misskey の門を通らない)
  • ストリーミングの接続: ロックを待つ間に門が閉じたら張らない。全部切る側も同じロックで一覧を取るので、取りこぼさない
  • 凍結アカウントの照会: 途中で止められたら、残りを戻して再開で流す
  • チャットカラム: 取得の途中でオフラインに入っても、解除で取り直す
  • 起動時の読み込みに失敗した後で切替に成功したら、別の窓の切替を聞く購読を張り直す

入れていないもの (1 件)

「オフラインに入ると照会の購読の対応が残り、解除後にライブ更新が再開されない可能性」。オフラインに入るときに接続を切る動きは今回の変更より前から同じで、今回の変更で起きるようになったものではない。解除後に元に戻ることは実機で確認されている。ライブ更新が再開されるかを個別に確かめる必要があるので、別に扱う。

確認

  • 重い 2 件はテストを足した。キャッシュの終端は、修正を外すと落ちることを確かめた
  • Rust の workspace 全体のテスト、clippy (workspace)、フロントの全テスト、typecheck、biome は通過
  • 切替の途中の抜けのうち、巡回・接続・凍結の照会・購読の張り直しには、競合を再現するテストを足していない

Refs #1350

🤖 Generated with Claude Code

リリース前のレビューの指摘を反映する。

- アプリの状態確認 (自己診断) が、検査なしのクライアントで Misskey に
  問い合わせていた。門を呼び出し側が渡す形にし、アプリはオフラインの
  門を、コマンドラインは通す門を渡す
- 全アカウントのカラム: オフライン中にキャッシュの末尾まで読むと
  「尽きた」と記録され、解除後もそれより古いノートを読み込めなかった
- 投稿 / ログアウト / データの削除: 確認ダイアログを待つ間にオフラインに
  入った場合も止める (投稿は、閉じてから送ると本文を失う)
- 巡回: 途中でオフラインに入ったら、AI を呼ぶ直前で見送る
- 接続: ロックを待つ間に門が閉じたら張らない
- 凍結の照会: 途中で止められたら、残りを戻して再開で流す
- チャットカラム: 取得の途中でオフラインに入っても、解除で取り直す
- 起動時の読み込みに失敗した後で切替に成功したら、購読を張り直す

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Nov 12, 2026

Copy link
Copy Markdown

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 41 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

Run configuration

Commits

Reviewing files that changed from the base of the PR and between 44f0d33 and e099fba.

Files selected for processing: 12

  • crates/notecli/src/commands/doctor.rs
  • crates/notecli/src/streaming.rs
  • crates/notecore/src/commands/health.rs
  • crates/notemaid/src/heartbeat.rs
  • src/components/deck/DeckChatColumn.vue
  • src/composables/useAccountActions.ts
  • src/composables/useCrossAccountNotes.dom.test.ts
  • src/composables/useCrossAccountNotes.ts
  • src/composables/usePostFormState.test.ts
  • src/composables/usePostFormState.ts
  • src/stores/offlineMode.ts
  • src/stores/suspensions.ts
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

@github-actions github-actions Bot added the javascript Pull requests that update javascript code label Nov 12, 2026
@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying notedeck with  Cloudflare Pages  Cloudflare Pages

Latest commit: e099fba
Status: ✅  Deploy successful!
Preview URL: https://2e9e0e93.notedeck-d3a.pages.dev
Branch Preview URL: https://fix-offline-review-followups.notedeck-d3a.pages.dev

View logs

@claude

claude Bot commented Nov 12, 2026

Copy link
Copy Markdown

Code review

No issues found. Checked for bugs and CLAUDE.md compliance.

@hitalin
hitalin merged commit 8d0f455 into develop Nov 12, 2026
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

javascript Pull requests that update javascript code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant