マスターに向けた拡張項目
マスターに向けた拡張項目
GPS-MEMOマスター版へ向けた拡張項目の作業計画ページ。詳細な実装作業はCodex側の作業計画ファイルで管理する。
2026-07-23 A1/Eprime 位置判定・測位診断強化
Codex側の正式な作業計画ファイルは core/課題/課題260723a_A1_Eprime_location_diagnostics.md。SESSION_LIVEもこの計画へ切り替え済み。
背景
A「バックグラウンド未起動でも通知」と、E′「測位頻度・iOS瞬間速度・確認測位の見直し」に関する実地ログから、通知失敗の原因が一つではないことが分かった。当初は「長時間バックグラウンドでアプリが起きない」が主犯候補だったが、2026-07-22の帰宅経路では長時間バックグラウンド後でも複数地点で到着判定と通知履歴保存が成立している。一方で、2026-07-21夜の橋本/鳥貴族、2026-07-23朝のリコスでは別の失敗が見えている。
2026-07-22 帰宅経路で確定したこと
arrival と fire_events が残った。
このため、長時間バックグラウンド後でもiOS region監視から通知判定へ復帰できるケースはある。
門前仲町はDB上 notification_delivery_probe pending=false delivered=true lifecycle=paused まで出ているが、G2/Watch/iPhone表示として気づけていない。これはGPS判定ではなく、OS通知表示、Watch/G2ミラー、ロック解除タイミング、通知ID再利用まわりの切り分け対象である。
2026-07-23 朝リコスで確定したこと
geofence_enter リコス、08:08:29 sample dist=50m acc=20m notifyRadius=25m、08:08:36 sample dist=51m acc=6m notifyRadius=25m が残っている。
arrival と fire_events はない。
iOSが一切起こしていないわけではなく、SwiftからDartまで少なくとも一部は届いている。
約2分滞在したのにサンプルは7秒間に2件だけで途絶しているため、確認フェーズ中の distanceFilter により、屋内・低速・静止時の位置報告が止まった可能性が高い。
リコス/自宅周辺はGoogle Mapでも位置が飛ぶ地域であり、acc=6m と高精度を自称しながら実位置と50m級でずれる可能性がある。短域25mはこの地域では成立しないことがある。
2026-07-21 夜 橋本/鳥貴族で確定したこと
arrival、20:07:28 横浜線橋本駅 notification_delivery_probe ... delivered=true がある。
20:12頃に配達窓ログが終わり、20:12〜22:34頃はGPS-MEMO診断ログがほぼ空白。
鳥貴族橋本の geofence_enter は記録されていない。
横浜線橋本駅の safe_exit_rearmed は22:46:01まで記録されていない。
つまり「安全エリア内にいたから再通知されなかった」ではない。実際には安全エリア外へ出ていたはずなのに、退出確認と鳥貴族の入ったイベントが食事中に記録されていない。
Swift永続ログがないため、iOSがイベントを出していないのか、Swiftが受けてDartに渡せていないのか、Dartが起きていないのかは確定できない。
問題の分解
distanceFilter 問題。enter後にサンプルが少数で止まり、判定もタイムアウトも進まない。
判定条件/半径: リコス/自宅周辺のように位置が飛ぶ地域では、通知半径25mが測位ノイズより小さくなる。
通知表示: notification_delivery_probe delivered=true でもユーザーが表示として気づけないケースがある。iPhone通知センターに実物が残っているかを基準に、GPS-MEMO側通知登録とWatch/G2ミラーを分ける。
次の実装候補
syncRegions、監視中region一覧、didEnterRegion、didExitRegion、didDetermineState、requestState、SwiftからDartへの送信、Dart応答、測位セッション開始/停止、accuracy、distanceFilter、開始理由、停止理由を永続記録する。
E′ distanceFilter修正: 確認フェーズ中はiOS側 distanceFilter=none とし、iOS側で位置報告を絞らない。電池対策はDart側の判定間引きで行う。短域25mは進入後60秒は毎更新判定、その後は10〜30秒程度へ降格する。
判定条件緩和の検討: 現行の dist <= notifyRadius かつ acc <= notifyRadius に対し、候補として dist - acc <= notifyRadius と2サンプル連続成立を検討する。ただし誤発火リスクがあるため、A1/E′後のログで評価する。
次GO候補
distanceFilter=none
Dart側判定間引き
短域入った直後60秒の高頻度判定
診断DBへの測位設定ログ追加
7/21夜橋本/鳥貴族、7/23朝リコスを前提にした自動テスト
StudioLLMデバッグ
拡張項目一覧
バックグラウンド未起動でも通知。スマホ版GPS-MEMOが前面や通常のバックグラウンドにいない場合も、iOSが許す範囲で到着通知を成立させる。 E
重なり合った複数エリア対応。複数メモを独立して確認し、同一位置サンプルで全メモを再評価する。 E'
iOS瞬間速度の平滑化、測位頻度、distanceFilter、確認フェーズの継続測位を見直す。 F
近くのメモ検索。現在地から1km、2.5km、5km、10kmなどの範囲で有効メモを検索・閲覧する。 G
G2連携系の後続拡張。 H
インポート元など、メモ属性に基づく将来の内部優先度要素。 I
有効条件など、メモ属性に基づく将来の内部優先度要素。 J
自動車・進行方向別・超広域モード。高速道路の上り/下りなど進行方向を考慮する。 K
G2履歴の取得・画面更新不良。
運用注意