Add Cloudflare email and collaboration workflows
This commit is contained in:
@@ -9,9 +9,9 @@
|
||||
|
||||
- [x] Comment system (backend + UI wired)
|
||||
- [x] Comment creation endpoint (web)
|
||||
- [x] Comment threading (parent/child) - schema supports it
|
||||
- [x] Comment threading (parent/child) with nested browser replies
|
||||
- [x] Line/section anchoring (hash-based)
|
||||
- [x] Comment resolution (mark as resolved)
|
||||
- [x] Whole-thread resolution with resolved-history view
|
||||
- [x] Comment display in the Go-served browser UI (`c39c50b` dropdown menu + comment side panel, `comments.js` +330 lines)
|
||||
|
||||
- [x] Notification system (backend complete)
|
||||
@@ -21,10 +21,10 @@
|
||||
- [ ] Global notification settings
|
||||
- [ ] Digest mode (hourly/daily batches)
|
||||
|
||||
- [x] Web notification UI (backend complete, JS partial)
|
||||
- [x] Notification bell with unread count - API exists
|
||||
- [x] Notification list dropdown - API exists
|
||||
- [x] Mark as read functionality - API exists
|
||||
- [x] Web notification UI
|
||||
- [x] Notification bell with unread count
|
||||
- [x] Notification list dropdown
|
||||
- [x] Mark one/all as read functionality
|
||||
- [ ] Notification preferences page
|
||||
|
||||
### Week 8: Email Integration & Conflict Resolution
|
||||
@@ -34,6 +34,7 @@
|
||||
- [x] Postmark adapter (`email/postmark.go`)
|
||||
- [x] Plain-text email templates (`email/templates.go`)
|
||||
- [x] Outgoing email queue with retry (`email/queue.go` + migration 000016)
|
||||
- [x] Cloudflare Email Service REST adapter (`email/cloudflare.go`)
|
||||
- [ ] Webhook endpoint for inbound email
|
||||
|
||||
- [x] Email notification types
|
||||
@@ -60,20 +61,20 @@
|
||||
### Functional
|
||||
- [x] Users can add comments to specific lines in a document (API exists)
|
||||
- [x] Comments are linked to document version (hash)
|
||||
- [x] Comment threading works (reply to reply) (schema supports it)
|
||||
- [x] Users can watch files or folders for changes (API exists)
|
||||
- [x] Email notifications sent within 1 minute of event (Postmark adapter + queue with retry)
|
||||
- [x] Comment threading works (reply to reply) in the browser and API
|
||||
- [x] Users can watch files or folders for changes (document UI + APIs)
|
||||
- [x] Email notifications queued within 1 minute of event (Postmark, Cloudflare, or SMTP sender)
|
||||
- [ ] Replying to notification email creates a comment
|
||||
- [ ] Digest emails batch notifications by time window
|
||||
- [x] Conflicts display side-by-side diff (M2 sync)
|
||||
- [x] Conflicts display a unified diff (M2 sync)
|
||||
- [x] Users can resolve conflicts via web UI (M2 sync)
|
||||
- [ ] Resolved comments are hidden but accessible in history
|
||||
- [x] Resolved comments are hidden but accessible in history
|
||||
|
||||
### Non-Functional
|
||||
- [x] Emails are plain-text only (no HTML) — enforced by templates, verified by test
|
||||
- [ ] Email threading works in Gmail, Outlook, Apple Mail
|
||||
- [ ] Webhook signature verified for inbound email
|
||||
- [x] Failed emails retried 3 times with exponential backoff — queue.go, verified by test
|
||||
- [x] Temporary email failures retried 3 times with exponential backoff; permanent provider rejections fail immediately
|
||||
- [x] Email queue doesn't block web requests (async processing) — worker runs in goroutine
|
||||
|
||||
### Email Template Examples
|
||||
@@ -166,7 +167,7 @@ CREATE TABLE watchers (
|
||||
|
||||
- [ ] All acceptance criteria pass
|
||||
- [ ] Email flows tested with real Postmark account
|
||||
- [ ] Comment threading tested with 3+ levels
|
||||
- [x] Comment threading tested with 3+ levels
|
||||
- [ ] Conflict resolution tested with 2+ concurrent editors
|
||||
- [ ] Notification preferences persist across sessions
|
||||
- [ ] Digest mode tested with 24-hour window
|
||||
|
||||
Reference in New Issue
Block a user