What Happened
- The notifier now suppresses repeated `running→waiting` [EVENT] alerts for the same child when its output has not changed, addressing a case where one dormant child emitted 47 identical wait notifications in 15.5 hours. A new dedup key `(child_id, to_status, last_output_hash)` is applied with a 2-hour TTL, while the legacy 90-second `(from, to)` dedup remains for callers that cannot provide output hash context.
- The notifier now suppresses repeated `running→waiting` [EVENT] alerts for the same child when its output has not changed, addressing a case where one dormant child emitted 47 identical wait notifications in 15.5 hours. A new dedup key `(child_id, to_status, last_output_hash)` is applied with a 2-hour TTL, while the legacy 90-second `(from, to)` dedup remains for callers that cannot provide output hash context.
- 1 evidence item attached for review.