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
@@ -323,6 +323,7 @@ impl Default for AppState {
|
||||
face_dao.clone(),
|
||||
knowledge_dao,
|
||||
persona_dao.clone(),
|
||||
user_ai_prefs_dao.clone(),
|
||||
libraries_vec.clone(),
|
||||
);
|
||||
|
||||
@@ -550,6 +551,7 @@ impl AppState {
|
||||
face_dao.clone(),
|
||||
knowledge_dao,
|
||||
persona_dao.clone(),
|
||||
Arc::new(Mutex::new(Box::new(SqliteUserAiPrefsDao::new()))),
|
||||
vec![test_lib],
|
||||
);
|
||||
|
||||
|
||||
Reference in new issue
Block a user