- server.js: debounce saveData to max 1 write/15s (was every heartbeat) - server.js: proper CSV escaping (_csvEscape) for node export endpoint - server.js: replace deprecated String.substr() with String.slice() - agent.py: 50MB size cap on download_file to prevent OOM - agent.py: shlex.quote() server_url in crontab persistence (shell injection) - agent.py: replace deprecated launchctl load with bootstrap/bootout/kickstart - app.js: pass event param to switchTab() (global event deprecated) - app.js: fix lootDownload URL revocation (60s → safe for slow downloads)
29 KiB
29 KiB