Files
roa2web-service-auto/.claude/handover-cleanup-roa2web.md
Claude Agent 1b9ebf1d8f feat(dashboard): Complete dashboard desktop cleanup and improvements
User Stories Completed:
- US-001: Eliminare SolduriCompactCard de pe Desktop
- US-002: Eliminare Icoane din Header-ul CollapsibleCard
- US-003: Reorganizare TreasuryDualCard - Text Înainte de Grafice
- US-004: Reorganizare ClientiBalanceCard - Text Înainte de Grafice
- US-005: Reorganizare FurnizoriBalanceCard - Text Înainte de Grafice
- US-006: Grafice Colapsabile în TreasuryDualCard
- US-007: Grafice Colapsabile în ClientiBalanceCard
- US-008: Grafice Colapsabile în FurnizoriBalanceCard
- US-009: Grafice Colapsabile în CashFlowMetricCard

Additional Improvements:
- Add cache metadata display (CacheFooter component) for all dashboard cards
- Add @cached decorators to get_monthly_flows and get_indicators_with_sparklines
- Fix financial indicators calculations and sparkline sync
- Add state reset on company change to prevent stale data
- New shared components: CacheFooter.vue, authRedirect.js
- Enhanced FinancialIndicatorsCard with sparklines and period selection

Squashed from branch: ralph/dashboard-desktop-cleanup (11 commits)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 07:27:27 +00:00

3.0 KiB

Handover: Curățare Cod ROA2WEB

Context

Am analizat arhitectura ROA2WEB cu 3 agenți de explorare și am identificat 4 acțiuni de curățare cu randament mare și risc minim.

Plan detaliat: /home/claude/.claude/plans/immutable-chasing-flute.md

Prompt pentru /ralph:prd

Implementează curățarea codului ROA2WEB conform planului din /home/claude/.claude/plans/immutable-chasing-flute.md

Obiective:
1. Elimină store duplication - șterge src/modules/reports/stores/sharedStores.js și src/modules/data-entry/stores/sharedStores.js, mută instantierea în App.vue
2. Creează factory pentru API services - src/shared/services/createApiService.js și simplifică api.js din module
3. Fă dependențele OCR opționale - adaugă variabile în .env (OCR_ENABLE_PADDLEOCR, OCR_ENABLE_TESSERACT), implementează lazy loading în OCR service, mută deps în requirements opțional
4. Consolidează CSS design tokens - unifică variables.css, tokens.css, md3-tokens.css într-un singur design-tokens.css

Constrângeri:
- NU schimba arhitectura (layered architecture rămâne)
- NU modifica auth middleware, cache decorator, oracle pool
- Testează după fiecare modificare: app pornește, login funcționează, dark mode arată corect

Ordinea execuției:
1. [15 min] Store duplication
2. [30 min] API factory
3. [30 min] OCR dependencies opționale (lazy loading via .env)
4. [1 oră] CSS tokens

Impact așteptat: -150 linii cod duplicat, OCR deps opționale via .env, -2 fișiere CSS, startup mai rapid

Fișiere Cheie de Referință

De Șters

  • src/modules/reports/stores/sharedStores.js
  • src/modules/data-entry/stores/sharedStores.js

De Creat

  • src/shared/services/createApiService.js
  • src/assets/css/core/design-tokens.css (consolidat)

De Modificat

  • src/App.vue - adaugă instantiere stores
  • src/modules/reports/services/api.js - simplifică cu factory
  • src/modules/data-entry/services/api.js - simplifică cu factory
  • backend/requirements.txt - mută paddleocr/tesseract în secțiune opțională (comentate)
  • backend/.env - adaugă OCR_ENABLE_PADDLEOCR=false și OCR_ENABLE_TESSERACT=false
  • backend/modules/data_entry/services/ocr_service.py - implementează lazy loading pentru OCR engines
  • src/assets/css/main.css - actualizează importuri CSS

Verificare Finală

După implementare, verifică:

  • ./start-prod.sh pornește fără erori
  • Login funcționează
  • Un raport se încarcă corect
  • O chitanță se poate crea
  • Dark mode arată corect pe toate paginile
  • pip install -r backend/requirements.txt reușește
  • Cu OCR_ENABLE_PADDLEOCR=false - app pornește fără PaddleOCR instalat
  • Cu OCR_ENABLE_PADDLEOCR=true - OCR fallback funcționează (dacă e instalat)

Note

  • Arhitectura actuală (Layered) este potrivită pentru echipa de 1-2 developeri
  • Nu este nevoie de Vertical Slice sau Feature-Sliced Design
  • Acțiunile opționale (split receiptStore, simplificare cache) pot fi făcute ulterior