Softex CelwareTech Blog

Release Notes

らくログタスク β0.5.7 更新内容

2026年5月27日に、らくログタスク β0.5.7 を更新しました。 今回の中心は、別ウィンドウ・別端末で同じ入力画面を開いているときの同期改善です。 古い画面状態のまま操作した場合でも、作業履歴の二重登録や順番ズレが起きにくくなるようにしました。

今回の更新テーマ

作業時間管理アプリは、PC、スマホ、別ウィンドウなど、複数の画面で開いたまま使われることがあります。 片方の画面で作業切替や退勤を行ったあと、もう片方の画面が古い状態のままだと、さらに作業開始や退勤を押したときに履歴が重複する可能性があります。 β0.5.7では、この「古い画面状態からの操作」を減らすため、画面の自動同期と操作直前の最新確認を追加しました。

別ウィンドウで開いていてもズレにくい

同じ日の入力画面を複数開いている場合でも、他の画面で登録された作業履歴や退勤操作を取り込みやすくしました。

PCとスマホの併用でも安心しやすい

PCで出勤し、スマホで作業を切り替えるような使い方でも、古い画面状態を引きずりにくくなります。

二重登録や履歴順のズレを抑える

作業開始や退勤の直前に最新状態を取り直し、古い画面からの操作による二重登録リスクを下げています。

追加・改善した機能

01

入力画面のリアルタイム同期

Supabase Realtimeで work_days、work_history、task_master の変更を監視し、別ウィンドウや別端末で更新された内容を入力画面へ反映しやすくしました。

02

フォーカス復帰時の再取得

ブラウザウィンドウへ戻ったとき、非表示だったタブが表示状態に戻ったときに、入力画面のデータを再取得します。

03

操作直前の最新状態チェック

出勤、退勤、現在作業終了、作業開始・作業切替の直前に、当日の勤務日と作業履歴を取り直すようにしました。

04

作業切替時の並び順決定を改善

画面上の件数ではなく、最新の作業履歴から最大 sort_order を確認し、その次の番号で新しい作業を追加します。

05

古い状態で操作した場合の案内

他の画面ですでに出勤済み、作業終了済みなどの場合は、画面を最新化したうえでメッセージを表示します。

技術的な裏側

入力画面では、Supabase Realtime の postgres_changes を購読し、対象テーブルに変更が入ったときにデータを再取得する構成にしました。 監視対象は work_days、work_history、task_master です。短時間に通知が連続しても再取得が走りすぎないよう、短い遅延を挟んで更新します。

supabase
  .channel(`rakulog-input-sync-${user.id}`)
  .on(
    "postgres_changes",
    { event: "*", schema: "public", table: "work_days", filter: `user_id=eq.${user.id}` },
    scheduleReload
  )
  .on(
    "postgres_changes",
    { event: "*", schema: "public", table: "work_history", filter: `user_id=eq.${user.id}` },
    scheduleReload
  )
  .subscribe()

Realtimeは便利ですが、完全な排他制御ではありません。そのため、作業開始や退勤の直前にも当日の最新状態を取り直し、画面表示が古くても保存処理の直前に整合性を確認するようにしています。

今回あえて行っていないこと

β0.5.7では、作業切替処理をDB側のRPCへ完全に寄せるところまでは行っていません。 現在の進行中作業を終了し、次の sort_order を決め、新しい作業を追加する処理を1つのRPCにまとめれば、より強い整合性を持たせられます。 ただし今回は、既存構造を大きく変えずに改善できる範囲として、入力画面側の自動同期と操作直前の最新確認を優先しました。

関連する実装ノウハウ

今回の更新に近い、Supabaseのデータ取得、入口UI、通知まわりの実装ノウハウです。

運用上の注意

Supabase Realtimeを利用するため、Supabase側で work_days、work_history、task_master がRealtime対象になっている必要があります。

Realtimeが未設定でも、操作直前の最新状態確認は動作します。 そのため完全ではないものの、以前より古い画面状態による二重登録リスクは下がります。