* fix: correct bi-weekly recurring task scheduling for multi-day patterns Fixes #1004 Previously, when a recurring task was set to repeat every N weeks (where N > 1) on multiple weekdays that span a week boundary (e.g., Saturday + Sunday), the algorithm incorrectly calculated the next occurrence dates. The issue was in the calculateWeeklyRecurrence function, which didn't properly determine when to add the interval skip for multi-weekday patterns. It would: - Correctly handle Sat -> Sun (adjacent days, same cycle) - Incorrectly handle Sun -> Sat (should skip weeks, but didn't) This fix improves the logic to: 1. Detect when the current day is the last weekday in the pattern cycle 2. Account for Sunday (day 0) wrapping around in the day-of-week numbering 3. Only add interval skips when truly moving to a new cycle, not when moving between weekdays within the same cycle Test coverage added for: - Bi-weekly Saturday + Sunday pattern (the reported bug) - Starting from different days in the pattern - Bi-weekly Tuesday + Thursday pattern - Tri-weekly Friday + Saturday + Sunday pattern * docs: update MEMORY.md with GitHub template requirements - Add detailed PR template requirements and structure - Expand bug report template requirements with all fields - Update last modified date
3.3 KiB
3.3 KiB
Claude Memory & Preferences
This document contains preferences, patterns, and memory items specific to working with Claude Code on the tududi project.
Pull Request Preferences
PR Template
- ALWAYS use the PR template from
.github/pull_request_template.md - Do NOT add the "🤖 Generated with Claude Code" footer to pull requests
- Required sections:
- Description: What does this PR do? Why is this change needed?
- Type of Change: Bug fix / New feature / Breaking change / Documentation
- Related Issues: Link issues using "Fixes #123"
- Testing: Describe testing steps and commands run
- Checklist: Mark all applicable items (including "This is not AI slop crap")
- Additional Notes: Any other context for reviewers
PR Creation Workflow
- Always create PRs against the
mainbranch - Use descriptive branch names following the pattern:
fix/,feature/,refactor/, etc. - Include comprehensive test coverage in PRs
Commit Message Preferences
General Rules
- Do NOT add
Co-authored-bytrailers to commit messages (set globally in~/.claude/CLAUDE.md) - Use conventional commit style when appropriate:
fix:,feat:,refactor:, etc. - Keep commit messages concise and descriptive
Fixup Commits
- Use
fixup!prefix for commits that should be squashed into previous commits - These are typically used with
git rebase --autosquash
Testing Preferences
Test Coverage Requirements
- All new features must include comprehensive unit tests
- Follow the Arrange-Act-Assert pattern (see testing.md)
- Test files should be colocated in
backend/tests/unit/matching the module structure
Running Tests
- Always run tests before pushing with
npm test - Pre-push hooks will automatically run linting, formatting, and tests
Codebase Patterns to Remember
Backend Patterns
- Follow the module architecture pattern described in backend-patterns.md
- Use repository pattern for data access
- Keep business logic in service files
Frontend Patterns
- TypeScript for new components
- Follow component organization in directory-structure.md
- Use Zustand for global state, SWR for server state
GitHub Issue Preferences
Bug Reports
- ALWAYS use the GitHub bug report template from
.github/ISSUE_TEMPLATE/bug_report.yml - Required fields:
- Description: Clear description of the bug
- Steps to Reproduce: Detailed steps to reproduce the issue
- Expected Behavior: What should happen
- Actual Behavior: What actually happens
- Operating System: User's OS
- Browser: Browser name and version
- Optional fields:
- Version: Tududi version (if known)
- Screenshots: Visual evidence of the issue
- Additional Context: Technical details (root cause, solution, files affected)
Common Issues & Solutions
Date Formatting
- Be consistent with date format handling across the application
- Pay attention to timezone handling in defer/scheduling features
URL Detection
- The inbox processing service has URL detection logic
- URLs are detected even without projects for bookmark tag display
Last Updated: 2026-04-12 Maintained by: Claude Code sessions - update as new patterns emerge