fix: bound JSON output shutdown after interrupt

HA
14m ago
+479-28

Summary

  • Bound shutdown after the first interrupt, including while output is being drained.
  • Isolate the POSIX child process group so Ctrl-C is forwarded exactly once.
  • Keep shutdown handlers active through drain and ignore repeated signals.
  • Bound oversized JSON records to the pipe's atomic-write limit so every emitted line remains parseable.
  • Add regression coverage for repeated Ctrl-C/SIGTERM, oversized records, drain cleanup, and forced test-process cleanup.
  • Add the Reflex Base bugfix news fragment.

Tests

  • tests/units/reflex_base/utils/test_log.py: 81 passed, 5 skipped on Windows (POSIX-only cases).
  • Linux Docker smoke tests: group SIGINT forwarded once; oversized output stayed valid JSON; blocked drain remained bounded after a second SIGTERM.
  • Ruff formatting, focused lint, and git diff --check passed.

Fixes #7510