personal memory agent
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

refactor(activities): clean up stale calendar naming in routes and templates

+21 -21
+3 -3
apps/activities/_day.html
··· 553 553 border: 0; 554 554 } 555 555 556 - .calendar-breadcrumb { 556 + .activities-breadcrumb { 557 557 display: flex; 558 558 align-items: baseline; 559 559 gap: 0.4em; ··· 669 669 min-height: 100vh; 670 670 border-radius: 0; 671 671 } 672 - .calendar-breadcrumb { 672 + .activities-breadcrumb { 673 673 font-size: 0.75em; 674 674 gap: 0.3em; 675 675 } ··· 697 697 </style> 698 698 699 699 <div class="workspace-content-wide"> 700 - <nav class="calendar-breadcrumb" aria-label="calendar navigation"> 700 + <nav class="activities-breadcrumb" aria-label="activities navigation"> 701 701 <a href="#" id="breadcrumbMonth" class="breadcrumb-link"></a> 702 702 <span class="breadcrumb-sep" aria-hidden="true">/</span> 703 703 <span class="breadcrumb-current" aria-current="page"></span>
+2 -2
apps/activities/_dev_screens_detail.html
··· 233 233 } 234 234 </style> 235 235 236 - <div class="calendar-content"> 236 + <div class="activities-content"> 237 237 <h1>{{ title }}</h1> 238 238 239 239 <div class="screens-detail"> 240 - <a href="{{ url_for('app:activities._dev_calendar_screens_list', day=day) }}" class="back-link"> 240 + <a href="{{ url_for('app:activities._dev_activities_screens_list', day=day) }}" class="back-link"> 241 241 ← Back to screens list 242 242 </a> 243 243
+2 -2
apps/activities/_dev_screens_list.html
··· 87 87 } 88 88 </style> 89 89 90 - <div class="calendar-content"> 90 + <div class="activities-content"> 91 91 <h1>{{ title }}</h1> 92 92 93 93 <div class="screens-list"> ··· 97 97 </h2> 98 98 <p style="color: #6c757d; margin-top: 8px;"> 99 99 View raw screen.jsonl files and frame analysis data for {{ day }}. 100 - <a href="{{ url_for('app:activities.calendar_day', day=day) }}" style="margin-left: 8px;">← Back to day view</a> 100 + <a href="{{ url_for('app:activities.activities_day', day=day) }}" style="margin-left: 8px;">← Back to day view</a> 101 101 </p> 102 102 103 103 <div id="loading" class="loading">
+11 -11
apps/activities/routes.py
··· 24 24 25 25 @activities_bp.route("/") 26 26 def index(): 27 - """Redirect to today's calendar view.""" 27 + """Redirect to today's activities view.""" 28 28 today = date.today().strftime("%Y%m%d") 29 - return redirect(url_for("app:activities.calendar_day", day=today)) 29 + return redirect(url_for("app:activities.activities_day", day=today)) 30 30 31 31 32 32 @activities_bp.route("/<day>") 33 - def calendar_day(day: str) -> str: 34 - """Render events timeline for a specific day.""" 33 + def activities_day(day: str) -> str: 34 + """Render the day view for a specific day.""" 35 35 if not DATE_RE.fullmatch(day): 36 36 return "", 404 37 37 ··· 45 45 46 46 47 47 @activities_bp.route("/api/day/<day>/events") 48 - def calendar_day_events(day: str) -> Any: 49 - """Return events for a specific day from facet event logs.""" 48 + def activities_day_events(day: str) -> Any: 49 + """Return timeline events for a specific day from facet event logs.""" 50 50 if not DATE_RE.fullmatch(day): 51 51 return "", 404 52 52 ··· 89 89 90 90 91 91 @activities_bp.route("/api/stats/<month>") 92 - def calendar_stats(month: str) -> Any: 92 + def activities_stats(month: str) -> Any: 93 93 """Return event counts per facet for a specific month. 94 94 95 95 Scans event files directly (including future dates) rather than relying ··· 113 113 114 114 115 115 @activities_bp.route("/api/day/<day>/activities") 116 - def calendar_day_activities(day: str) -> Any: 116 + def activities_day_activities(day: str) -> Any: 117 117 """Return enriched activity records for a specific day. 118 118 119 119 Loads activity records from all facets (or a single facet if ``facet`` ··· 213 213 214 214 215 215 @activities_bp.route("/api/activity_output/<path:filename>") 216 - def calendar_activity_output(filename: str) -> Any: 216 + def activities_activity_output(filename: str) -> Any: 217 217 """Serve an activity output file. 218 218 219 219 Only serves files under ``facets/`` in the journal directory. ··· 259 259 260 260 261 261 @activities_bp.route("/<day>/screens") 262 - def _dev_calendar_screens_list(day: str) -> str: 262 + def _dev_activities_screens_list(day: str) -> str: 263 263 """Render list of screen.jsonl files for a specific day.""" 264 264 if not DATE_RE.fullmatch(day): 265 265 return "", 404 ··· 279 279 280 280 @activities_bp.route("/<day>/screens/<stream>/<timestamp>") 281 281 @activities_bp.route("/<day>/screens/<stream>/<timestamp>/<filename>") 282 - def _dev_calendar_screens_detail( 282 + def _dev_activities_screens_detail( 283 283 day: str, stream: str, timestamp: str, filename: str = "screen.jsonl" 284 284 ) -> str: 285 285 """Render detail view for a specific screen.jsonl file."""
+3 -3
apps/search/workspace.html
··· 587 587 (function() { 588 588 const searchUrl = '{{ url_for("app:search.search_journal_api") }}'; 589 589 const dayResultsUrl = '{{ url_for("app:search.day_results_api") }}'; 590 - const calendarDayBase = '{{ url_for("app:activities.calendar_day", day="") }}'; 590 + const activitiesDayBase = '{{ url_for("app:activities.activities_day", day="") }}'; 591 591 592 592 // State 593 593 let currentQuery = ''; ··· 889 889 <span class="day-count">${dayData.total} match${dayData.total !== 1 ? 'es' : ''}</span> 890 890 `; 891 891 header.onclick = function() { 892 - window.location.href = calendarDayBase + dayData.day; 892 + window.location.href = activitiesDayBase + dayData.day; 893 893 }; 894 894 895 895 const resultsDiv = document.createElement('div'); ··· 920 920 function createResultItem(result) { 921 921 const item = document.createElement('a'); 922 922 item.className = 'result-item'; 923 - item.href = calendarDayBase + result.day; 923 + item.href = activitiesDayBase + result.day; 924 924 925 925 // Build facet badge 926 926 let facetBadge = '';