From 53762ba9ac0b70d2f01d46de386ebe21fd491b66 Mon Sep 17 00:00:00 2001 From: Jer Miller Date: Sat, 18 Apr 2026 15:09:57 -0600 Subject: [PATCH] refactor(events): migrate live consumers + delete reader functions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sprint 4 Lode C1. Completes retirement of legacy reader surfaces started in 9a5d800b (A) and 930f1d36 (B); last-known-good for revert: 930f1d36. - apps/home: rename `_collect_events` → `_collect_anticipated_activities`; drop `get_events` call; rename pulse context key `events` → `anticipated_activities`; update template iteration + empty-state copy. - apps/activities: delete `/api/day//events` route + `activities_day_events`; replace `activities_stats` with activities-sourced stub returning `{YYYYMMDD: {facet: count}}` via `calendar.monthrange` + `load_activity_records`. - apps/activities/_day.html: template surgery — replace `#eventsView` with `#timelineView`, extract timeline rendering into new `renderTimeline()`, delete event modal + `openModal`, delete all-day event block, delete processedEvents/column-layout/legend code, drop `/api/day//events` fetch. File: 1470 → 974 LOC. - convey/static/month-picker.js: tooltip wording `events` → `items`. - think/journal_stats.py: drop `facets/*/events/*.jsonl` mtime block from `_get_day_mtime`. - think/indexer/journal.py: delete `get_events`. `_find_signal_files` event glob retained — historical event files remain searchable via `sol call journal search`. - think/event_formatter.py: delete `get_month_event_counts`; `format_events` remains as the only public export. Registry entry at `think/formatters.py:142` unchanged. - tests: delete `tests/test_events.py` (5 tests); delete `test_get_events*` from `test_journal_index.py` (2 tests); delete `test_facet_event_mtime_invalidates_cache` from `test_journal_stats.py` (1 test, covered deleted functionality); rewrite Pulse collector test in `test_home_yesterdays_processing.py` (anticipated-only assertion); update monkeypatches in `test_home_skills.py` + `test_home_routines.py`; add one route-level stats stub test in `tests/test_app_activities.py`; remove `day-events` entry from `tests/verify_api.py`; regenerate `tests/baselines/api/activities/stats-month.json` for the new shape. Keep-list invariants intact: - `think/formatters.py:142` event formatter registry entry - `think/event_formatter.py::format_events` - `think/indexer/journal.py::_find_signal_files` event glob (line ~250) - `tests/test_formatters.py` Deferred to Lode D: `think/planner.md` references to `get_events` at lines 19, 46, 82 (live prompt text, but no runtime tool-wrapper exists — misleading but non-breaking); wider docs/baselines scrub. Test count: 3234 passed, 1 skipped (net −7 tests from the migration: −5 `test_events.py`, −2 `test_journal_index.py::test_get_events*`, −1 `test_journal_stats.py::test_facet_event_mtime_invalidates_cache`, −1 rewritten-in-place in `test_home_yesterdays_processing.py`, +1 new `test_app_activities.py` stats route test, +1 existing `test_home_yesterdays_processing.py` rewrite counted above). Co-Authored-By: Claude Opus 4.7 (1M context) --- apps/activities/_day.html | 558 +----------------- apps/activities/routes.py | 83 +-- apps/home/routes.py | 31 +- apps/home/workspace.html | 10 +- convey/static/month-picker.js | 2 +- .../baselines/api/activities/stats-month.json | 21 +- tests/test_app_activities.py | 50 ++ tests/test_events.py | 132 ----- tests/test_home_routines.py | 4 +- tests/test_home_skills.py | 4 +- tests/test_home_yesterdays_processing.py | 29 +- tests/test_journal_index.py | 24 - tests/test_journal_stats.py | 60 -- tests/verify_api.py | 7 - think/event_formatter.py | 68 +-- think/indexer/journal.py | 43 -- think/journal_stats.py | 10 - 17 files changed, 142 insertions(+), 994 deletions(-) delete mode 100644 tests/test_events.py diff --git a/apps/activities/_day.html b/apps/activities/_day.html index d07288f41..a0ae68f17 100644 --- a/apps/activities/_day.html +++ b/apps/activities/_day.html @@ -1,4 +1,4 @@ -{# Calendar day view - events timeline + activities #} +{# Activities day view - timeline + activity cards #}