diff --git a/frontend/src/routes/[fam]/[username]/+page.svelte b/frontend/src/routes/[fam]/[username]/+page.svelte index b12304a..b92dae4 100644 --- a/frontend/src/routes/[fam]/[username]/+page.svelte +++ b/frontend/src/routes/[fam]/[username]/+page.svelte @@ -498,9 +498,7 @@ const counts: number[] = []; for (let i = 0; i < 7; i++) { const d = addDays(weekStart, i); - counts.push( - weekCompletions.filter((c) => (c.date?.slice(0, 10) || c.date) === d).length - ); + counts.push(weekCompletions.filter((c) => (c.date?.slice(0, 10) || c.date) === d).length); } return counts; }); @@ -998,10 +996,18 @@ if (optimistic) { famStore.applyRecord('completions', optimistic, 'delete'); } + const msg = e instanceof Error ? e.message : String(e); + if (/CHORE_GONE/.test(msg)) { + // Drop the dead card synchronously so a second tap can't re-enter + // before the resync round-trip finishes (the repeated 400s). + famStore.applyRecord('assigned_chores', chore, 'delete'); + console.error( + `[diag] toggle CHORE_GONE(drop-card) member=${memberId} fam=${famId} chore=${chore.id}` + ); + } try { await famStore.resync(); } catch {} - const msg = e instanceof Error ? e.message : String(e); showToast( /CHORE_GONE/.test(msg) ? 'This chore was changed — list refreshed.' @@ -1231,7 +1237,12 @@ {/if} - + {#if claimableRewards().length === 0}
{@html checkCircleIcon}No outstanding claims @@ -1396,12 +1407,7 @@ {/if}
- 📝 Showing yesterday — tap anything you missed. Undo lives on today's view. - + 📝 Showing yesterday — tap anything you missed. Undo lives on today's view. +
{/if}
@@ -1699,7 +1709,11 @@

All done!

{:else} {#each dailyPending as chore} -