diff --git a/PROGRESS.md b/PROGRESS.md index c5b2e51..89af7fc 100644 --- a/PROGRESS.md +++ b/PROGRESS.md @@ -90,3 +90,45 @@ Siehe `MASTER-PLAN.md` für alle Tasks. | 2.7 | ✅ done | 2026-07-23 | Manual chunks: react-vendor, tanstack, ui, i18n. Vite build OK (3212 modules, ~9s) | **Phase 2 Gesamt: ✅ Complete (Commit a8331fb)** + +## Phase 1: Unified Contact Model — Vollendung (Backend + Frontend) + +| Task | Status | Datum | Notiz | +|---|---|---|---| +| 1.1 | ✅ done | 2026-07-23 | app/routes/companies.py entfernt | +| 1.2 | ✅ done | 2026-07-23 | app/services/company_service.py entfernt | +| 1.3 | ✅ done | 2026-07-23 | app/models/company.py entfernt (war shim) | +| 1.4 | ✅ done | 2026-07-23 | app/schemas/company.py entfernt | +| 1.5 | ✅ done | 2026-07-23 | action_mapper.py: Company-Intents → Contact-Intents | +| 1.6 | ✅ done | 2026-07-23 | workflows/engine.py: company.created → contact.created | +| 1.7 | ✅ done | 2026-07-23 | worker.py: index_company entfernt | +| 1.8 | ✅ done | 2026-07-23 | seeds.py: keine Company-Seed-Daten gefunden | +| 1.9 | ✅ done | 2026-07-23 | entity_links: entity_type → ^contact$, company.deleted → contact.deleted | +| 1.10 | ✅ done | 2026-07-23 | unified_search: CompanySearchProvider → Contact, index_company → index_contact, events unified | +| 1.11 | ✅ done | 2026-07-23 | calendar: entity_type → ^contact$, CalendarType='company' beibehalten | +| 1.12 | ✅ done | 2026-07-23 | tags: entity_type → ^(contact|file|folder)$ | +| 1.13 | ✅ done | 2026-07-23 | mail: company_id → contact_id in model/schemas/routes/services | +| 1.14 | ✅ done | 2026-07-23 | test_sample: company.created → contact.created | +| 1.15 | ✅ done | 2026-07-23 | Alle company.* events → contact.* events vereinheitlicht | +| 1.16 | ✅ done | 2026-07-23 | DB-Migration 0027: entity_type company→contact, mails.company_id→contact_id | +| 1.17 | ✅ done | 2026-07-23 | Backend-Tests aktualisiert (test_companies, test_unified_search, test_entity_links, etc.) | +| 1.18 | ✅ done | 2026-07-23 | Permission-Registry: companies:read/write/delete entfernt, CORE_FIELD_DEFINITIONS aktualisiert | +| 1.19 | ✅ done | 2026-07-23 | Addresses: entity_type → ^contact$ only | +| 1.20 | ✅ done | 2026-07-23 | conftest.py: Company→Contact, CompanyContact→ContactPerson, TRUNCATE bereinigt | +| 1.21 | ✅ done | 2026-07-23 | Contact-Detail-Route /contacts/:id mit React.lazy | +| 1.22 | ✅ done | 2026-07-23 | Company-Hooks aus hooks.ts entfernt | +| 1.23 | ✅ done | 2026-07-23 | Frontend Type-Definitions aktualisiert (calendar, tags, search, mail, types) | +| 1.24 | ✅ done | 2026-07-23 | Dashboard.tsx aktualisiert (keine Änderung nötig) | +| 1.25 | ✅ done | 2026-07-23 | GlobalSearchResults.tsx: type 'company' → 'contact' | +| 1.26 | ✅ done | 2026-07-23 | ContactFolderTree in ContactList (bereits vorhanden) | +| 1.27 | ✅ done | 2026-07-23 | React Hook Form + Zod in ContactEditModal | +| 1.28 | ✅ done | 2026-07-23 | Frontend-Tests aktualisiert, tsc --noEmit OK (nur pre-existing Dms.tsx errors) | + +**Phase 1 Gesamt: ✅ Complete (Commits: 879106c, 5d79b4f, b15a62b)** + +### Verifikation +- App startet OK (245 Routes) ✅ +- Python Syntax OK für alle geänderten Dateien ✅ +- Frontend: 251/265 Tests pass (14 pre-existing failures: Dms/Mail/ShareDialog) ✅ +- Backend-Tests: können nicht ausgeführt werden (kein PostgreSQL im Container) ⚠️ +- Keine verbleibenden company.* Events oder companies: Permissions ✅