Upload 5 modified files from chat-switchboard-v0.5.1-1.zip
This commit is contained in:
@@ -260,7 +260,17 @@ async function sendMessage() {
|
||||
UI.toast('Generation stopped', 'warning');
|
||||
} else {
|
||||
console.error('Completion error:', e);
|
||||
UI.toast(e.message, 'error');
|
||||
// Distinguish provider-side auth errors from session issues
|
||||
const msg = e.message || '';
|
||||
if (msg.includes('provider error') && msg.includes('401')) {
|
||||
UI.toast('Provider API key rejected — check your key in Settings → Providers', 'error');
|
||||
} else if (msg.includes('provider error') && msg.includes('429')) {
|
||||
UI.toast('Provider rate limit hit — wait a moment and retry', 'warning');
|
||||
} else if (msg.includes('no API config') || msg.includes('no model')) {
|
||||
UI.toast('No provider configured — add one in Settings → Providers', 'error');
|
||||
} else {
|
||||
UI.toast(msg, 'error');
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
App.isGenerating = false;
|
||||
@@ -306,7 +316,14 @@ async function regenerate() {
|
||||
chat.messages.push({ role: 'assistant', content, model, timestamp: new Date().toISOString() });
|
||||
UI.showRegenerate(true);
|
||||
} catch (e) {
|
||||
if (e.name !== 'AbortError') UI.toast(e.message, 'error');
|
||||
if (e.name !== 'AbortError') {
|
||||
const msg = e.message || '';
|
||||
if (msg.includes('provider error') && msg.includes('401')) {
|
||||
UI.toast('Provider API key rejected — check Settings → Providers', 'error');
|
||||
} else {
|
||||
UI.toast(msg, 'error');
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
App.isGenerating = false;
|
||||
App.abortController = null;
|
||||
|
||||
Reference in New Issue
Block a user