Two bugs identified in re-review:
1. Missing escalated guard in checkAutomatedComments retrigger path
The same-fingerprint + timer-elapsed retrigger path in checkAutomated-
Comments was missing the tracker.escalated check that was already added
to checkPersistentConditions. Without it, every retrigger cycle after
escalateAfter elapses would re-escalate to human notification spam.
2. Response body consumed twice in merge error handler (Dashboard.tsx)
res.json() and res.text() both consume the response body stream. If
res.json() throws (e.g., proxy 502 returns HTML), the catch block's
res.text() also fails, so users always saw "Unknown error". Fixed by
reading res.text() first, then parsing with JSON.parse.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>