- Runner.pm: extract _validate()/_build_cmd_line(), add run_async() that forks a detached child via setsid() to run commands in background - restore.cgi: handle_step4() builds commands array and uses run_async() instead of blocking synchronous execution, redirects to logs.cgi - logs.cgi: add auto-refresh JS (10s list view, 5s file view with auto-scroll) that polls index.cgi?action=status while gniza is running - index.cgi: add live status card with AJAX polling and JSON endpoint - Cron/schedule: redirect cron output to /dev/null (gniza has own logs) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
9.5 KiB
9.5 KiB