Phase-3 review — below-the-cut findings (Backlog, for review):
Regex recompilation (HtmlToText.kt:23-31): 4 Regex(...) literals built per convert() call (hot path: once per fetched body during sync). Hoist to private val.
Non-atomic report writes (ReportStore.kt:23,39): File.writeText from the dying crash process can truncate → report silently dropped by scan(). Write-temp + atomic rename.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Phase-3 review — below-the-cut findings (Backlog, for review):
HtmlToText.kt:23-31): 4Regex(...)literals built perconvert()call (hot path: once per fetched body during sync). Hoist toprivate val.ReportStore.kt:23,39):File.writeTextfrom the dying crash process can truncate → report silently dropped byscan(). Write-temp + atomic rename.RichTextEditing.kt:37):applyLinkdrops partially-overlapping links entirely (un-links the remainder); split instead (astoggleStyledoes).GraphSender.kt:112reads whole attachment into memory (size guard);RichText.kt:110mergeSameValueSpansO(n²);DiagnosticsCollector.kt:101provider-label substring match mislabelsmail.notgmail.exampleas Gmail (non-PII accuracy nit).