-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Python Server Launcher #286
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This pull request adds web server infrastructure and dashboard frontend components for Agent Lightning. The changes include adding Gunicorn and uvicorn-worker as new dependencies, expanding the copyright header checker to support JavaScript/TypeScript files, and introducing comprehensive test coverage for server launcher functionality.
Key Changes
- Added
gunicornanduvicorn-workeras dependencies for production-ready web server deployment - Extended copyright header validation to JavaScript/TypeScript files beyond Python
- Added extensive test suite (1,344 lines) for server launcher with multiple launch modes (asyncio, thread, subprocess, gunicorn)
Reviewed Changes
Copilot reviewed 87 out of 91 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| uv.lock | Added gunicorn (dependency) and uvicorn-worker v0.4.0 with proper platform markers |
| pyproject.toml | Added gunicorn and uvicorn_worker to project dependencies |
| scripts/check_headers.py | Extended to validate copyright headers in JS/TS files, improved error messages |
| tests/utils/test_server_launcher.py | Comprehensive new test suite covering server launch modes, health checks, and error scenarios |
| tests/utils/init.py | New init file with proper copyright header |
| dashboard/* | Multiple new TypeScript/JavaScript files for React dashboard including pages, components, utilities, and styles |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
dashboard/src/layouts/AppLayout.tsx
Outdated
| return; | ||
| } | ||
|
|
||
| if (!disposed && activeController === controller) { |
Copilot
AI
Nov 10, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This negation always evaluates to true.
| except (asyncio.CancelledError, KeyboardInterrupt): | ||
| # Normal shutdown path; propagate without rewrapping | ||
| raise | ||
| except BaseException as exc: |
Copilot
AI
Nov 10, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Except block directly handles BaseException.
| except BaseException as exc: | |
| except Exception as exc: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Copilot reviewed 5 out of 6 changed files in this pull request and generated 1 comment.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| print("shutdown_uvicorn_server start") | ||
| await shutdown_uvicorn_server(self._uvicorn_server, self._uvicorn_task) | ||
| print("shutdown_uvicorn_server complete") |
Copilot
AI
Nov 10, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Debug print statements should be removed from production code. Use the logger instead for debugging output, or remove these statements entirely if they were only used during development.
| print("shutdown_uvicorn_server start") | |
| await shutdown_uvicorn_server(self._uvicorn_server, self._uvicorn_task) | |
| print("shutdown_uvicorn_server complete") | |
| logger.info("shutdown_uvicorn_server start") | |
| await shutdown_uvicorn_server(self._uvicorn_server, self._uvicorn_task) | |
| logger.info("shutdown_uvicorn_server complete") |
|
/ci |
|
🚀 CI Watcher for correlation id-3509881110-mhstvfph triggered by comment 3509881110
✅ All runs completed. |
No description provided.