feat: customer frontend, Sungrow collector fixes, real data (v1.2.0)

- Add frontend/ at root (no Three.js, no Charging, green #52c41a theme)
- Fix Sungrow collector: add curPage/size params, unit conversion
- Fix station-level dedup to prevent double-counting
- Add shared token cache for API rate limit protection
- Add .githooks/pre-commit, CLAUDE.md, .gitignore
- Update docker-compose.override.yml frontend -> ./frontend
- Pin bcrypt in requirements.txt
- Add BUYOFF_RESULTS_2026-04-05.md (39/43 pass)
- Data accuracy: 0.0% diff vs iSolarCloud

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Du Wenbo
2026-04-05 23:43:24 +08:00
parent ed30ac31e4
commit d3f47d664c
121 changed files with 21784 additions and 23 deletions

10
.githooks/pre-commit Normal file
View File

@@ -0,0 +1,10 @@
#!/bin/bash
# Pre-commit hook: block direct modifications to core/ subtree
if git diff --cached --name-only | grep -q '^core/'; then
echo '=========================================='
echo 'ERROR: Do not modify core/ directly!'
echo 'Make changes in ems-core repo instead.'
echo 'Then run: git subtree pull --prefix=core ems-core main --squash'
echo '=========================================='
exit 1
fi