Skip to content

feat(tasks): add recurring task support with configurable intervals - #3230

Open
desireddymohithreddy0925 wants to merge 15 commits into
Priyanshu-byte-coder:mainfrom
desireddymohithreddy0925:feature/recurring-tasks
Open

feat(tasks): add recurring task support with configurable intervals#3230
desireddymohithreddy0925 wants to merge 15 commits into
Priyanshu-byte-coder:mainfrom
desireddymohithreddy0925:feature/recurring-tasks

Conversation

@desireddymohithreddy0925

Copy link
Copy Markdown
Contributor

Summary

Implements a comprehensive recurring tasks engine, allowing users to define daily, weekly, monthly, and custom intervals for tasks, drastically reducing manual data entry for repetitive work.

Closes #2888

Type of Change

  • 🐛 Bug fix (non-breaking change that fixes an issue)
  • ✨ New feature (non-breaking change that adds functionality)
  • 💥 Breaking change (fix or feature that changes existing functionality)
  • 📝 Documentation update
  • 🎨 Code style update (formatting, renaming)
  • ♻️ Refactoring (no functional changes)
  • 🧪 Testing
  • 🏗️ Build / CI/CD / Infrastructure

Description

This PR fundamentally enhances the task management system by supporting programmatic task cloning based on user-defined recurrence rules.

Changes made:

  • Database Schema Upgrades: Introduced a recurrence_config JSONB column to the tasks table via migration, cleanly encompassing the { type, intervalDays, endsAfter } schema. Added a recurrence_count integer to track progression toward the optional endsAfter limits.
  • Backend Auto-Generation: Intercepted task completion logic in PUT /api/tasks/[id].
    • Upon successful task completion, the server checks the recurrence config.
    • Dynamically calculates the due_date offset for the next occurrence.
    • Automatically spawns a new task record mimicking the previous one.
    • Safely zeroes out the recurrence_config on the historic task so it doesn't repeatedly trigger.
  • Frontend Configuration UI: Rewrote the inline task creation UI in ProjectMilestones.tsx. Users can select recurrence drop-downs and custom intervals before creating the task.
  • Visual Cues: Added a subtle Repeat icon next to active recurring tasks to signal their state in the list view.

Testing

  • Verified daily, weekly, monthly, and custom date offset calculations mathematically.
  • Ensured endsAfter logic correctly terminates the generation cycle.
  • Verified that dropping recurrence_config on completed tasks prevents infinite loops.
  • Executed local static analysis (pnpm typecheck) seamlessly.

Screenshots / Screen Recording

(Attach a screenshot of the new recurring settings dropdown and the repeat icon indicator next to a task)

@github-actions github-actions Bot added gssoc26 GSSoC 2026 contribution type:feature GSSoC type bonus: new feature type:testing GSSoC type bonus: tests (+10 pts) labels Jul 24, 2026
@github-actions github-actions Bot added type:bug GSSoC type bonus: bug fix type:design GSSoC type bonus: UI/design (+10 pts) type:performance GSSoC type bonus: performance (+15 pts) labels Jul 24, 2026
@github-actions

Copy link
Copy Markdown

GSSoC Label Checklist 🏷️

@Priyanshu-byte-coder — please apply the appropriate labels before merging:

Difficulty (pick one):

  • level:beginner — 20 pts
  • level:intermediate — 35 pts
  • level:advanced — 55 pts
  • level:critical — 80 pts

Quality (optional):

  • quality:clean — ×1.2 multiplier
  • quality:exceptional — ×1.5 multiplier

Validation (required to score):

  • gssoc:approved — counts for points
  • gssoc:invalid / gssoc:spam / gssoc:ai-slop — does not score

Type labels (type:*) are auto-detected from files and title. Review and adjust if needed.
Points formula: (difficulty × quality_multiplier) + type_bonus

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gssoc26 GSSoC 2026 contribution type:bug GSSoC type bonus: bug fix type:design GSSoC type bonus: UI/design (+10 pts) type:feature GSSoC type bonus: new feature type:performance GSSoC type bonus: performance (+15 pts) type:testing GSSoC type bonus: tests (+10 pts)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(tasks): add recurring task support with configurable intervals

1 participant