feat: add vector sync processing status to /user/page endpoint
Add real-time processing status display to the browser UI at /user/page showing indexed document count, pending queue size, and sync status. Implements the status display described in ADR-007 lines 280-298. Changes: - Store document_queue and related state in app.state for route access - Add _get_processing_status() helper to query Qdrant and check queue - Display status section in user_info_html() with indexed/pending counts - Show color-coded status badge (green "Idle" or orange "Syncing") - Only displays when VECTOR_SYNC_ENABLED=true Status appears in both BasicAuth and OAuth modes, positioned after session info but before logout buttons. Numbers are formatted with commas for readability. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -1026,6 +1026,22 @@ def get_app(transport: str = "sse", enabled_apps: list[str] | None = None):
|
||||
shutdown_event = anyio_module.Event()
|
||||
scanner_wake_event = anyio_module.Event()
|
||||
|
||||
# Store in app state for access from routes (ADR-007)
|
||||
app.state.document_queue = document_queue
|
||||
app.state.shutdown_event = shutdown_event
|
||||
app.state.scanner_wake_event = scanner_wake_event
|
||||
|
||||
# Also share with browser_app for /user/page route
|
||||
for route in app.routes:
|
||||
if isinstance(route, Mount) and route.path == "/user":
|
||||
route.app.state.document_queue = document_queue
|
||||
route.app.state.shutdown_event = shutdown_event
|
||||
route.app.state.scanner_wake_event = scanner_wake_event
|
||||
logger.info(
|
||||
"Vector sync state shared with browser_app for /user/page"
|
||||
)
|
||||
break
|
||||
|
||||
# Start background tasks using anyio TaskGroup
|
||||
async with anyio_module.create_task_group() as tg:
|
||||
# Start scanner task
|
||||
|
||||
Reference in New Issue
Block a user