Select the types of activity you want to include in your feed.
Merge pull request 'fix: FIND/SEARCH tests, Excel-style quote escaping, version pruning tiebreaker' (#249) from fix/batch8-find-tokenizer-pruning into main
···639639 db.prepare(`
640640 DELETE FROM versions WHERE id IN (
641641 SELECT id FROM versions WHERE document_id = ?
642642- ORDER BY created_at ASC
642642+ ORDER BY created_at ASC, rowid ASC
643643 LIMIT ?
644644 )
645645 `).run(docId, excess);
+9-4
src/sheets/formulas.ts
···7070 continue;
7171 }
72727373- // String literal
7373+ // String literal (supports both "" Excel-style and \ backslash escaping)
7474 if (s[i] === '"') {
7575 let str = '';
7676 i++; // skip opening quote
7777- while (i < s.length && s[i] !== '"') {
7878- if (s[i] === '\\' && i + 1 < s.length) { str += s[++i]; }
7979- else { str += s[i]; }
7777+ while (i < s.length) {
7878+ if (s[i] === '"') {
7979+ // Excel-style escaped quote: "" → "
8080+ if (i + 1 < s.length && s[i + 1] === '"') { str += '"'; i += 2; continue; }
8181+ break; // closing quote
8282+ }
8383+ if (s[i] === '\\' && i + 1 < s.length) { str += s[++i]; i++; continue; }
8484+ str += s[i];
8085 i++;
8186 }
8287 i++; // skip closing quote