Reproductions confirmed on2074881 in bounded test subprocess: weeklyINTERVAL100000000 BYDAY=MO exceeded2s;400-year civil span returned106751 days/15250 weeks instead146097/20871; yearlyMaxInt returned2024 from2026 (backwards) while reporting success. Invalid zone/start/end also reports complete=true. Draft implementation contract and failing tests are saved in isolated branch worktree; no production algorithm changes. Proposed exact anchored-week jumps, integer civil arithmetic, checked date construction and distinct exhaustion/incomplete outcomes. No arbitrary interval cap or new subset semantics. Fable prompt /tmp/oficina-calendar-recurrence-review/prompt.txt waits for root review scheduling. Failing tests are intentionally not pushed under the repository green-before-push rule.
Recurrence stepping bounds and strict completeness: audit and design review open
On branch fix/recurrence-stepping-bounds
Supporting overnight readiness from exact existing application branch2074881 (live binary d961b65). Investigate weekly BYDAY work proportional to INTERVAL, duration saturation beyond292years in civil date differences, and unchecked monthly/yearly multiplication. Reproduce in subprocesses with timeouts, preserve supported recurrence subset and original wall-clock/DST rules, and distinguish actual end from inability to advance so strict availability never claims free on incomplete work. No production algorithm edits until focused design review; no new copy. Fable review queued for20:50 quota reset. Existing application owner keeps broad branch/deployment ownership.
A valid-data completeness regression also fails: FREQ=WEEKLY;INTERVAL=20871;BYDAY=SA;COUNT=2 from 1600-01-01 should yield its second occurrence on 2000-01-01 (400 Gregorian years are exactly 20871 weeks). Current ExpandComplete returns no occurrences with complete=true. This demonstrates false free-time input to the strict reader, not merely a timeout risk. New tests and implementation contract remain local while intentionally red; production files unchanged. Review design must preserve ordinary COUNT/EXDATE, WKST, skipped dates and DST behavior.
Design revision1 REQUEST CHANGES by canonical Claude Fable5.1; revision2 APPROVED after simpler four-digit storage horizon, exact civil-day integers, pre-zone Gregorian existence and direct eligible-week jump. Implemented/pushed exactb0ef4fa6b62a0939821dbcdba1a35b08cee49bb1 from original application2074881. make ci green. All original red cases now pass, plus actual strict-store malformed-field regression, representable400000-week jump to9692-10-27, allfrequency huge intervals, horizon/COUNT/east-of-UTC tests, impossible ordinal/date and leap skips. Duration-span mutation and input-validity-removal mutation fail their intended assertions. No parser restriction, copy/schema, main integration or deploy. Whole-branch Fable review running; review evidence /tmp/oficina-calendar-recurrence-review/. This support branch does not approve original broad application history.
Actual hub CI now passed at b0ef4fa6b62a0939821dbcdba1a35b08cee49bb1 on fix/recurrence-stepping-bounds. Local make ci also passed; worktree clean. Independent Fable whole-branch review remains running. Support diff only: baseline 2074881 broad application branch retains existing ownership; no scaffold-main integration or deployment requested by this review.
Fable whole-branch review (claude-fable-5-1; branch-review.json) requested one correction: stopping on a reversed generated endpoint at a DST gap hid later valid occurrences. Confirmed red with daily Dublin 01:30–02:00 starting March 1 and an April 1 window (empty, incomplete). Commit 1a6dcd0753568e63b9cafeaaf2b75d1e807d1926 removes only that per-occurrence break and adds this regression. Invalid master endpoints still force strict incomplete through validInput. make ci passed before push. Final Fable delta review running; new actual CI pending. All bounds arithmetic/Gregorian proofs/COUNT ordering were accepted in first review.
FINAL: Fable delta APPROVE (canonical claude-fable-5-1) completes the prior whole-branch review at 1a6dcd0753568e63b9cafeaaf2b75d1e807d1926. Actual hub CI passed at this exact tip; local make ci passed. Evidence /tmp/oficina-calendar-recurrence-review/{branch-review.json,delta-review.json,final-gate2.log,gap-before.log}. All requested support implementation/review/checks complete. Not merged or deployed: base remains original broad application branch 2074881, owner/root must integrate only this support diff through the Calendar release review. Known pre-existing gap-day end-before-start behavior remains outside this approved arithmetic scope; follow-up should protect that day without truncating later occurrences. Horizon refusal remains conservative incomplete, including UNTIL pathological intervals. Worktree clean and preserved.
Task9 fix/edit-reminder-reschedule from frozen10d6422 implements explicit whole-release Fable correction: updateEventOn reschedules existing event rules within its transaction; SplitSeries reschedules head after tail/override updates. No new tail inheritance policy. Real HTTP regressions reproduce stale earlier/later due times, retained old claims/retry, cancelled event and finished head queues; injected queue failures verify event/split rollback. Unrelated reminders must remain unchanged. No live mail/data, deploy or Fable retry. Evidence /home/paulca/.cache/oficina-calendar-reminder-reschedule.
Task9 frozen95dc52d4160a67f69a7b865067fd426d75b28a3f on fix/edit-reminder-reschedule (single commit beyond10d6422). Full make ci, calendar/calendartest race and exact-SHA hub CI PASS. Both reschedule-call removal mutations killed; actual edit/split regressions verify due changes, cancelled/finished queues removed, stale claims invalidated, unrelated jobs unchanged, and queue failure rolls back event/head/tail changes. No reminder policy, schema or export changes. Evidence /home/paulca/.cache/oficina-calendar-reminder-reschedule/evidence.json. New Fable review pending quota reset; task remains Started. No merge, deploy, live mail or data changes.
User requested pending Fable reviews after reported availability. Cumulative Calendar95dc52d vs1a6dcd0 submitted once through configured command-code claude-fable-5 with frozen source/evidence and prior full-release findings. Provider immediately exited5 weekly quota; result empty, NO VERDICT, no active handle or retry. Review package /home/paulca/.cache/oficina-calendar-fable-review-95dc52d remains ready. Root checking installed Claude subscription route. Export finding remains unresolved; no approval/deploy inferred.
Fable subscription review COMPLETE: APPROVE cumulative95dc52d vs1a6dcd0 patch scope only. Actual claude-fable-5-1, exit0/end_turn, success/non-error, session161fcea0-4fe2-494e-9593-722a1a245211. Receipt and final verdict: /home/paulca/.cache/oficina-calendar-fable-review-95dc52d/{receipt.json,verdict.txt}. Prior command-code quota failure remains no-verdict separately. Reviewer accepts B23 gap stopgap and transactional reminder repair/tests. Nonblocking notes: adjacent padded days refuse; omitted gap chip lacks individual UI escape; notes-only edit can requeue fired reminder; split tail inheritance remains absent. Export blocker untouched; not whole Calendar release/main-merge approval (main ecb0df9), no deployment.