4cf391b7ff
Issue 1: hasNewCommentsOnly() now returns false when oldString and newString both contain comment syntax and the new lines are a subset of old lines — preventing the hook from firing on comment-only modifications. Issue 2: Per-session deduplication via sessionLastWarning Map with a 30s window (DEDUP_WINDOW_MS). At most one warning fires per session per response turn, breaking the deadloop on consecutive edits.