Skip to content

Commit 5406c57

Browse files
docs: record CONDSTORE/QRESYNC deferral rationale + concrete DB-migration plan (6001->6002)
1 parent 316d089 commit 5406c57

1 file changed

Lines changed: 11 additions & 0 deletions

File tree

planupdate.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -329,6 +329,17 @@ upgrading the management/admin INI password from MD5.
329329
`* ESEARCH` response. Advertised in CAPABILITY. Covered by `TestEsearchReturnsExtendedResponse`.
330330
- ⏳ Remaining: CONDSTORE/QRESYNC (7162) [needs persistent per-message MODSEQ — DB schema change],
331331
LIST-EXTENDED/SEARCHRES; consider IMAP4rev2. (`IMAPCommandCapability` + command map.)
332+
- 🅿️ **CONDSTORE/QRESYNC (RFC 7162) — DEFERRED to a dedicated, supervised cycle.** Rationale: it is
333+
the only remaining B5 item that requires a **database schema migration** (a persistent per-message
334+
`MODSEQ` + per-folder `HIGHESTMODSEQ`). That means bumping `REQUIRED_DB_VERSION` 6001→6002
335+
(`Common/Application/Constants.h`), adding the `modseq` column to all four `CreateTables*` scripts
336+
**and** writing `Upgrade6001to6002{MSSQL,MSSQLCE,MySQL,PGSQL}.sql`. Only the MySQL/MariaDB backend
337+
is exercised by the regression suite in this environment, so the MSSQL/PGSQL/SQLCE migrations would
338+
ship unvalidated, and a partial/incorrect MODSEQ actively corrupts client sync state (worse than
339+
not advertising it). Command surface also touches SELECT/EXAMINE (`HIGHESTMODSEQ`), FETCH
340+
(`MODSEQ`, `CHANGEDSINCE`), STORE (`UNCHANGEDSINCE` + `MODIFIED`), SEARCH (`MODSEQ`), STATUS
341+
(`HIGHESTMODSEQ`), ENABLE wiring, and QRESYNC `VANISHED`/SELECT params. Do this as its own release
342+
with real cross-backend upgrade testing.
332343
- Verify: fast resync in Thunderbird/Apple Mail.
333344

334345
## B6 — Standards-based filtering

0 commit comments

Comments
 (0)