Skip to content

Add provider status tracking and tools list UI#29

Merged
BillJr99 merged 2 commits into
mainfrom
claude/provider-status-tools-display-emvdvd
Jun 19, 2026
Merged

Add provider status tracking and tools list UI#29
BillJr99 merged 2 commits into
mainfrom
claude/provider-status-tools-display-emvdvd

Conversation

@BillJr99

Copy link
Copy Markdown
Owner

Summary

This PR adds real-time provider initialization status tracking and a new read-only tools list panel to the UI. Users can now see which providers are still initializing, which have failed setup, and browse all registered tools grouped by provider with their readiness status.

Key Changes

  • New API endpoint GET /api/provider-status: Returns per-provider initialization state (pending/ready/failed) with error messages for failed providers
  • Provider status badges: Live yellow "⏳ initializing" and red "✗ setup failed" badges appear in the left-panel provider list during background startup, automatically disappearing once providers are ready
  • Status polling: Frontend polls /api/provider-status every 4 seconds and automatically stops once all providers settle (no pending states remain)
  • Tools list modal: New 📋 Tools navbar button opens a read-only panel showing all registered tools grouped by provider, with provider status badges and tool counts
  • Tools list filtering: Search box in the tools list modal filters by tool name or description
  • CSS styling: Added badge classes for pending/ready/failed status states with appropriate colors (yellow/green/red)
  • Comprehensive tests: Added test coverage for the new /api/provider-status endpoint and UI smoke tests

Implementation Details

  • The provider_status module (imported dynamically) is queried for per-provider state; gracefully returns empty providers dict if the module is not loaded (synchronous mode)
  • Status badges are rendered inline in provider items and updated reactively as polling responses arrive
  • The tools list fetches both /v1/tools and /api/provider-status in parallel for efficiency
  • Provider names in tool function names are parsed (split on __) to group tools by provider in the list view
  • Status polling uses setInterval with automatic cleanup once all providers have settled, reducing unnecessary requests

https://claude.ai/code/session_01Xy6caDMbbavMB1uzAP64jN

claude added 2 commits June 19, 2026 01:18
- New GET /api/provider-status endpoint exposes per-provider initialization
  state (pending/ready/failed) from the background-startup registry
- Provider list now shows "⏳ initializing" badge while setup runs and
  "✗ setup failed" badge (with error tooltip) if setup fails; ready
  providers show no status badge. Badges update every 4 seconds and are
  removed automatically once a provider becomes ready, no matter how long
  initialization takes.
- New "📋 Tools" navbar button opens a read-only modal listing every
  registered tool grouped by provider, with status badges (⏳/✓/✗) and
  tool counts on each section header; includes a name/description filter
- README documents the new badges, Tools panel, and /api/provider-status
  endpoint including the status schema
- 10 new unit tests (8 functional + 2 UI smoke) covering all status states
  and the new UI elements; all 204 tests pass

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Xy6caDMbbavMB1uzAP64jN
The 4-second interval now cancels itself as soon as no providers remain
in the 'pending' state (all are either ready or failed). Providers never
go back to pending without a server restart, so continued polling after
that point would be wasted work.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Xy6caDMbbavMB1uzAP64jN
@BillJr99 BillJr99 merged commit 2516e81 into main Jun 19, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants