* Fix notification deduplication to prevent pile-up in navbar (#944) When tasks/projects remained pending for multiple days, duplicate notifications accumulated in the navbar instead of showing only the most recent one. Updated notification services to properly handle existing notifications: - Delete unread notifications before creating new ones - Respect dismissed notifications (don't recreate) - Respect read notifications (don't duplicate) Changes: - Updated dueTaskService, deferredTaskService, and dueProjectService - Added comprehensive unit tests with 8 test cases Fixes #944 * Fix lint errors and add GitHub bug template reminder to docs
2.7 KiB
2.7 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 Descriptions
- Do NOT add the "🤖 Generated with Claude Code" footer to pull requests
- Keep PR descriptions focused on the changes and test plan
- Follow the standard format:
- Summary section with bullet points
- Changes section with detailed breakdown
- Test plan section with checkboxes
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 follow the GitHub bug template (
.github/ISSUE_TEMPLATE/bug_report.yml) - Include all required fields: Description, Steps to Reproduce, Expected Behavior, Actual Behavior, OS, Browser
- Add technical context in Additional Context section (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-03-14 Maintained by: Claude Code sessions - update as new patterns emerge