fix: DST-aware calendar and ghost recurrence guard
ci / docker (push) Successful in 6m8s

This commit is contained in:
2026-09-05 20:47:07 +08:00
parent 27432fa2e2
commit 32d6fe9424
3 changed files with 127 additions and 16 deletions
+2 -2
View File
@@ -65,8 +65,8 @@ async function loadCalendar(range?: { startStr?: string; endStr?: string }) {
endExclusive.setDate(endExclusive.getDate() - 1)
const end = dateKey(endExclusive)
await safe(async()=>{
const tzOffset = -new Date().getTimezoneOffset()
const rows = await request(`/calendar?start=${start}&end=${end}&timezone_offset=${tzOffset}`) as Array<{id?:string;task_id:string;recurrence_id?:string|null;title:string;due_at?:string;occurrence_at:string;version?:number}>
const tzName = Intl.DateTimeFormat().resolvedOptions().timeZone || 'UTC'
const rows = await request(`/calendar?start=${start}&end=${end}&timezone=${encodeURIComponent(tzName)}`) as Array<{id?:string;task_id:string;recurrence_id?:string|null;title:string;due_at?:string;occurrence_at:string;version?:number}>
calendarTasks.value = rows.map(row=>({
id: row.recurrence_id ? `${row.task_id}:${row.occurrence_at}` : (row.id ?? row.task_id),
title: row.title,