The per-call timeout in src/nodrift/replay.py uses signal.SIGALRM, which does not exist on Windows. The whole tool is therefore Unix-only.
What to do
Replace the alarm with something portable. Options worth weighing:
- run each call in a worker thread with a join timeout (cannot kill a hung call, but does not block the run)
- a watchdog thread that raises in the main thread via
ctypes
- run replay batches in a subprocess with a timeout
A mutation can easily produce an infinite loop, so the timeout is not optional — that is the constraint to design around.
Relevant file: src/nodrift/replay.py
The per-call timeout in
src/nodrift/replay.pyusessignal.SIGALRM, which does not exist on Windows. The whole tool is therefore Unix-only.What to do
Replace the alarm with something portable. Options worth weighing:
ctypesA mutation can easily produce an infinite loop, so the timeout is not optional — that is the constraint to design around.
Relevant file:
src/nodrift/replay.py