Block a user
[Feature] Add CardDAV address-book connector
Codex State: done
Summary
- Completed the field-level merge path: the conflict review dialog now lets users choose Local or Remote per stored vCard field and applies the merged payload…
[Feature] Add CardDAV address-book connector
Codex State: progress
Summary
- Added CardDAV sync source lifecycle UX: enable/disable in the sync inspector and disconnect/delete with local contacts kept.
- Added conflict review UI…
[Debt] Add DB query timing and batch auth principal resolution
Codex State: progress
Summary
- Recorded address/calendar/files page-bootstrap baseline after the query metrics + auth batching work.
- Method: isolated FastAPI TestClient app on SQLite,…
[Debt] Add DB query timing and batch auth principal resolution
Implemented the main #259 slice on 2026-07-14.
Changes made:
- Added request-scoped SQLAlchemy query metrics in core and instrumented engines created through
create_database_engine()/…
[Feature] Add CardDAV address-book connector
Codex State: progress
Summary
- Implemented first two-way CardDAV write path: local creates, updates, and deletes are planned and applied to writable two-way/export sources.
- Outbound…
[Task] Split auth session check from full user bootstrap
Recorded before closing, using the isolated core API smoke-test app on 2026-07-14.
Method:
- SQLite test database with
bootstrap_dev_data(). fastapi.testclient.TestClient, cookie session…
[Task] Split auth session check from full user bootstrap
[Feature] Add CardDAV address-book connector
Codex State: progress
Summary
- Implemented first CardDAV path: discovery, source binding, full/sync-token inbound vCard sync, dry-run preview, tombstones, diagnostics, and conflict…
[Feature] Add sync-state model and conflict handling for address books
[Feature] Add sync-state model and conflict handling for address books
Codex State: done
Summary
- Completed the address sync infrastructure slice: dry-run preview, audit hooks, source diagnostics/conflicts/tombstones UI, and verified sync state transitions. …
[Debt] Refactor high-complexity campaign validation, sending, and reporting code
Codex State: done
Summary
- Refactored the remaining campaign complexity hotspots from the audit: validation helpers, mock campaign send flow, report generation, review state handling,…
[Debt] Refactor high-complexity campaign validation, sending, and reporting code
[Debt] Refactor high-complexity core installer/configuration/runtime functions
Codex State: done
Summary
- Refactored the remaining core complexity hotspots from the audit: module installer CLI dispatch, installer preflight/run/rollback/command generation,…
[Debt] Refactor high-complexity core installer/configuration/runtime functions
[Feature] Add sync-state model and conflict handling for address books
Codex State: progress
Summary
- Implemented connector-neutral address sync backend substrate: sync sources, attempt transitions, diagnostics, tombstones, conflicts, and read-only…