super-productivity/e2e/tests/recurring
Johannes Millan 7f604f68f7
feat(task-repeat): default skip-overdue for new everyday recurring tasks (#8861)
* feat(task-repeat): default skip-overdue for new everyday recurring tasks

New recurring configs now default skipOverdue ("Don't let overdue instances
pile up") to ON only for a plain everyday schedule — the "Daily" preset or a
CUSTOM every-single-day cycle. That is the one case where the option is both
useful and provably safe: everyday tasks are the only schedule that actually
piles up (one empty overdue copy per missed day), and today is always
scheduled so a missed instance regenerates the same day and can never
silently vanish (it cannot even drop to zero).

Every other schedule stays OFF — workday/weekly/monthly/yearly and every-N-day
custom cycles keep their one missed occurrence visible, so a real obligation
(pay rent on the 1st, renew the domain) never disappears until its next
occurrence. Deriving the default purely from the effective schedule means the
"Daily" preset and a CUSTOM every-day cycle (the same schedule entered two
ways) get the same default — no "same schedule, different default" surprise.

The default is seeded from the chosen schedule in both config-creation paths:
the repeat dialog (re-derived from the final schedule on save, and skipped
when the user explicitly toggled the Advanced checkbox) and the inline
add-task-bar recurrence. Existing configs and DEFAULT_TASK_REPEAT_CFG
(skipOverdue: false) are unchanged; only newly created configs are affected.

Supersedes the broader daily+Mon-Fri variant, dropping the schedule-change
checkbox re-sync machinery: an Advanced checkbox opened on a Daily config and
then switched may briefly show a stale ON, but save always persists the safe
re-derived value.

* docs(task-repeat): clarify custom every-day default; signpost baseline

Multi-review follow-ups (no behavior change):
- Wiki 2.06 + 4.13: a CUSTOM every-single-day cycle also defaults skipOverdue
  ON (it is the same schedule as the Daily preset); "off" now reads "custom
  cycles longer than a day" so the docs match getDefaultSkipOverdue.
- Comment on DEFAULT_TASK_REPEAT_CFG.skipOverdue pointing to the schedule-aware
  creation default, so the model's `false` baseline is not mistaken for the
  effective default.
- Tighten the save() display-gap comment: the cosmetic seeded-ON/persist-OFF
  gap applies to any new non-Daily config whose Advanced panel is opened
  untouched, not only a Daily→switch.

* refactor(task-repeat): use type-only import in skip-overdue predicate

TaskRepeatCfgCopy is used only in type position; match the codebase's import type convention (58 other files). No behavior change.
2026-07-08 19:55:37 +02:00
..
invalid-clock-string-bug-7067.spec.ts Update recurrent task calendar and general calendar design (#8017) 2026-06-09 16:30:22 +02:00
recurring-future-start-date-bug-6856.spec.ts Update recurrent task calendar and general calendar design (#8017) 2026-06-09 16:30:22 +02:00
recurring-missed-day-bug-4559.spec.ts refactor(ui): replace custom SVG icons with Material font ligatures (#7575) 2026-05-13 14:19:45 +02:00
recurring-move-start-date-earlier-bug-7423.spec.ts test(e2e): harden flaky recurring start-date specs via shared helpers 2026-06-05 12:29:08 +02:00
recurring-move-start-date-earlier-no-instance-bug-7724.spec.ts test(e2e): harden flaky recurring start-date specs via shared helpers 2026-06-05 12:29:08 +02:00
recurring-preserve-past-due-day-bug-7344.spec.ts chore(task-repeat): revert RRULE Phase 1 from master (#7948) Develop the full RFC-5545 RRULE epic on the long-running feat/rrule-epic branch and merge once complete and testable in final form, rather than landing 13 phases into master one half-state at a time. Work preserved on feat/rrule-epic. Not yet shipped (post-v18.9.1), so no user impact. 2026-06-09 13:56:38 +02:00
recurring-start-date-epoch-bug-6860.spec.ts test(recurring): pin clock in #6860 helper spec to fix date-dependent flake 2026-06-16 11:52:44 +02:00
recurring-startdate-to-today-creates-real-instance-bug-7923.spec.ts test(e2e): harden flaky recurring start-date specs via shared helpers 2026-06-05 12:29:08 +02:00
recurring-task.spec.ts feat(tasks): redesign add-task-bar layout, toggles, note field & a11y (#8812) 2026-07-07 16:26:36 +02:00
repeat-custom-weekday-checkboxes-frozen-bug-8025.spec.ts chore(task-repeat): revert RRULE Phase 1 from master (#7948) Develop the full RFC-5545 RRULE epic on the long-running feat/rrule-epic branch and merge once complete and testable in final form, rather than landing 13 phases into master one half-state at a time. Work preserved on feat/rrule-epic. Not yet shipped (post-v18.9.1), so no user impact. 2026-06-09 13:56:38 +02:00
repeat-edit-strands-today-bug-7951.spec.ts test(e2e): harden flaky recurring start-date specs via shared helpers 2026-06-05 12:29:08 +02:00
repeat-task-day-change-bug-6230.spec.ts Android soft-keyboard: fix dark-theme white flash on resize (#7839) 2026-05-28 16:56:21 +02:00
repeat-task-first-occurrence-bug-5594.spec.ts chore(task-repeat): revert RRULE Phase 1 from master (#7948) Develop the full RFC-5545 RRULE epic on the long-running feat/rrule-epic branch and merge once complete and testable in final form, rather than landing 13 phases into master one half-state at a time. Work preserved on feat/rrule-epic. Not yet shipped (post-v18.9.1), so no user impact. 2026-06-09 13:56:38 +02:00
repeat-tasks-today-bug-5976.spec.ts fix(repeat): add event loop yield and isPaused filter (#5976) 2026-01-13 18:26:45 +01:00
repeat-timed-cold-reopen-day-change.spec.ts Update recurrent task calendar and general calendar design (#8017) 2026-06-09 16:30:22 +02:00
skip-overdue-default-8644.spec.ts feat(task-repeat): default skip-overdue for new everyday recurring tasks (#8861) 2026-07-08 19:55:37 +02:00