- Replace native kimi CLI launcher with Claude Code + Kimi backend
- Update README description and permission flags
- Update test_isolated.sh and tests/test_fixes.sh for new ai-kimi logic
- Add claude-openai-anthropic-proxy.py (Anthropic ↔ OpenAI translator)
- Rewrite claude_kimi to use native kimi CLI instead of Claude wrapper
- Add OpenAI-compatible API test helpers (_claude_test_openai_api, _handle_openai_api_response)
- Replace 127.0.0.1 with localhost for broader compatibility
- Add test for query-string handling in Kimi proxy
- Update README to reflect Artemox API usage
В Claude Code v2.x команда "claude auth login" запускает полный интерактивный TUI
(включая "Welcome to Claude Code" и "Select login method"), а затем функция дополнительно
вызывала claude "$@" — вторая сессия. Пользователь проходил выбор типа аккаунта дважды.
Исправление: ветка [L] теперь запускает claude "$@" напрямую с нужными моделями
и сразу делает return "$?", не допуская повторного вызова claude снизу функции.
Claude сам обрабатывает весь auth flow (браузер → OAuth → выбор аккаунта) за одно
взаимодействие.
Добавлен тест test_fix8_no_double_login (3 проверки), итого 24/24.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Fix 1: export ANTHROPIC_API_KEY при ручном вводе ключа в claude_anthropic ([K]-ветка);
без export subprocess claude не видел ключ и падал с ошибкой авторизации
- Fix 2: trap RETURN в claude_gpt убивает прокси при любом ранем return 1,
устраняя утечку фоновых процессов
- Fix 3: sleep 1 заменён на poll-цикл (10 попыток, curl exit 7 = connection refused);
connection refused теперь не маскируется под «нет сети»
- Fix 4: после codex auth login в claude_gpt добавлена повторная проверка _claude_test_api;
прежде claude запускался без подтверждения успешности reauth
- Fix 5: аналогичная re-валидация в claude_gemini после браузерной авторизации
(ветки 401/403 и 429)
- Fix 6: prompt [c/Q] → [C/q] в 429-обработчике claude_anthropic — заглавная буква
соответствует умолчанию (стандарт файла: CAPITAL = default)
- Fix 7: trap 'rm -rf "$TMP"' EXIT — одинарные кавычки + кавычки вокруг $TMP,
предотвращают word-split при путях с пробелами
Добавлены тесты: tests/test_fixes.sh (21 тест, все проходят)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>