Docker layer caching was serving old site content after git pull
because file timestamps didn't change enough to bust the cache.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
"Contact us" now opens an inline form that submits a ticket
to ERPNext via POST /api/v1/tickets with category "quote".
Pre-fills entity name, FRN, and overdue items from the check.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Spreading a string gives individual characters ("C,a,r,i,e,r...").
Filter as string values instead.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Tailwind purges bg-orange-500 since it's not in the safelist.
Use inline style to guarantee the orange button renders.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Replace rsync deploy with git pull workflow
- Add CLAUDE.md with deployment rules to prevent file clobbering
- Add .gitignore for node_modules, dist, .env, etc.
- Deploy script now supports: ./deploy.sh prod | ./deploy.sh dev
- Enforces committed changes before deploy
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>