Commit 7964aa7
feat(backfill): make Phase C orphan-contact discovery opt-in (#21)
Deep backfill's Phase C iterates the user's contacts and calls
GetOrCreateConversation for every phone number. Google Messages treats
that call as a thread-creation: for each contact lacking a prior
thread, an empty SMS thread is created on the user's phone.
For users running deep backfill primarily to sync existing history,
that side effect is unwanted -- it produces dozens of new "blank"
threads on the device with no way to undo individually.
Make Phase C opt-in via a new env var:
OPENMESSAGES_BACKFILL_DISCOVER_ORPHANS=1
When unset (default), deepBackfill runs Phases A (folder pagination)
and B (per-conversation messages) only and logs an informational line
explaining the gate. When set to a truthy value, behavior is unchanged
from the current default.
- internal/app/backfill.go: add orphanContactDiscoveryEnabled() helper;
gate Phase C call with informational log line on the off path
- internal/app/backfill_test.go: add TestOrphanContactDiscoveryEnabled
with truthy/falsy parsing cases; add TestDeepBackfillSkipsPhaseCWhen
OptOut to assert the default-off path produces no contact-discovery
side effects; opt the existing Phase C tests in via t.Setenv
- README.md: document the new env var with the side-effect warning
Co-authored-by: DiscoBard <223926914+DiscoBard@users.noreply.github.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>1 parent acc4692 commit 7964aa7
3 files changed
Lines changed: 112 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
168 | 168 | | |
169 | 169 | | |
170 | 170 | | |
| 171 | + | |
171 | 172 | | |
172 | 173 | | |
173 | 174 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| 7 | + | |
7 | 8 | | |
8 | 9 | | |
9 | 10 | | |
| |||
19 | 20 | | |
20 | 21 | | |
21 | 22 | | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
22 | 43 | | |
23 | 44 | | |
24 | 45 | | |
| |||
125 | 146 | | |
126 | 147 | | |
127 | 148 | | |
128 | | - | |
129 | | - | |
130 | | - | |
131 | | - | |
132 | | - | |
133 | | - | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
134 | 163 | | |
135 | 164 | | |
136 | 165 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
335 | 335 | | |
336 | 336 | | |
337 | 337 | | |
| 338 | + | |
338 | 339 | | |
339 | 340 | | |
340 | 341 | | |
| |||
371 | 372 | | |
372 | 373 | | |
373 | 374 | | |
| 375 | + | |
374 | 376 | | |
375 | 377 | | |
376 | 378 | | |
| |||
401 | 403 | | |
402 | 404 | | |
403 | 405 | | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
| 412 | + | |
| 413 | + | |
| 414 | + | |
| 415 | + | |
| 416 | + | |
| 417 | + | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
| 443 | + | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
| 447 | + | |
404 | 448 | | |
405 | 449 | | |
406 | 450 | | |
| |||
463 | 507 | | |
464 | 508 | | |
465 | 509 | | |
| 510 | + | |
466 | 511 | | |
467 | 512 | | |
468 | 513 | | |
| |||
1008 | 1053 | | |
1009 | 1054 | | |
1010 | 1055 | | |
| 1056 | + | |
| 1057 | + | |
| 1058 | + | |
| 1059 | + | |
| 1060 | + | |
| 1061 | + | |
| 1062 | + | |
| 1063 | + | |
| 1064 | + | |
| 1065 | + | |
| 1066 | + | |
| 1067 | + | |
| 1068 | + | |
| 1069 | + | |
| 1070 | + | |
| 1071 | + | |
| 1072 | + | |
| 1073 | + | |
| 1074 | + | |
| 1075 | + | |
| 1076 | + | |
| 1077 | + | |
| 1078 | + | |
| 1079 | + | |
| 1080 | + | |
| 1081 | + | |
| 1082 | + | |
| 1083 | + | |
| 1084 | + | |
| 1085 | + | |
| 1086 | + | |
0 commit comments