a3a99e668f
add MIME types: MIMEMessage, MIMEPart, MIMEAttachment, TransferEncoding
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-14 12:06:32 +01:00
8095000a56
add MIMEParser module target to Package.swift
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-14 12:06:10 +01:00
b866c3bb8e
add v0.5 implementation plan: attachments, MIME parsing, IMAP IDLE
2026-03-14 11:54:26 +01:00
f28b44d445
move v0.1 artifacts to DELETE/, fix xcode build, bump calver to 2026.03.14
...
- move backend/, clients/, scripts/ to DELETE/ (v0.1 era, replaced by on-device arch)
- delete feature/v0.1-backend-and-macos branch
- add TaskStore dependency to project.yml
- fix ComposeViewModel deinit concurrency, make toMessageSummary public
- regenerate Xcode project, verify macOS build succeeds
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-14 10:40:41 +01:00
8f63b1c7c1
fix task store wiring: correct directory path, pass to sync coordinator, remove unused stub
...
- TaskStore directory changed from `tasks-<id>` to `<accountId>/tasks/` per spec
- TaskStore now created before SyncCoordinator and passed as `taskStore:` arg so deferral resurfacing works
- Use `mailStore.databaseWriter` instead of raw `dbPool` for consistency
- Remove unused `deferSelectedItem` stub (all callers use `deferItem(_:until:)` directly)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-14 10:31:00 +01:00
bec9b7eb40
add app UI for GTD triage: perspectives, task creation, defer/label pickers, linked tasks
...
- replace mailbox-only sidebar with 6 GTD perspectives (inbox, today, upcoming, projects, someday, archive)
- add TaskEditViewModel/TaskEditView for creating tasks with optional due date, linked message
- add DeferPicker (tomorrow, next week, pick date, someday) and LabelPicker (searchable, type-to-create)
- add GTD triage actions in MailViewModel: defer, file, discard, complete for unified ItemSummary
- add GTD keyboard shortcuts in ThreadListView: d (defer), ⇧D (someday), p (project), ⌘⏎ (complete), ⌫ (discard)
- show linked tasks inline in ThreadDetailView with status badges, merged timeline
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-14 10:31:00 +01:00
ac824cd72e
add deferral resurfacing to SyncCoordinator (task 7)
...
Import TaskStore, add optional taskStore property, add resurfaceDeferrals()
that clears expired email deferrals and deferred task deferUntil on each sync.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-14 10:31:00 +01:00
39c0fd40bf
add VTODO parser, formatter, TaskStore file I/O with cache rebuild
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-14 10:31:00 +01:00
a4f0761f25
add v0.4 models, schema, query extensions for GTD tasks, labels, deferrals
...
New model types: TaskStatus, TaskSummary, LabelInfo, ItemSummary.
GRDB records: TaskRecord, LabelRecord, ItemLabelRecord, DeferralRecord.
Database migrations v3_task, v3_label, v3_deferral with indexes.
MailStore query extensions for labels, item-labels, deferrals, task cache.
TaskStore module wrapping MailStore. Tests for all v3 tables and records.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-14 10:31:00 +01:00
18e7ff2c47
fix v0.5 spec: address 14 review issues (MIME, IDLE handler, hasAttachments, etc.)
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-14 10:00:57 +01:00
e85e373914
add v0.5 design spec: attachments (send+receive), IMAP IDLE
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-14 09:57:02 +01:00
1049ca2675
add v0.4 implementation plan: GTD tasks, unified triage, deferrals, labels
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-14 08:33:21 +01:00
2e502cc08b
fix v0.4 spec: address 7 review issues (deferral storage, cache rebuild, key conflict, etc.)
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-14 08:19:19 +01:00
90b679870f
add v0.4 design spec: GTD tasks, unified triage, deferrals, labels
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-14 08:15:55 +01:00
f3da0784b9
wire end-to-end: smtp provider for ActionQueue, actionQueue for SyncCoordinator, body fetch for reply/forward
...
- MailViewModel.setup() now creates SMTPClient provider when SMTP config is present,
passes it to ActionQueue so send actions work
- ActionQueue is passed to SyncCoordinator so pending actions flush before sync
- Add ensureBodyLoaded() to fetch message body via IMAP before opening compose
- ThreadDetailView uses callback instead of binding for compose requests,
allowing ContentView to fetch body before presenting sheet
- Add SMTPClient dependency to both app targets in project.yml
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-14 06:00:42 +01:00
0bfcf2d610
add triage UI: archive, delete, flag, read/unread, move actions with auto-advance, compose triggers
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-14 05:55:19 +01:00
5c0c5a5bda
add compose flow: ComposeViewModel with draft auto-save, ComposeView with form UI
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-14 05:50:42 +01:00
7d847693d7
extend AutoDiscovery for SMTP, add SMTP fields to account setup UI
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-14 05:32:17 +01:00
cf2b463fd3
add ActionQueue: two-phase enqueue, FIFO flush, retry with max 5 attempts
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-14 05:29:56 +01:00
c38c31bf4d
add dot-stuffing for SMTP DATA command (RFC 5321 §4.5.2)
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-14 05:25:55 +01:00
54ce92e280
add SMTPClient module: connection layer, message formatter, public API, tests
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-14 05:25:03 +01:00
427f197bb3
add IMAP write operations, special folder role detection
...
Extend IMAPClientProtocol with storeFlags, moveMessage, copyMessage,
expunge, appendMessage, capabilities methods. Implement all six in
IMAPClient actor using NIOIMAPCore typed commands. Add multi-part
command support to IMAPConnection/IMAPCommandRunner for APPEND.
MockIMAPClient tracks all write calls for testing. SyncCoordinator
detects mailbox roles from LIST attributes with name-based fallback.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-14 05:13:39 +01:00
d659ed67de
add v0.3 schema: smtp fields, mailbox roles, drafts, pending actions, mailstore queries
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-14 05:01:17 +01:00
8c3f51adb4
fix v0.3 spec: address 11 review issues (concurrency, codable, bcc, folder roles, etc.)
2026-03-13 22:17:49 +01:00
5e1c26aa05
add v0.3 design spec: compose, triage, smtp, action queue
2026-03-13 22:12:47 +01:00
d5661459e4
bump calver to 2026.03.13, v0.2 complete: native swift email client with imap sync, grdb, swiftui
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-13 21:39:29 +01:00
a75738a79d
add background body prefetch for recent messages (last 30 days)
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-13 21:34:38 +01:00
deb4c1d15c
add offline banner, sync status indicators
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-13 21:34:12 +01:00
00b5632f3f
add imap auto-discovery: mozilla ispdb, dns srv fallback
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-13 21:33:37 +01:00
1b8f3b6665
add keychain credential storage, persist account config
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-13 21:25:49 +01:00
74179cb534
add html email rendering with wkwebview, script/tracker blocking
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-13 21:23:15 +01:00
e3159d61e8
add three-column swiftui layout: sidebar, thread list, detail, account setup
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-13 21:23:04 +01:00
6f0ba20d86
add mail, account setup viewmodels with grdb observation
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-13 21:23:00 +01:00
1b915fc9ab
scaffold multi-platform xcode project with xcodegen
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-13 21:17:11 +01:00
21227b3c78
add real IMAPClient actor with NIO connection, command pipeline, envelope parsing
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-13 21:12:39 +01:00
ec820b2785
add nio connection layer: tls bootstrap, response handler, command runner
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-13 21:05:44 +01:00
300b583695
add sync coordinator: imap → mailstore pipeline with delta sync
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-13 18:32:38 +01:00
ce5c985272
add imap client protocol, types, mock for testing
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-13 18:27:20 +01:00
4670612e75
add FTS5 search, thread summaries, reactive observation streams
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-13 18:25:18 +01:00
ca3817c683
add thread reconstruction: simplified JWZ with merge support
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-13 18:21:15 +01:00
abee491cec
add mailstore CRUD: accounts, mailboxes, messages, threads, flags, body
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-13 18:18:59 +01:00
0927d9827d
add mailstore schema: accounts, mailboxes, messages, threads, FTS5
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-13 18:16:23 +01:00
f37b287f5e
add models module: shared types for accounts, messages, threads, sync
...
fix Package.swift: remove NIOIMAPCore product reference (only NIOIMAP is exported by swift-nio-imap)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-13 18:11:24 +01:00
9c3d02ae45
scaffold MagnumOpusCore swift package with four modules
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-13 18:05:02 +01:00
a5361e36bd
add .worktrees/ to gitignore for isolated development workspaces
2026-03-13 17:15:05 +01:00
7aa3106be3
refine v0.2 spec after review: fix blockers, clarify ambiguities
...
address IMAP client complexity, remove bidirectional flag sync,
add attachment table, error handling, HTML rendering, FTS5 sync notes
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-13 15:59:07 +01:00
1f0f5a188c
add v0.2 native swift email client design spec
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-13 15:54:02 +01:00
1d68d7006a
merge taskjuggler vscode extension into ideas
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-10 17:03:20 +01:00
e9978403c9
add .gitignore, remove tracked .DS_Store, sync-conflict files
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-10 12:43:35 +01:00
5867799de4
support configurable binary paths for mbsync, notmuch env
...
Orchestrator reads MBSYNC_BIN and NOTMUCH_CONFIG from env vars so the
backend works on Uberspace where mbsync is built from source at a
custom path and notmuch needs an explicit config location.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-10 12:41:37 +01:00