Completing a recurring parent advances recurring subtasks a second time

オープン
#3,244 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
50/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
活発
技術スタック
javascript, php
領域
backend, frontend

調査の方向性

説明されているチェックボックスの手順を使って Tasks の Web UI で繰り返しシナリオを再現し、続いて親の完了処理の経路と、繰り返しサブタスクの再帰的な処理を追跡します。報告された週ごとの日付に対して修正を検証します。完了後にすでに再スケジュールされた子は、親を完了したときに再度先へ進められてはなりません。

索引モデルが issue の本文から書いたものです。

説明

Steps to reproduce
  1. In the Nextcloud Tasks web UI, create a parent task with DTSTART and DUE set to today.
  2. Configure the parent to repeat weekly.
  3. Add a subtask with the same start date, due date, and weekly recurrence.
  4. Complete the subtask using its checkbox.
  5. Observe that the subtask is rescheduled by one recurrence interval.
  6. Complete the parent task using its checkbox.
Expected behavior

Completing the recurring parent should not silently complete the already-rescheduled occurrence of a recurring subtask and advance it a second time.

Possible safe behaviors would be:

  • do not cascade completion to a recurring child whose current occurrence is later than the parent's completed occurrence;
  • ask which open subtasks should be completed, as discussed in #2376; or
  • prevent completion of the parent until its current subtasks are complete, without affecting their newly generated occurrences.
Actual behaviour

Completing the child advances it once, as expected. Completing the parent immediately afterwards recursively completes the child's newly scheduled occurrence and advances the child a second time.

In a clean weekly reproduction:

  • parent: 2026-08-26 -> 2026-09-02;
  • child after completing the child: 2026-08-26 -> 2026-09-02;
  • same child after subsequently completing the parent: 2026-09-02 -> 2026-09-09.

The 2026-09-02 child occurrence is therefore skipped without a warning. Recurring sibling subtasks that were not completed individually were advanced once by completing the parent.

This was reproduced entirely in the Tasks web UI with temporary tasks. No external CalDAV client was involved.

Tasks app version

0.18.1

CalDAV-clients used

None for reproduction

Browser

Google Chrome

Client operating system

macOS

Server operating system

Official Nextcloud Docker image (nextcloud:34.0.2-apache)

Web server

Apache

Database engine version

PostgreSQL

PHP engine version

Bundled with the official Nextcloud 34.0.2 Apache image

Nextcloud version

34.0.2

Updated from an older installed version or fresh install

Updated from an older version

List of activated apps

Not relevant; reproduced using the Tasks web UI only.

Nextcloud configuration

Standard containerized installation. No custom Tasks patch.

Web server error log

No related error.

Log file

No related error.

Browser log

No related error.

Additional info

This is related to, but distinct from, #2376. That issue covers recursively completing open subtasks in general. This report covers the recurrence-specific consequence: an already completed and rescheduled child occurrence is completed again when the parent is completed, silently skipping the next occurrence.

Current workaround: use a permanent, undated, non-recurring parent as a container and never complete it; only the subtasks recur and are completed.

主要言語
JavaScript
スター
710
フォーク
125
平均マージ
19時間 37分
マージ済み PR(30日)
12

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

nextcloud/tasks のほかの issue

nextcloud/tasks の issue をすべて見る

似ている issue

JavaScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。