Release Notes: v0.5.0¶
Release Date: 2026-04-04
Summary¶
Agent Experience (AX) integration for machine-readable error handling. Errors are now classified into 8 categories with actionable metadata, enabling agents to make intelligent retry decisions.
Highlights¶
- Error classification with
DeepgramClassifierimplementingresilience.ErrorClassifier - All provider errors wrapped in
resilience.ProviderErrorwith classification metadata - 8 error categories: transient, rate_limit, validation, auth, not_found, server, quota, unknown
- Automatic retry decisions based on error retryability
Added¶
Error Classification¶
omnivoice.DeepgramClassifier- Classifies Deepgram-specific errors using HTTP status codes and error message patternsomnivoice.ClassifyError()- Convenience function to wrap errors with AX metadata
Error Categories¶
| Category | Retryable | Description |
|---|---|---|
transient |
Yes | Temporary failures (timeout, connection reset) |
rate_limit |
Yes | Rate limited (429) |
server |
Yes | Server errors (500, 502, 503) |
validation |
No | Invalid request (400, 422) |
auth |
No | Authentication/authorization (401, 403) |
not_found |
No | Resource not found (404) |
quota |
No | Quota exceeded |
unknown |
No | Unclassified errors |
Changed¶
- STT provider now wraps all errors in
resilience.ProviderError - TTS provider now wraps all errors in
resilience.ProviderError - Error messages include provider name, operation, and classification metadata
Usage¶
import (
"github.com/plexusone/omnivoice-deepgram/omnivoice/tts"
"github.com/plexusone/omnivoice-core/resilience"
)
provider, _ := tts.New(tts.WithAPIKey("your-api-key"))
result, err := provider.Synthesize(ctx, "Hello", config)
if err != nil {
// Check if error is retryable
if pe, ok := resilience.IsProviderError(err); ok {
if pe.IsRetryable() {
// Safe to retry with backoff
fmt.Printf("Retryable error: %s\n", pe.GetCode())
} else {
// Don't retry, take corrective action
fmt.Printf("Error: %s\nSuggestion: %s\n",
pe.GetCode(), pe.GetSuggestion())
}
}
}
Dependencies¶
- Requires
github.com/plexusone/omnivoice-corev0.8.0+ forresiliencepackage
Tests¶
- 26 test cases covering all error categories
- Tests for HTTP status code classification
- Tests for error message pattern matching