feat(daily): ship daily detection off, and say it's experimental

Dailiness is guessed from the source's wording, which is a weak signal
and wrong in both directions. Guessing on a reader's behalf and hoping
they notice is the wrong default for a checklist they may build a streak
on, so `detectDaily` now starts false and the control carries an
Experimental tag saying what it does and doesn't know.

The default applies to new readers only — a stored `prefs` keeps its
value, because switching it off under someone who has been ticking
auto-detected checklists would pull those chips out of the strip with no
explanation. Nothing is deleted either way.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Lucas Winther
2026-08-16 20:57:26 +02:00
co-authored by Claude Opus 5
parent 3a70672d22
commit 3434ac02cf
4 changed files with 28 additions and 10 deletions
+9 -5
View File
@@ -87,9 +87,9 @@ export function Controls({
</label>
{/* Detection reads the source's wording and is wrong in both
directions. Off leaves only the events the reader marked, and
discards nothing — every mark and logged day survives, so it can
be switched back on. */}
directions, so it ships off and says so. Off leaves only the
events the reader marked, and discards nothing — every mark and
logged day survives, so it can be switched back on. */}
<label className="flex cursor-pointer select-none items-start gap-2 text-xs text-muted">
<input
type="checkbox"
@@ -99,9 +99,13 @@ export function Controls({
/>
<span>
Spot daily events automatically
<span className="ml-1.5 rounded-full border border-hairline px-1.5 py-0.5 align-[1px] text-[0.5625rem] font-medium uppercase tracking-wider text-faint">
Experimental
</span>
<span className="mt-0.5 block max-w-xs leading-relaxed text-faint">
Off, only events you mark yourself get a checklist. Your ticks
and streaks are kept either way.
Guessed from what the source wrote, so it misses some and
invents others. Off, only events you mark yourself get a
checklist. Your ticks and streaks are kept either way.
</span>
</span>
</label>