Commit 9ee0a7e
Address review feedback and fix CI test failures
- Switch debounce from DispatcherTimer to CancellationTokenSource +
Task.Delay so it works in headless unit tests (where there's no
Avalonia UI dispatcher) and removes the orphan `_ = SearchModels()`
fire-and-forget — the debounced helper now awaits SearchModels directly
- Expose SearchDebounceInterval as a public property so tests can collapse
it to TimeSpan.Zero instead of waiting hundreds of ms per assertion
- Update the two ViewModel tests broken by debounce: set the interval to
zero, and add a brief await in the queued-while-loading test so the
debounced fire-and-forget Task.Delay(0) propagates before SetResult
- Track array depth in CivArchiveSingleStringConverter so a hypothetical
nested array doesn't strand the JSON reader mid-structure (return on
the matching EndArray, not past it — STJ verifies cursor position)
- Serialize concurrent first-load callers of GetFilterOptionsAsync via a
SemaphoreSlim so a cold cache + concurrent invocations don't fire
redundant fetches (matches the existing buildId pattern)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>1 parent 31b41b2 commit 9ee0a7e
3 files changed
Lines changed: 105 additions & 44 deletions
File tree
- StabilityMatrix.Avalonia/ViewModels/CheckpointBrowser
- StabilityMatrix.Core/Api
- StabilityMatrix.Tests/Avalonia
Lines changed: 43 additions & 21 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
39 | | - | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
40 | 47 | | |
41 | 48 | | |
42 | 49 | | |
| |||
272 | 279 | | |
273 | 280 | | |
274 | 281 | | |
275 | | - | |
276 | | - | |
277 | | - | |
278 | | - | |
279 | | - | |
| 282 | + | |
280 | 283 | | |
281 | 284 | | |
282 | 285 | | |
283 | | - | |
284 | | - | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
285 | 289 | | |
286 | 290 | | |
287 | 291 | | |
| |||
350 | 354 | | |
351 | 355 | | |
352 | 356 | | |
353 | | - | |
354 | | - | |
355 | | - | |
356 | | - | |
357 | | - | |
358 | | - | |
359 | 357 | | |
360 | | - | |
361 | | - | |
362 | | - | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
363 | 361 | | |
364 | 362 | | |
365 | 363 | | |
| |||
375 | 373 | | |
376 | 374 | | |
377 | 375 | | |
378 | | - | |
379 | | - | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
380 | 402 | | |
381 | 403 | | |
382 | 404 | | |
383 | 405 | | |
384 | 406 | | |
385 | 407 | | |
386 | | - | |
387 | | - | |
| 408 | + | |
| 409 | + | |
388 | 410 | | |
389 | 411 | | |
390 | 412 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
29 | 29 | | |
30 | 30 | | |
31 | 31 | | |
| 32 | + | |
32 | 33 | | |
33 | 34 | | |
34 | 35 | | |
| |||
118 | 119 | | |
119 | 120 | | |
120 | 121 | | |
121 | | - | |
122 | | - | |
123 | | - | |
124 | | - | |
125 | | - | |
126 | | - | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
127 | 132 | | |
128 | | - | |
129 | | - | |
130 | | - | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
131 | 139 | | |
132 | | - | |
133 | | - | |
134 | | - | |
135 | | - | |
136 | | - | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
137 | 143 | | |
138 | | - | |
139 | | - | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
140 | 157 | | |
141 | 158 | | |
142 | 159 | | |
| |||
654 | 671 | | |
655 | 672 | | |
656 | 673 | | |
| 674 | + | |
| 675 | + | |
| 676 | + | |
| 677 | + | |
657 | 678 | | |
| 679 | + | |
658 | 680 | | |
659 | 681 | | |
660 | | - | |
661 | | - | |
662 | | - | |
663 | | - | |
664 | | - | |
665 | | - | |
| 682 | + | |
666 | 683 | | |
667 | | - | |
| 684 | + | |
| 685 | + | |
| 686 | + | |
| 687 | + | |
| 688 | + | |
| 689 | + | |
| 690 | + | |
| 691 | + | |
| 692 | + | |
| 693 | + | |
| 694 | + | |
| 695 | + | |
| 696 | + | |
668 | 697 | | |
669 | 698 | | |
670 | 699 | | |
| |||
Lines changed: 10 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
45 | 45 | | |
46 | 46 | | |
47 | 47 | | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
48 | 51 | | |
49 | 52 | | |
50 | 53 | | |
| |||
147 | 150 | | |
148 | 151 | | |
149 | 152 | | |
| 153 | + | |
150 | 154 | | |
151 | 155 | | |
152 | 156 | | |
153 | 157 | | |
154 | 158 | | |
155 | 159 | | |
156 | 160 | | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
157 | 167 | | |
158 | 168 | | |
159 | 169 | | |
| |||
0 commit comments