- Migration 004: adds start_date column to financing_plans (DEFAULT CURRENT_DATE)
- generatePaychecks: skips financing plans whose start_date is after the target month
- buildVirtualPaychecks: same start_date guard for virtual previews (already applied)
- generatePaychecks upsert: preserves gross/net when paycheck has any paid bills
- financing.js POST/PUT: accept and store start_date
- Financing.jsx: add Start Date field to create/edit form (defaults to today)
- CLAUDE.md: document start_date guard and paid-paycheck refresh protection
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Sub-agents must never call td commands directly. Concurrent writes
from parallel agents corrupt the SQLite database. Only the
orchestrator manages td task lifecycle.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Sets up the full monorepo structure with:
- Multi-stage Dockerfile (client-build + production stages)
- docker-compose.yml for production, docker-compose.dev.yml overlay for development
- Express server (port 3000) with pg pool, health route, and SPA static file serving
- React 18 + Vite client with react-router-dom v6, nav bar, and placeholder page components
- .env.example with PostgreSQL and app config
- Empty db/migrations/ directory for future migrations
- CLAUDE.md updated with development workflow commands
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Document commit-per-task, documentation hygiene, and td lifecycle requirements
for all agents working in this repo.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>