- TypeScript 39.1%
- JavaScript 25.1%
- Python 18.2%
- PowerShell 17.1%
- Batchfile 0.3%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
|
||
| .agents | ||
| .backup | ||
| .forgejo | ||
| .github | ||
| data | ||
| dist-package | ||
| doc-new | ||
| docs | ||
| docs-adv | ||
| docs-agent | ||
| mem0 | ||
| resources | ||
| scratch | ||
| scripts | ||
| src | ||
| standalone-cli | ||
| tasks | ||
| templates | ||
| tests | ||
| .antigravityignore | ||
| .env.example | ||
| .gitignore | ||
| .vscodeignore | ||
| aether_session_telemetry.json | ||
| docker-compose.yml | ||
| Dockerfile | ||
| ecosystem.config.js | ||
| esbuild.mjs | ||
| GEMINI.md | ||
| install-aether-standalone.ps1 | ||
| install-aether.bat | ||
| install-silent.vbs | ||
| LICENSE | ||
| matrix_optimization_results.json | ||
| package-lock.json | ||
| package.json | ||
| pomysl.md | ||
| raport-multi-test-speed.json | ||
| raport.md | ||
| README-LLM-INSTALL.md | ||
| README.md | ||
| skrypt.txt | ||
| tsconfig.json | ||
Aether Multi-Proxy 1.1.0 — performance, Windows reliability, LLM-agent quality
Lokalne rozszerzenie VS Code / Antigravity oraz bridge OpenAI na 127.0.0.1:8999. Wydanie naprawczo-optymalizacyjne po audycie z 10 września 2026. Nie obiecuje nieprzerwanej pracy ani obejścia ograniczeń dostawcy.
Co naprawiono
- Rozpoznawanie tras OpenAI przed translacją, obowiązkowe klucze dla chat i listy modeli, ograniczenia modelu/RPM i profil per request.
- Transakcyjny magazyn kluczy między procesami, prawdziwe potwierdzenie aktywacji profilu, bezpieczny zapis JSONC i oryginalnych kopii zapasowych.
- Buforowanie SSE i UTF-8, tryb stream/non-stream, jawne błędy, deadline, anulowanie i backpressure.
- Zachowanie nieprzezroczystych podpisów, oryginalnej tożsamości natywnego IDE oraz instrukcji użytkownika.
- Respektowanie cooldownów/Retry-After i nieznanych limitów; brak automatycznego ponawiania generacji po 429/403/400/404/5xx.
Co nowego w 1.1.0
Wydajność (benchmark loopback, 500 req): SSE jednokrotnie parsowany (JSON.parse 404→203 na 200 ramkach), brak podwójnych klonów profili/payloadów, cache profilu per request, ring buffer telemetrii, cache hashy, tanie klasyfikatory URL. p95 64 KiB: 8.42→3.23 ms; handler SSE 22.7→16.3 ms; 1 MiB p95: 23.82→18.25 ms.
Stabilność Windows 10/11: graceful shutdown przez uwierzytelniony POST /aether/shutdown (token w ~/.hermes/daemon.token 0o600), taskkill jako fallback z weryfikacją obrazu PID, pliki PID i lock pojedynczej instancji, odtwarzanie ustawień IDE przy stopie, autostart daemona wyłącznie opt-in (aether.autoStartDaemon, domyślnie false) z deregistracją przy deinstalacji (vscode:uninstall), fsync przed rename i kwarantanna uszkodzonych plików kont, locki z PID i retry zamiast trwałej blokady, healthchecki z retry zamiast fałszywych negatywów przy wolnym starcie.
Jakość agentów LLM: pełne top_k, thinking budget z wymuszonym maxOutputTokens ≥ budget+4096, szczegóły blockReason w finish_reason, ujednolicone ID tool-calli, sanitizer checkpointów tylko po znacznikach (nie po polskich frazach), instrukcje z filtrowaniem per profil, skills z mapą synonimów PL/EN i brakiem losowych wyborów przy zerowym dopasowaniu, statusy MCP DECLARED/niezweryfikowany zamiast fałszywego ONLINE, nowe presety planner_l5/coder_l3/reviewer_l2, workflow kończy się FAILED przy nieudanym kroku i nie zapisuje niezweryfikowanych „sukcesów" do pamięci, błędy bridge z completion id i retryable/retry_after.
Bezpieczeństwo: usunięto twardo zakodowany klucz API mem0 z kodu (konfiguracja przez MEM0_API_KEY; zdalny endpoint bez klucza jest wyłączony). Jeśli używałeś wcześniejszej wersji, unieważnij stary klucz po stronie serwera — zmiana w kodzie nie cofa wycieku z wcześniejszych plików.
Build i testy
Node.js 20+ oraz npm. Testy wydania wykonano na Node.js 24.14.1.
npm ci --ignore-scripts
npm run typecheck
npm run build
npm test
node scripts/bench-loopback.mjs # benchmark offline, bez sieci
npm test uruchamia 10 zestawów regresji offline (w tym rzeczywisty HTTP loopback); nie używa kont dostawcy. Runner tworzy tymczasowy HOME. npm run test:legacy zachowuje historyczny runner, który zawiera stare oczekiwania oraz wywołania live i zapisuje konfigurację. Nie uruchamiaj go na produkcyjnym HOME; NIE jest zieloną bramką tego wydania. Szczegóły: REPAIR_NOTES_PL.md i verification/.
Użycie
- Zachowaj dotychczasowy projekt i kopię własnej konfiguracji. Rozpakuj tę wersję do osobnego katalogu. ZIP nie zawiera kont, baz danych ani node_modules.
- Do testowania rozszerzenia użyj standardowego Extension Development Host w VS Code lub własnej procedury pakowania VSIX. Gotowe bundle są w dist/. Ten ZIP nie jest plikiem VSIX.
- W panelu dodaj swoje autoryzowane konto OAuth i odśwież jego limity. Brak ustalonego projektu albo nieznana kwota nie jest udawana jako gotowość konta; sprawdź komunikat i konfigurację konta.
- Utwórz lokalny klucz bridge’a i przypisz mu profil/model. W kliencie OpenAI ustaw base URL http://127.0.0.1:8999/v1 i lokalny klucz w bezpiecznym polu klienta. Nie wklejaj kluczy do logów ani zgłoszeń.
- Daemon standalone: node dist/daemon.js. Uruchomienie daemona może aktualizować endpointy IDE; nie startuj go równolegle z inną niekontrolowaną instancją.
Istotne granice zachowania
- Wyłącznie uwierzytelniony bridge korzysta z puli kont. Natywne żądania IDE zachowują oryginalny bearer i projekt; profil nie loguje IDE na inne konto.
- Podpisana historia natywna pozostaje niezmieniona. Nie stosujemy do niej przeróbek profilu. Podpisana historia przez bridge bez weryfikowalnego powiązania konta zwraca 409 signed_identity_unverified, zamiast fałszować podpis.
- Profil stosuje model, generationConfig i instrukcję systemową do niepodpisanych żądań. Automatyczne wzbogacanie payloadu o skills/MCP, pruning i narzędzia na podstawie samych nazw UI nie jest wykonywane przez nową bezpieczną ścieżkę gateway. Już przekazane deklaracje narzędzi są zachowane.
- Dla HTTP 401 dopuszczalne jest jedno odświeżenie tego samego konta przed rozpoczęciem odpowiedzi. Po 429 nie ma rotacji/replay tego żądania.
- To usługa trusted-loopback. Nie udostępniaj jej publicznie ani przez tunel: endpointy kontrolne i CONNECT nie stanowią publicznego API.
- Nie wykonano testu w rzeczywistym IDE ani z usługą dostawcy. Obsługa /v1internal i funkcji narzędziowych wymaga testu integracyjnego na Twojej autoryzowanej konfiguracji. Mem0 dołączono jako niezmieniony kod pomocniczy, nie uruchamiano jego integracji.