Skip to content

feat: Test Connection button and descriptive provider error states#628

Merged
rygel merged 7 commits into
developfrom
feat/cycle-12-ui
Jun 11, 2026
Merged

feat: Test Connection button and descriptive provider error states#628
rygel merged 7 commits into
developfrom
feat/cycle-12-ui

Conversation

@rygel

@rygel rygel commented Jun 10, 2026

Copy link
Copy Markdown
Owner

Changes

Task 41: Test Connection Button (P1)

  • Monitor endpoint: POST /api/providers/{providerId}/test accepts API key, resolves provider, tests connectivity
  • Core client: TestProviderConnectionAsync on IMonitorService/MonitorService
  • UI: Test button next to API key editor for StandardApiKey providers with inline feedback

Task 42: Descriptive Error States (P2)

  • ProviderBase: auto-attach HttpFailureContext in all error factory methods and FetchJsonAsync catch blocks
  • Presentation: read FailureContext.Classification to show actionable messages per error type
  • Reuses existing HttpFailureClassification (9 types) instead of adding a duplicate enum

Testing

  • Build: 0 errors, 0 warnings
  • Tests: 1363 passed, 2 skipped

actions-user and others added 6 commits June 3, 2026 20:02
chore: regenerate Gitleaks baseline for v2.3.5
- Add POST /api/providers/{providerId}/test Monitor endpoint
- Add ProviderTestRequest model and route constants
- Add TestProviderConnectionAsync to IMonitorService/MonitorService
- Add GetProviderService lookup to ProviderManager
- Add Test button in Settings UI for StandardApiKey providers
- Shows inline success/failure result after testing
@github-actions

Copy link
Copy Markdown
Contributor

⚠️ Large PR Detected

This PR contains 4572 lines changed across 39 files.

Details:

  • 📁 Files changed: 39
  • ➕ Insertions: 3527
  • ➖ Deletions: 1045
  • 📊 Total: 4572 lines

Recommendation:
Consider splitting this PR into smaller, focused changes to make review easier and faster. PRs under 500 lines are ideal for thorough code review.


This is an automated message. Feel free to ignore if this PR is intentionally large.

- ProviderBase: auto-attach HttpFailureContext in FetchJsonAsync error paths
  (HTTP status, network, timeout, deserialization failures)
- ProviderBase: attach FailureContext in CreateUnavailableUsageFromStatus,
  CreateUnavailableUsageFromException, CreateUnavailableUsageFromProviderException
- Presentation: read FailureContext.Classification to show actionable messages
  (e.g. 'Invalid API key' vs 'Network error' vs 'Rate limited')
- Reuses existing HttpFailureClassification enum instead of adding new ProviderErrorType
@github-actions

Copy link
Copy Markdown
Contributor

⚠️ Large PR Detected

This PR contains 4650 lines changed across 41 files.

Details:

  • 📁 Files changed: 41
  • ➕ Insertions: 3597
  • ➖ Deletions: 1053
  • 📊 Total: 4650 lines

Recommendation:
Consider splitting this PR into smaller, focused changes to make review easier and faster. PRs under 500 lines are ideal for thorough code review.


This is an automated message. Feel free to ignore if this PR is intentionally large.

@rygel
rygel merged commit 8136799 into develop Jun 11, 2026
15 of 19 checks passed
@rygel
rygel deleted the feat/cycle-12-ui branch June 11, 2026 04:37
rygel pushed a commit that referenced this pull request Jun 11, 2026
Pre-existing gap: the provider test endpoint was added in task-41 (C12)
but never documented in the OpenAPI contract. The contract drift check
has been failing since PR #628 merged.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants