fix(wizard): ключ брался из глобальной переменной, а не из поля

При проверке подключения ключ читался из window._wiz_token. Переменная
переживает предыдущие попытки подключения и могла оказаться пустой или от
другого провайдера: OpenRouter отвечал «HTTP 401: Missing Authentication
header» при заполненном поле, и причина была не видна.

Прямой вызов validate_connection с ключом даёт «401: User not found», то
есть заголовок формируется верно — дело было в источнике значения.

Теперь ключ и адрес читаются из полей в момент проверки.

609 passed, ruff clean.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Hermes Team 2026-09-01 02:34:13 +07:00
parent eeeed36358
commit 2bbb9db5de

View file

@ -3127,7 +3127,15 @@ async function proceedToWizardStep3(providerId) {
if (tokenInput || baseInput) {
const feedback = document.getElementById('modal-feedback-area');
if (feedback) feedback.textContent = 'Проверка подключения и запрос моделей…';
const result = await executeAction('validate_connection', {provider: providerId, token: window._wiz_token || '', base_url: window._wiz_base_url || ''});
// Ключ читаем из поля прямо сейчас, а не из глобальной переменной:
// она переживает предыдущие попытки подключения и может оказаться пустой
// или чужой. Провайдер тогда отвечает «Missing Authentication header» при
// заполненном поле, и владелец не понимает, в чём дело.
const liveToken = (tokenInput && tokenInput.value.trim()) || window._wiz_token || '';
const liveBase = (baseInput && baseInput.value.trim()) || window._wiz_base_url || '';
window._wiz_token = liveToken;
window._wiz_base_url = liveBase;
const result = await executeAction('validate_connection', {provider: providerId, token: liveToken, base_url: liveBase});
if (!result?.ok) {
if (feedback) feedback.textContent = result?.message || 'Нет ответа от сервера';
return;