Files
oikos/PROGRESS.md
T
Ulas Kalayci 8f78ed6fa2 fix: Isolate Contact Merge Logic tests via suite-level before hook
All 4 previously interdependent tests now use shared aliceContact from
before() hook. 54/54 tests passing with full isolation.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-04 12:32:15 +02:00

3.4 KiB

CardDAV Contacts Implementation - Fortschritt

Stand: 2026-05-04, Session pausiert bei ~75k Tokens (nach API Routes Design)

Abgeschlossene Tasks

Task #1: Implement server/services/cardav-sync.js

  • Status: COMPLETED
  • Commits:
    • 689b479: Initial implementation (850 lines service + 46 tests)
    • c4b8b76: Critical fixes (Transaction handling, N+1 query optimization)
  • Reviews:
    • Spec Review: PASSED
    • Code Quality: APPROVED

Task #2: Add tests for cardav-sync service

  • Status: COMPLETED
  • Commits:
    • 96b4f43: Added 9 new tests (55 total)
    • a38c2c8: Fixed test interdependencies and removed duplicate suite (54 tests)
    • (uncommitted): Fixed final 4 interdependent tests via suite-level before hook
  • Reviews:
    • Spec Review: PASSED
    • Code Quality: APPROVED - All tests isolated via before() hook
  • Final State: 54 tests, all passing, full test isolation achieved

Task #3 Design Phase: API Routes Implementation Design

  • Status: DESIGN COMPLETED, ready for implementation
  • Commits:
    • bb961a4: Implementation design spec created
    • 8b8ac08: REPLACEMENT semantics clarified for PUT multi-values
  • Design Doc: docs/designs/2026-05-04-cardav-api-routes-implementation.md
  • Entscheidungen:
    • Route-Organisation: server/routes/cardav.js (neu) + server/routes/contacts.js (erweitern)
    • Implementierungs-Reihenfolge: User Flow (Account → Discovery → Sync → Contacts)
    • Architektur: Route-Level Validation mit Service Delegation
    • Error Handling: Einfaches Fallback (500 + error.message)
  • Scope: 11 API Routes (8 CardDAV Management + 3 Extended Contacts)

Ausstehende Tasks (3-10)

🔄 Task #3-5: API Routes Implementation (NEXT)

  • Task #3: Implement CardDAV management API routes (server/routes/cardav.js)
    • 8 routes: Account CRUD, Addressbook Discovery/Toggle, Sync
  • Task #4: Extend contacts API routes for multiple values (server/routes/contacts.js)
    • 3 routes: GET/POST/PUT mit phones/emails/addresses
  • Task #5: Add API route tests (erweitere test-carddav.js)
    • 4 Test-Suites mit ~15 Tests total

Task #6-10: UI & Integration (Later)

  • Task #6: Extend Settings UI with Contacts Sync section
  • Task #7: Add source badges to contact list
  • Task #8: Extend contact modal with new fields and multiple values
  • Task #9: Add UI interaction tests
  • Task #10: Integrate CardDAV sync into cron job

Nächste Schritte beim Fortsetzen (Frische Session)

  1. Task #2 Final Fix committed
  2. API Routes Design abgeschlossen & approved
  3. 🎯 NEXT: Invoke writing-plans skill → Implementation Plan für Tasks #3-5 erstellen
  4. 🎯 THEN: TDD Approach → Tests schreiben, dann Implementation

Wichtige Dateien

  • Feature Design: docs/designs/2026-05-04-cardav-contacts-design.md
  • Implementation Design: docs/designs/2026-05-04-cardav-api-routes-implementation.md
  • Service: server/services/cardav-sync.js (873 lines, 10 exported functions)
  • Tests: test-carddav.js (54 tests, all passing)
  • Migration: server/db.js (Migration 30)

Git Status

Branch: feature/cardav-contacts Basis: main (commit 6cc7267) Latest: commit 8b8ac08 (API Routes Design)

Commits since Task #2:

  • bb961a4: Implementation design spec created
  • 8b8ac08: REPLACEMENT semantics clarified

Uncommitted changes: test-carddav.js (Test isolation fixes), PROGRESS.md (this file)