🚨 Severity: MEDIUM
💡 Vulnerability: The web dashboard previously returned raw exception strings to the user upon error. This could leak sensitive internal details (e.g., file paths, stack traces).
🎯 Impact: Attackers could gain reconnaissance data about the server environment.
🔧 Fix: Replaced `return f"Error: {str(e)}", 500` with `logger.exception(...)` and a generic `Internal Server Error` response.
✅ Verification: Added `scripts/test_web_dashboard_security.py` which mocks an exception and asserts that the response does NOT contain the exception details. Existing tests in `scripts/test_web_dashboard.py` also pass.