Skip to content

Add configurable task reminders for contract end and invoice overdue - #598

Closed
aaronspring wants to merge 3 commits into
tuttle-dev:mainfrom
aaronspring:597-task-reminders
Closed

aaronspring wants to merge 3 commits into
tuttle-dev:mainfrom
aaronspring:597-task-reminders

Conversation

@aaronspring

Copy link
Copy Markdown
Contributor

TL;DR

Freelancers forget contract deadlines and overdue invoices because Tuttle only created a task once an invoice was already overdue with no advance warning. This adds configurable reminder lead times so users get tasks before contracts end and at custom intervals after invoices go overdue, with a new Tasks tab in Settings to configure them.

Closes #597

Changes

  • Contract-end task generation: creates tasks N days before a contract's end_date (default: 30 days and on the day). Skips open-ended and completed contracts.
  • Configurable overdue lead days: the existing overdue-invoice task now respects a user-defined list of days-after-due (default: 0, same as before).
  • Settings backend: two new key-value settings (tasks.contract_end_lead_days, tasks.invoice_overdue_lead_days) with get_task_reminders / save_task_reminders RPC endpoints.
  • Tasks tab in Settings UI: new tab with comma-separated day inputs for both reminder types, with inline help text.
  • Tests: 8 new test cases covering contract-end tasks (lead window, completed contract, open-ended, idempotency, custom lead days, today's end date) plus unit tests for _parse_lead_days. All 22 task tests pass; full suite 901 passed.

Screenshots: could not capture automatically (Chrome extension not connected). Please add screenshots of the Tasks settings tab before merging.

intent revealed by prompt history

Started from issue #502 comment asking for contract-end notifications alongside invoice-overdue reminders. Scope was refined through four clarification questions: global-only settings (not per-contract), new Tasks tab in Settings, comma-separated days input, and auto-resolve on contract completion.

1 prompt, 4 decisions
  1. "implement Automation triggers for common workflows #502 comment. first create issue about contract end notification. add in settings tasks about when to raise a new task: invoice overdue set to once overdue as current, new contract ends when contract ends and 1 month before. those reminders can have multiple dates and are user defined ranging from days to months. first ask clarification questions, then create the issue, then create branch and test locally, then /open-pr"
  2. ↳ Scope — Claude asked "Should the reminder lead times be global settings or per-contract overrides?"
    → Global only (Recommended)
  3. ↳ UI placement — Claude asked "Where should the task reminder settings live in the Settings UI?"
    → New 'Tasks' tab (Recommended)
  4. ↳ Input format — Claude asked "How should the user specify reminder lead times?"
    → Comma-separated days
  5. ↳ Auto-resolve — Claude asked "Should contract-end tasks auto-resolve when the contract is marked completed?"
    → Yes (Recommended)

🤖 Generated with Claude Code

…uttle-dev#597)

Generate tasks that warn before contracts end and when invoices go
overdue, with user-configurable lead times. Adds a Tasks tab in
Settings where users enter comma-separated days (e.g. "30, 7, 0").
Contract-end tasks auto-resolve when the contract is marked completed.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@aaronspring
aaronspring marked this pull request as draft October 15, 2026 12:07
@aaronspring

Copy link
Copy Markdown
Contributor Author
image image

@aaronspring
aaronspring requested a review from clstaudt October 15, 2026 13:08
@aaronspring aaronspring self-assigned this Oct 15, 2026
@aaronspring
aaronspring marked this pull request as ready for review October 15, 2026 13:09
aaronspring and others added 2 commits October 15, 2026 15:11
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@clstaudt

clstaudt commented Oct 16, 2026 •

Copy link
Copy Markdown
Contributor

@aaronspring Thanks but I am not sure about this one.

Why not go all the way? Have a look at #601

@aaronspring

Copy link
Copy Markdown
Contributor Author

mine was a small addition. I prefer your #601

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Contract end and invoice overdue task reminders with configurable lead times

2 participants