Switch read paths to the true-instant date contract (ticket #119)
- New src/date_view.rs: pure read-side functions (row_true_instant, row_display_wall, row_display_day, filename_true_instant) applying the per-source convention table for unconverted rows and the new-contract triple for converted rows (ADR-0001). - /memories: grouping on the row's true instant rendered in the owner's display zone (prefs -> app default), not the client device offset. SQL is a coarse interval pre-filter over the full years-back window; exact month-day/week/month matching across past years happens in Rust (memories::day_in_span, sqlite_w_week). - Reels: ReelSelector::Memories carries an IANA display_tz instead of a fixed minute offset; pre-gen params read REEL_PREGEN_DISPLAY_TZ; the tz_offset_minutes ledger column stores the zone offset at render time. - Insights: prompt-facing dates render as the display wall; the proximity timestamp and chat context block use the true instant; InsightGenerator reads the owner's display zone from prefs per call. - GpsPhotoSummary carries the new-contract triple alongside the frozen legacy date_taken. Closes #119
This commit is contained in:
1 parent
cd375f18db
commit
af87765bbb
13 files changed
+1590
-301
No files matched your search
@@ -428,7 +428,15 @@ pub struct GpsPhotoSummary {
|
||||
pub path: String,
|
||||
pub lat: f64,
|
||||
pub lon: f64,
|
||||
/// Legacy mixed-convention date (frozen for existing rows; ADR-0001).
|
||||
pub date_taken: Option<i64>,
|
||||
/// True instant (epoch seconds), when the row has been converted.
|
||||
pub date_utc: Option<i64>,
|
||||
/// Camera offset in minutes from UTC at capture, when known.
|
||||
pub camera_offset_minutes: Option<i32>,
|
||||
/// Which evidence pinned the instant (`offset_tag`, `gps`,
|
||||
/// `assumed_server`, `utc_direct`, `manual`).
|
||||
pub date_taken_tz_source: Option<String>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Serialize)]
|
||||
|
||||
Reference in new issue
Block a user