- Modal: revert to inline styles (Tailwind fixed class broken).
Added max-height: 80vh with overflow-y: auto for scrollable content.
- Template configs: preview is now per message slot via dropdown
(assets added/removed/renamed/deleted, periodic, scheduled, memory)
instead of hardcoded to assets_added only.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Backend: Fix CORS wildcard+credentials, add secret key warning, remove raw
API keys from sync endpoint, fix N+1 queries in watcher/sync, fix
AttributeError on event_types, delete dead scheduled.py/templates.py,
add limit cap on history, re-validate server on URL/key update, apply
tracking/template config IDs in update_target.
HA Integration: Replace datetime.now() with dt_util.now(), fix notification
queue to only remove successfully sent items, use album UUID for entity
unique IDs, add shared links dirty flag and users cache hourly refresh,
deduplicate _is_quiet_hours, add HTTP timeouts, cache albums in config
flow, change iot_class to local_polling.
Frontend: Make i18n reactive via $state (remove window.location.reload),
add Modal transitions/a11y/Escape key, create ConfirmModal replacing all
confirm() calls, add error handling to all pages, replace Unicode nav
icons with MDI SVGs, add card hover effects, dashboard stat icons, global
focus-visible styles, form slide transitions, mobile responsive bottom
nav, fix password error color, add ~20 i18n keys (EN/RU).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Modal: use inline styles instead of Tailwind classes for position:fixed
overlay (Tailwind v4 classes weren't applying correctly inside flex)
- Move password modal outside the flex container to top level
- Replace logout text button with SVG logout icon (16x16, Lucide style)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- New Modal.svelte component: overlay with backdrop click to close,
title bar, reusable via children snippet
- Layout: password change moved from inline sidebar form to modal
dialog. Clean UX with current + new password fields.
- Users page: 🔑 button per user opens modal for admin to set a
new password (no current password required for admin reset)
- Backend: PUT /api/users/{id}/password (admin only, min 6 chars)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>