Add tab system for someday lists allowing categorization (e.g. Private,
Work, Family). Lists can be assigned to tabs via tag icon dropdown in
list headers. Tabs appear in the someday label column for filtering.
Double-click tab name to rename. Tabs persist in DB via new SomedayList.tab field.
Also add hover-overlay prev/next day/week navigation arrows on left and
right sides of the weekly grid, and fix first hour label clipping.
i18n: tab translations for EN, DE, FR, ES, IT.
v1.25.0
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Added 70+ translation keys across all 5 languages (EN/DE/FR/ES/IT)
- Replaced 45+ hardcoded strings in settings with translated versions
- Added flag emojis to language dropdown (🇬🇧🇩🇪🇫🇷🇪🇸🇮🇹)
- Fixed language dropdown jumping back to English (functional updater, correct fallback)
- Downgraded Synology calendar 405/404 errors to warnings for stale calendars
v1.24.0
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- API now handles two cases: send reset link (email only) and
reset password (token + newPassword)
- Generates UUID token stored on user with 1-hour expiry
- Sends styled HTML email with reset link via SMTP
- Prevents email enumeration (always returns success)
v1.23.0
- Fix setval(0) error in accountNumber migration (use GREATEST(..., 1))
- Add migration for dateVerticalAlign, dayHeaderGap, weekday settings, quoteLanguages
- Deploy scripts now fall back to db push if migrate deploy fails
v1.22.3
The standalone build already includes the correct server files.
Copying .next/server on top was overwriting middleware-manifest.json,
causing MODULE_NOT_FOUND errors at runtime.
v1.22.1
Users can now choose which languages their motivational quotes appear in
via toggle buttons in Settings. Added 45 curated quotes in French, Spanish,
and Italian. Quote language preference is stored per-user in the database.
v1.22.0
- Add French, Spanish, and Italian translations for full UI localization
- Add Italian to language selector; show native language names
- Fix Jump to Date calendar: use React portal with fixed positioning
to prevent clipping by overflow:hidden ancestors
- Fix font matching: time grid tasks inherit from task font settings
when at default values (0.75rem/500), matching someday list fonts
- CSS fallback chain: time-slot-task vars fall through to task vars
- Remove broken recite.vercel.app default quote URL
- Add date-fns locales (fr, es, it) for SimpleDatePicker
v1.21.0
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Show Account Number in Settings > Account for user identification
- Add weekly goals to JSON export/import with upsert-based merge
- Fix calendar events not appearing instantly (await cache ops, prevent
provider force-refresh from overwriting optimistic updates)
- Add Sign Out button in Settings > Account for mobile accessibility
- Fix dateVerticalAlign persistence in profile API
- Fix quote API error handling for non-JSON responses
- Add Synology to CalendarEvent source type union
v1.20.0
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add weekday case setting (Normal/Capitalize/Uppercase) with DB persistence
- Move provider icons to end of line (right-aligned with marginLeft: auto)
in both GridTaskBlock and TaskItem
- Make time grid task font inherit from task font settings as fallback
instead of separate hardcoded defaults (0.75rem/500 → task font values)
- Fix Jump to Date calendar: center-aligned dropdown, dark mode support
via CSS variables, proper border and shadow styling
- Add weekdayCase to Prisma schema, profile API, and translations (EN/DE)
v1.19.0
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add sync provider icons (Google, Microsoft, Apple, Synology) to
GridTaskBlock so they show in weekday time slots
- Add weekdayFormat and customWeekdayNames fields to Prisma schema
and profile API so custom weekday names persist across reloads
- Fix Jump to Date calendar z-index by elevating container when open
- Fix someday textarea font to inherit from CSS instead of hardcoded values
v1.18.0
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Show sync provider icons (Google, Microsoft, Apple, Synology) on both
someday and weekday tasks with fallback detection from externalId
- Remove hardcoded fontSize from someday tasks so they inherit CSS variables
- Remove line-height override for someday task text
- Bump day header z-index to 20 to prevent task overlap when scrolling
- Always propagate externalProvider when dragging tasks between slots
v1.17.2
- Add createSynologyTask: new tasks in synced lists push to Synology CalDAV
- Wire Synology create into POST /api/tasks when somedayList is synced
- Fix someday list title input using width:100% instead of flex:1, which
pushed the delete button off-screen making lists undeletable
- Slightly improved provider icon styling
v1.16.1
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Added updateSynologyTask and deleteSynologyTask functions that modify
VTODOs on the Synology CalDAV server. Wired into the sync PATCH handler
so completing/editing/deleting a Synology-synced task pushes changes back.
Also slightly increased provider icon size for better visibility.
v1.16.0
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The sync query filtered externalProvider for only 'google' and 'outlook',
missing 'synology'. This caused every sync cycle to treat all Synology
tasks as new, creating duplicates each time.
v1.15.10
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Synology tasks were not syncing because tsdav defaulted to VEVENT only.
Added explicit VTODO comp-filter to the CalDAV REPORT request.
Removed debug logging from sync routes.
v1.15.9
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Provider icon is now a sibling flex item inside .weekly-task-text
(same level as checkbox), not nested inside the title text span.
Larger size (11px) and higher opacity (0.6) for better visibility.
v1.15.8
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Tasks created locally in a synced someday list may not have
externalProvider set (if the sync to Google/etc failed). Now when
moving such a task to a weekday slot, the provider is inherited
from the source list and persisted to the DB.
v1.15.7
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Place the provider logo (Google/Microsoft/Apple/Synology) right after
the task title text so it's always visible and not hidden by the
task-actions toolbar. Only shown on weekday slots, not in someday area.
v1.15.5
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Use bottom: 100% instead of fixed top offset so toolbar always sits
above the task regardless of task height.
v1.15.4
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Show provider-specific icons (Google, Microsoft, Apple, Synology) before and after synced task titles
- Fix someday list reorder drag & drop: stable index calculation with drop indicator line
- Prevent dropping someday lists onto day slots (shows not-allowed cursor)
- Hide recurring button for someday tasks
- Fix Google Tasks subtask duplicates by filtering out child tasks from top-level list
v1.15.0
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Both boot-update.sh and update-server.sh were missing the
cp -r .next/server step, causing middleware-manifest.json
not found errors after deployment.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v1.14.1
- Move subtask indicator badge outside text span for visibility
- Prevent parent task from hijacking subtask drag events
- Restructure font settings to 2-row layout (font dropdown + size/weight)
- Fix someday horizontal scroll with callback ref wheel handler
- Sync new tasks in Google-linked someday lists to Google Tasks
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v1.14.0
Add ~30 curated quotes (15 DE + 15 EN) to local quote library. Goal API
now uses local quotes as fallback for all languages, with ZenQuotes only
for English users. Frontend fetchMotivationalQuote also falls back to
local quotes instead of hardcoded English string.
v1.13.0
- Add JSON export/import for all tasks, anyday lists, and projects (Settings > Account > Backup & Restore)
- Add merge and replace import modes with confirmation for destructive replace
- Add resizable notes sidebar with drag handle on left edge
- Add subtask count indicator (indigo pill) on tasks that toggles subtask list
- Add note indicator (amber pill) on tasks that toggles inline notes
- Show Account ID in Settings > Account as read-only identifier
- Fix goal save bug: saved goals matching default text are no longer ignored
- Fix calendar week number using Monday within visible range instead of middle day
- Fix calendar events not appearing instantly by delaying sync refresh 3s
- Grey out URL field when creating events on Google/Outlook calendars
v1.12.0
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>