42 lines
1.7 KiB
Markdown
42 lines
1.7 KiB
Markdown
# Task Logs - Fix Reset Document Status Feature
|
|
|
|
**Date**: 2025-12-05
|
|
**Mode**: beastmode
|
|
|
|
## Actions
|
|
- Fixed bug in `reset_document_status` endpoint: changed attribute access (`status_doc.content_summary`) to dict key access (`status_doc.get("content_summary", "")`)
|
|
- Cleared Python cache and reinstalled package with `pip install -e .`
|
|
- Restarted LightRAG server to pick up changes
|
|
- Verified endpoint registration via OpenAPI spec
|
|
- Tested API endpoint with curl - successfully reset document from "failed" to "pending"
|
|
- Rebuilt WebUI with `bun run build`
|
|
|
|
## Decisions
|
|
- Used `.get()` with default values for safe dict access to handle potentially missing keys
|
|
- Kept existing endpoint design pattern consistent with other document routes
|
|
|
|
## Changes Made
|
|
|
|
### `lightrag/api/routers/document_routes.py`
|
|
- Line 3280-3293: Changed from object attribute access to dict key access:
|
|
```python
|
|
# Before (buggy):
|
|
"content_summary": current_status.content_summary,
|
|
"content_length": current_status.content_length,
|
|
...
|
|
|
|
# After (fixed):
|
|
"content_summary": current_status.get("content_summary", ""),
|
|
"content_length": current_status.get("content_length", 0),
|
|
...
|
|
```
|
|
|
|
## Next Steps
|
|
- Test the "Reset to Pending" button in the WebUI
|
|
- Document the new API endpoint in API documentation
|
|
- Consider adding rate limiting for reset endpoint
|
|
|
|
## Lessons/Insights
|
|
- `PGDocStatusStorage.get_by_id()` returns a dict, not a `DocProcessingStatus` object - important to check return types when working with storage adapters
|
|
- Server needs package reinstall (`pip install -e .`) when router structure changes, not just cache clearing
|
|
- OpenAPI spec is the source of truth for verifying endpoint registration
|