Phase 3 — Feature completeness (behind the API). Crate: nuncio-contacts (+ proto + CLI).
Make contacts real: an actual CardDAV sync with vCard round-tripping.
Scope / acceptance criteria
Real CardDAV client — HTTP(S) CardDAV sync replacing any stubbed
transport; wiremock-mocked in tests (no live network).
vCard round-trip — parse fetched vCards into the contacts model and
regenerate valid vCards on write; property coverage matches what the store holds.
Proto + CLI — a Contacts service (or additions) exposing list/sync over
gRPC, driven by a nuncio-cli command.
Offline E2E: sync → list contacts against a mock CardDAV server. cargo verify green.
Note: proto lives in the shared proto/nuncio/v1/nuncio.proto — coordinate with the
Calendar/JMAP proto stories.
**Phase 3 — Feature completeness (behind the API).** Crate: `nuncio-contacts` (+ proto + CLI).
Make contacts real: an actual CardDAV sync with vCard round-tripping.
### Scope / acceptance criteria
- [ ] **Real CardDAV client** — HTTP(S) CardDAV sync replacing any stubbed
transport; `wiremock`-mocked in tests (no live network).
- [ ] **vCard round-trip** — parse fetched vCards into the contacts model and
regenerate valid vCards on write; property coverage matches what the store holds.
- [ ] **Proto + CLI** — a `Contacts` service (or additions) exposing list/sync over
gRPC, driven by a `nuncio-cli` command.
- [ ] Offline E2E: `sync → list contacts` against a mock CardDAV server. `cargo verify` green.
Note: proto lives in the shared `proto/nuncio/v1/nuncio.proto` — coordinate with the
Calendar/JMAP proto stories.
Superseded by #187/#188 (M2) in the roadmap restructuring (milestones M1–M7). The replacement story carries the full, self-contained spec for a remote implementer. See docs/ROADMAP.md, docs/STORY-WORKFLOW.md, docs/HANDOFF.md.
Superseded by #187/#188 (M2) in the roadmap restructuring (milestones M1–M7). The replacement story carries the full, self-contained spec for a remote implementer. See docs/ROADMAP.md, docs/STORY-WORKFLOW.md, docs/HANDOFF.md.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Phase 3 — Feature completeness (behind the API). Crate:
nuncio-contacts(+ proto + CLI).Make contacts real: an actual CardDAV sync with vCard round-tripping.
Scope / acceptance criteria
transport;
wiremock-mocked in tests (no live network).regenerate valid vCards on write; property coverage matches what the store holds.
Contactsservice (or additions) exposing list/sync overgRPC, driven by a
nuncio-clicommand.sync → list contactsagainst a mock CardDAV server.cargo verifygreen.Note: proto lives in the shared
proto/nuncio/v1/nuncio.proto— coordinate with theCalendar/JMAP proto stories.
Superseded by #187/#188 (M2) in the roadmap restructuring (milestones M1–M7). The replacement story carries the full, self-contained spec for a remote implementer. See docs/ROADMAP.md, docs/STORY-WORKFLOW.md, docs/HANDOFF.md.