Log the full request body and response when POST /contacts fails
so we can see why new contacts are not being created.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Three-phase sync approach:
1. Process existing mappings (detect changes on both sides,
handle conflicts with configurable winner)
2. Sync unmapped Outlook contacts to Starface with duplicate
check (match by email, name+company, name, phone)
3. Sync unmapped Starface contacts to Outlook with duplicate check
Key improvements:
- Duplicate detection before creating: checks email, name+company,
name, and phone number with normalization
- Matched duplicates get linked instead of re-created
- Conflict resolution when both sides changed
- Dead mappings (both sides deleted) get cleaned up
- Each contact logged individually with direction indicator
- Address book switch works: old mappings get cleaned, contacts
re-matched against new book
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Logs the first contact from Starface API response into the sync
log so we can see the actual JSON structure and fix field mapping.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace the Office Web Add-in with a native Windows application.
The web add-in required Exchange/M365 for registration which is
not available in all customer environments (standalone Office,
POP/IMAP only).
The new app:
- Uses COM Interop to access Outlook contacts directly
- Communicates with Starface REST API (accepts self-signed certs)
- Runs as System Tray app with optional auto-sync
- Profile-based config stored in %AppData%
- No webserver, no certificates, no Exchange, no M365 needed
- Inno Setup installer for clean MSI-style deployment
- Works with any Outlook version (Classic and New)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>