fix: Pydantic datetime serialization for API endpoints #97
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem
Several API endpoints return 500 Internal Server Error when datetime objects are present:
GET /agent/{project}/statusGET /devserver/{project}/statusGET /schedules/{project}/nextError message:
Root Cause
Pydantic response models expect strings for
Optional[str]datetime fields, but the code was passing rawdatetimeobjects from the manager classes.Solution
Convert datetime objects to ISO 8601 strings using
.isoformat()before returning in Pydantic response models:Files Changed
server/routers/agent.py- Fixstarted_atserializationserver/routers/devserver.py- Fixstarted_atserializationserver/routers/schedules.py- Fixnext_start/next_endserializationTesting
After this fix, all three endpoints return 200 OK with properly formatted datetime strings.
Summary by CodeRabbit
Bug Fixes
✏️ Tip: You can customize this high-level summary in your review settings.