v1.4.0 Phase 3: extract dashboard assembly, drop live SPC fan-out, consolidate match-context (#58) #110
No reviewers
Labels
No labels
area:ai
area:ci-cd
area:notifications
area:observability
area:public-pages
backlog
bug
duplicate
enhancement
help wanted
invalid
question
type:decision
type:feature
type:infra
type:maintenance
type:security
v1.0.1
v1.1.0
v1.2.0
v1.3.0
v2.0.0
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
rbrooks/WeatherBot!110
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/v1.4.0-phase3-dashboard"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Final v1.4.0 phase — resolves F-19.
Dashboard extraction + no more live fan-out
The
/route was ~318 lines and awaited a 13-request live SPC fan-out on every page load. That work is redundant:poll_spc_dashboardalready upserts dashboard SPC records for all enabled+ready locations every cycle (independent of subscriptions — its docstring says so).app/services/dashboard.py→build_dashboard_context(request, user)does all assembly and returns the template context. The/route is now auth + service call + render (~10 lines)._is_liveis unused by any template (no template change needed). The dead_on_notifythe audit cited was already removed by the #53 SSE broker rewrite — only the live_on_notificationremains, left intact.Acceptance criteria met: zero upstream requests on load ✓, one shared per-day risk selection (
choose_highest_risk_for_point, owned bypoll_spc_dashboard) ✓, route reduced to auth + service + render ✓.Match-context consolidation
_spc_outlook_location_match_context(notification path) andspc_outlook_match_context(impact path) had drifted (guidancekey +_metadata_valuesanitization on one side;is_extended/spc_product_familyon the other). Now onespc_outlook_match_contextinspc_impacts.py— the superset (sanitization + guidance + extended support);_metadata_valuemoved there (existing one-way import direction, no cycle). The old builder is deleted and its caller routed through the shared one.Behavior notes: the impact path now also gets
guidance+ sanitized values (the intended drift fix); the notificationlocation_match.product_familyis now the canonicalspc_convective_outlook(a context string the summary validators don't key on —payload.product_familyis unchanged). A location with no dashboard record shows an SPC card only after the nextpoll_spc_dashboardcycle (steady-state coverage unchanged).Testing (dev server)
ruff clean; bulk 670 passed; Postgres tier 4 passed.
Closes #58
🤖 Generated with Claude Code