Merge develop: SSE, make-now, custom filters, coverage audit#36
Merged
featurecreep-cron merged 6 commits intomainfrom Apr 4, 2026
Merged
Merge develop: SSE, make-now, custom filters, coverage audit#36featurecreep-cron merged 6 commits intomainfrom
featurecreep-cron merged 6 commits intomainfrom
Conversation
…overy Remove clear_before_generate from scheduler — generation already overwrites atomically, clearing first risks data loss on failure. Remove the UI toggle and clear_callback plumbing. Improve frontend empty states: distinguish "no profiles visible" from "no menu generated". Add retry button that re-triggers generation instead of just reloading. Check generation status on 404 to surface errors or in-progress state instead of silently showing empty. Rename clearRecipes to clearMenu for consistency. Show Current Menu section even when empty so the clear button remains accessible.
Add three lint test classes to test_architecture.py: - TestNoBroadExcept: enforces specific exception types or explicit per-line noqa justification (no file-level grandfathering) - TestNoFrameworkImportsInServices: services stay framework-independent - TestNoDirectServiceInstantiation: routes use DI, not constructors Narrow 12 broad except clauses to specific types: - OSError for requests/file I/O (RequestException inherits IOError) - (ValueError, UnicodeDecodeError) for base64 decode - (httpx.HTTPError, OSError) for connection tests - (OSError, ValueError) for icon generation/PIL Remove 2 unnecessary try/except blocks around settings_service.get_all() (in-memory dict read behind null guard, can't fail). 8 remaining broad excepts justified with inline noqa comments: state machines, shutdown isolation, injected callbacks, health check.
- Add /api/menu/stream SSE endpoint for push notifications (generating, menu_updated, menu_cleared events) replacing 60s polling - Fix QR code extending below viewport with multiple menus - Add prominent date display on generated menu screen - Thread clear_others flag through generation pipeline as SSE-only (not persisted in JSON to avoid stickiness) - Gate generating/cleared events on kiosk mode — customer phones silently update without spinner or blank screen - Add debounced loadMenu to prevent concurrent fetch races - Bound subscriber queues (maxsize=64) to prevent zombie buildup
…hine New test files: - test_generation_sse.py: pub/sub lifecycle, event delivery, bounded queues - test_menu_stream.py: SSE endpoint wiring, keepalive, subscriber cleanup - test_template_service.py: name validation, CRUD, slot expansion, gen plan - test_weekly_generation_service.py: plan CRUD, state transitions, distribution - test_recipe_detail_service.py: food resolution, ingredient extraction Expanded existing: - test_scheduler_service.py: meal plan pipeline, cleanup, weekly callback - test_solver.py: cookedon/createdon constraints, labels, soft constraints - test_api.py: profile GET/POST/PUT/PATCH/DELETE routes with admin auth - test_services.py: wait_for_completion, shutdown, temp file cleanup
# Conflicts: # morsl/services/scheduler_service.py # tests/test_scheduler_service.py # tests/test_services.py # web/js/app.js
featurecreep-cron
added a commit
that referenced
this pull request
Apr 6, 2026
Merge develop: SSE, make-now, custom filters, coverage audit
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Context
Feature branch
feat/makenow-and-custom-filtersmerged into develop, resolving divergentclear_before_generateimplementations (took theclear_othersflag pattern from the feature branch).