记录输入事实的设备坐标#298
Conversation
PR AI Review / PR AI 语义预检中文
为输入记录添加设备 GPS 坐标作为 Fact header 元数据(input_location)。新增 InputLocation domain model,增强 LocationContextService 支持超时/last-known fallback,扩展 FileSystemService 的 Fact 条目元数据解析并保持向后兼容。变更架构清晰,测试覆盖完整,无安全或数据风险。 影响范围
黄金链路
风险项
测试缺口
English
Adds device GPS coordinates as Fact header metadata (input_location) for each input submission. Introduces InputLocation domain model, enhances LocationContextService with timeout and last-known-GPS fallback, and extends FileSystemService fact-entry metadata parsing with backward compatibility. Architecture is clean, test coverage is thorough, and no security or data risks identified. Affected Areas
Golden Path
Findings
Test Gaps
|
PR Preflight Summary / PR 预检汇总中文
English
PR Policy Preflight / PR 规则预检PR Policy Preflight / PR 规则预检中文
未发现确定性规则问题。 English
No deterministic policy findings. PR Flutter Quality / Flutter 质量预检PR Flutter Quality / Flutter 质量预检中文
English
Flutter Analyzer Baseline
No new analyzer issues introduced by this PR. Flutter Test Baseline
No new Flutter test failures introduced by this PR. |
|
有个位置语义的问题想确认一下:这个 PR 新增的 我想确认下你对历史照片场景的考虑:如果用户人在 A 地,上传一张历史拍摄于 B 地且带 EXIF GPS 的图片,预期应该是:
现在图片 EXIF 会通过 asset analysis 进 card agent, 主要担心 media-only historical photo 且当前定位可用时,agent 有机会把当前地点当成照片地点。想确认这是否在本 PR 范围内需要防一下,还是先保持 metadata 语义清晰,后续再专门做 captured/event location 设计。 |
确实这里位置的语义有点混乱,需要明确下 |
|
从我们记录生活的角度看,应该是原始输入中有的gps为第一原则,特别是很多用户场景是记录图片 |
关联 issue
Closes #295
变更
input_location,只来自设备 GPS,不从文本地名推断。InputLocationdomain model,并增强 Fact header metadata 解析,兼容旧的空 metadata。测试
flutter test --no-pub test/data/repositories/submit_input_test.dart test/data/services/location_context_service_test.dartflutter analyze --no-pub lib/domain/models/input_location.dart lib/data/services/location_context_service.dart lib/data/repositories/submit_input.dart test/data/repositories/submit_input_test.dart test/data/services/location_context_service_test.dartflutter build apk --debug --flavor globalDev --no-pubgit diff --checkMedium_Phone_API_35:grant fine/coarse location,emu geo fix 121.456789 31.212345,从 Timeline 输入GPS_QA_20260616_1145并提交;读取 Fact 文件确认 header 写入input_location,lat/lng 与模拟坐标一致,source 为device_gps。