* feat(docs): mirror every docs/ page in all 65 locales Extends the documentation mirrors from the 22-page core set (#13940) to every Markdown page under docs/: 152 sources x 65 locales = 9,880 mirrors (6,208 new), language bars rewritten for the full locale list, state adopted so the blocking drift gate now covers all 152 pages. run-translation.mjs: an oversized block made only of table rows or list items (PROVIDER_REFERENCE.md 244-row table, FREE_TIERS.md 71-item list) is cut at item boundaries and rejoined without a blank line — the single 16-40 KB request outlived the backend socket for verbose scripts. 48 older mirrors whose tables had lost rows were retranslated with --force. * docs(i18n): refresh mirrors for the sources the base changed since the branch cut Section-level retranslation of the 29 docs (and README.md) whose source or mirrors moved on release/v3.8.51 during the run, then state adoption; the drift gate is green again on the merged tree.
25 KiB
Stealth Guide (Suomi)
🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇳🇬 ha · 🇮🇱 he · 🇮🇳 hi · 🇭🇷 hr · 🇭🇺 hu · 🇦🇲 hy · 🇮🇩 id · 🇳🇬 ig · 🇮🇹 it · 🇯🇵 ja · 🇬🇪 ka · 🇰🇭 km · 🇮🇳 kn · 🇰🇷 ko · 🇱🇹 lt · 🇱🇻 lv · 🇮🇳 ml · 🇮🇳 mr · 🇲🇾 ms · 🇲🇹 mt · 🇲🇲 my · 🇳🇵 ne · 🇳🇱 nl · 🇳🇴 no · 🇮🇳 or · 🇮🇳 pa · 🇵🇭 phi · 🇵🇱 pl · 🇵🇹 pt · 🇧🇷 pt-BR · 🇷🇴 ro · 🇷🇺 ru · 🇱🇰 si · 🇸🇰 sk · 🇸🇮 sl · 🇷🇸 sr · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW
Totuuden lähde:
open-sse/utils/tlsClient.ts,open-sse/services/{tlsClientBase,claudeTlsClient,perplexityTlsClient,grokTlsClient,notionTlsClient,lmarenaTlsClient,claudeCodeCCH,claudeCodeFingerprint,claudeCodeObfuscation,claudeCodeCompatible}.ts,open-sse/config/cliFingerprints.ts,src/mitm/Viimeksi päivitetty: 2026-09-02 — v3.8.51 Kohderyhmä: Palveluntarjoajakohtaisia häivetoteutuksia ylläpitävät insinöörit.
OmniRoute integroituu palveluntarjoajiin, joiden reunapalvelut tunnistavat aktiivisesti epävirallisia asiakasohjelmia sormenjälkien perusteella (TLS JA3/JA4, otsakkeiden järjestys, JSON-pyynnön rungon rakenne, eheystunnisteet). Tällä sivulla kuvataan OmniRouten tarjoamat häiveominaisuudet ja niiden toteutussijainnit.
Oikeudellinen ja eettinen huomautus
Häiveominaisuudet ovat olemassa, jotta OmniRoute voi toimia yhteensopivuuskerroksena käyttäjän omistamien virallisten tilien (Claude Code CLI, Codex, Antigravity, Cursor jne.) ja OmniRouten yhtenäisen API:n välillä. Niitä ei ole tarkoitettu petosten tunnistamisen kiertämiseen, tunnistetietojen jakamiseen tai palveluntarjoajien käyttöehtojen rikkomiseen. Ylläpitäjät edellyttävät, että operaattorit noudattavat niitä ylävirran käyttöehtoja, jotka he hyväksyivät tilejä luodessaan.
TLS-sormenjälkikerros
open-sse/utils/tlsClient.ts — wreq-js (Chrome 124)
Pysyvät wreq-js-istunnot luodaan laiskasti tilikohtaisesti ja ratkaistun välityspalvelimen mukaan. Prosessinlaajuinen TlsClient ylläpitää enintään 128 istunnon poolia, jotka jäljittelevät Chrome 124:ää macOS:ssä Cloudflaren takana oleville ylävirran palveluille. TlsClient.fetch() keskeyttää turvallisesti, kun natiivi suoritusympäristö ei ole käytettävissä; kutsuja voi nimenomaisesti valita varavaihtoehdon tämän kääreen ulkopuolella.
- Istuntoprofiili:
browser: "chrome_124", os: "macos" - Välityspalvelimen ratkaisu (prioriteettijärjestys):
HTTPS_PROXY→HTTP_PROXY→ALL_PROXY(myös pienillä kirjaimilla) - Aikakatkaisu:
TLS_CLIENT_TIMEOUT_MS(periytyy muuttujastaFETCH_TIMEOUT_MS, oletus 600000) wreq-js-vastaus on fetch-yhteensopiva (headers,text(),json(),clone(),body).- Ensimmäisen tavun valvonta (
open-sse/utils/tlsFirstByteWatchdog.ts, #12656):TlsClient.fetch()palautuu heti, kun ylävirran otsakkeet saapuvat, jotenTLS_CLIENT_TIMEOUT_MSei yksin voi rajata rungon käsittelyaikaa, jos runko ei koskaan tuota ensimmäistä tavua.guardTlsFirstByte()asettaa rungon ensimmäisenread()-kutsun kilpailemaan aikarajanTLS_FIRST_BYTE_WATCHDOG_MSkanssa (oletus10000, arvo0poistaa sen käytöstä); toimivaan runkoon tämä ei vaikuta, kun taas pysähtynyt runko peruuttaa wreq-lukijan ja antaaproxyFetch-toiminnon olemassa olevan TLS-varalogiikan jatkaa suoraan/välityspalvelimen kautta toimivaan välittäjään (pyyntö, jota ei voi turvallisesti toistaa, esimerkiksi rungollinen POST-pyyntö, aiheuttaa edelleen poikkeuksen sen sijaan, että se yritettäisiin hiljaisesti uudelleen).
Web-evästeitä käyttävä palveluntarjoajasiirto — wreq-js 3.2.0
open-sse/services/tlsClientBase.ts on alla olevien viiden erikoistuneen
web-evästeitä käyttävän siirtotavan jaettu sovitin. Kukin kevyt palveluntarjoajakääre valitsee selain-/käyttöjärjestelmäprofiilin. Sovitin
käyttää tiedostossa open-sse/utils/tlsClient.ts olevaa yhtä wreq-suoritusympäristön lataajaa ja siirtopoolia, jonka avaimena on
profiili + käyttöjärjestelmä + ratkaistu välityspalvelin, ja jokainen pyyntö käyttää asetusta cookieMode: "ephemeral". Tilit ja
pyynnöt jakavat näin siirtotason yhteydet, mutta eivät koskaan wreq-istuntoa tai evästesäilöä.
| Palveluntarjoaja | Profiili | Emuloitu käyttöjärjestelmä | Virran EOF-käytäntö |
|---|---|---|---|
| Claude | chrome_146 |
Linux | sisällytä [DONE] |
| Perplexity | firefox_148 |
macOS | sisällytä event: end_of_stream |
| Grok | chrome_146 |
Linux | jätä [DONE] pois |
| Notion | chrome_146 |
Windows | sisällytä [DONE] |
| LMArena | chrome_146 |
Windows | ei vartioarvoa; sulje natiivissa EOF-tilassa |
- Suoratoisto kuluttaa natiivin vastauksen
ReadableStream-virtaa suoraan; väliaikaistiedostoa tai oheisprosessia ei luoda. - Enintään 256 ensimmäistä tavua tarkastetaan ennen virran tarjoamista. SSE-palveluntarjoajat puskuroivat muut kuin SSE-
virheet; Grok/LMArena muuntavat Cloudflare-haasteet tilakoodiksi
403ja HTML-välisivut tilakoodiksi502. - Natiivin pyynnön aikakatkaisua rajoittaa lisäksi absoluuttinen JS:n kova määräaika. Jumiutuminen mitätöi ja sulkee vain kyseisen profiilin/käyttöjärjestelmän/välityspalvelimen siirtoyhteyden, ennen kuin seuraava pyyntö luo sen uudelleen.
- Välityspalvelimen ratkaisun kutsukohtainen prioriteettijärjestys on
proxyUrl→ pyyntökohtainen tili-/hallintapaneelikonteksti →HTTPS_PROXY/HTTP_PROXY/ALL_PROXY(mukaan lukien pienikirjaimiset versiot). Ratkaisuvirheet keskeyttävät turvallisesti sen sijaan, että suora yhteys vuotaisi. LMArena tekee ratkaisun tarkoituksellisesti kohdettaarena.aivasten. byteResponsepalauttaa sisältötyypitetyndata:-URL:n ilman UTF-8-vaurioita.- Virheet ovat
TlsClientUnavailableError(paketti/lisäosa ei ole käytettävissä),TlsClientHangError(määräaika ylittyi) jaWreqTransportCapacityError(jaetun istuntokapasiteettivirheen koodi), kun kaikki 128 rajattua profiili-/käyttöjärjestelmä-/välityspalvelinpaikkaa ovat aktiivisia tai sulkeutumassa.
Yllä kuvattu yleinen TlsClient-istunto on edelleen erikoistettu selaimen tukemaan pysyvään evästetilaan.
Molemmat polut käyttävät uudelleen yhtä välimuistiin tallennettua wreq-moduulin lataajaa ja prosessin elinkaarikoukkua; niiden poolit pysyvät
erillisinä, koska niiden evästeiden elinkaaret ovat tarkoituksellisesti erilaiset.
Kiinnitetty paketti tukee profiileja, mutta todellisen WAF:n hyväksyntä voi muuttua paikallisista sopimustesteistä riippumatta. Validoi sormenjälkimuutokset erikseen valtuutettua aktiivista tiliä vasten, ennen kuin ilmoitat vastaavuudesta ylävirran selaimen kanssa.
Claude Code -häivepaketti
Kun cliCompatMode on käytössä, OmniRoute muotoilee lähtevät Claude-pyynnöt uudelleen niin, ettei niitä voi erottaa claude-cli-liikenteestä. Kolme moduulia toimii yhdessä:
claudeCodeFingerprint.ts
Laskee laskutusotsakkeeseen upotetun 3-merkkisen cc_version-sormenjäljen:
SHA256(SALT + msg[4] + msg[7] + msg[20] + version)[:3]
FINGERPRINT_SALT = "59cf53e54c78"(kovakoodattu; vastaa virallista asiakasohjelmaa)- Syötteet: ensimmäisen käyttäjäviestin tekstin indeksien 4, 7 ja 20 merkit + versiojono
- Tulos: 3-merkkinen heksadesimaalietuliite
claudeCodeCCH.ts (asiakassisällön tiiviste)
Palvelinpuolen eheystarkistus, jonka virallinen Claude Code CLI laskee Bun/Zigillä. OmniRoute toteuttaa sen uudelleen xxhash-wasm-paketilla:
- Serialisoi runko käyttäen
cch=00000;-paikkamerkkiä xxhash64(bytes, seed) & 0xFFFFF- Nollilla täytetty 5-merkkinen heksadesimaaliarvo pienillä kirjaimilla
- Korvaa
cch=00000;lasketulla tunnisteella
Vakiot:
- Siemen:
0x6e52736ac806831e - Lauseke:
/\bcch=([0-9a-f]{5});/
claudeCodeObfuscation.ts
Lisää Unicode-nollaleveyksisen yhdistäjän (U+200D) arkaluonteisten asiakasohjelmien nimien ensimmäisen merkin jälkeen, jotta ylävirran suodattimet eivät voi löytää niitä grep-haulla. Oletussanaluettelo:
opencode, open-code, cline, roo-cline, roo_cline, cursor, windsurf,
aider, continue.dev, copilot, avante, codecompanion
Kohteet: system-lohkot, kaikki messages[].content-sisällöt sekä tools[].description / tools[].function.description. Operaattori voi korvata asetuksen setSensitiveWords()-toiminnolla.
claudeCodeCompatible.ts — anthropic-compatible-cc-*-palveluntarjoajat
Kolmannen osapuolen Anthropic-välityspalveluille, jotka hyväksyvät vain ”aidon Claude Code” -liikenteen:
CLAUDE_CODE_COMPATIBLE_USER_AGENT = "claude-cli/2.1.258 (external, sdk-cli)"CLAUDE_CODE_COMPATIBLE_STAINLESS_PACKAGE_VERSION = "0.112.1"CLAUDE_CODE_COMPATIBLE_STAINLESS_RUNTIME_VERSION = "v26.3.0"anthropic-beta = "claude-code-20250219,interleaved-thinking-2025-05-14,effort-2025-11-24"oletuksena- Yhteyskohtainen ”Enable redact-thinking beta” -valitsin lisää arvon
redact-thinking-2026-02-12, kun CC Compatible -ylävirta edellyttää nimenomaisesti peitettyjä päättelyvirtoja - Yhteyskohtainen ”Enable summarized thinking display” -valitsin tallentaa arvon
providerSpecificData.requestDefaults.summarizeThinkingja lisää asetuksendisplay: "summarized"CC Compatible -päättelypyyntöihin, joissa näyttötilaa ei ole jo määritetty CONTEXT_1M_BETA_HEADER = "context-1m-2025-08-07"(Opus/Sonnet 4.x -tuoteperhe)- Oletuspolku:
/v1/messages?beta=true
Saman paketin rinnakkaismoduulit:
claudeCodeConstraints.ts— lämpötila- ja välimuistinhallintasäännötclaudeCodeToolRemapper.ts— työkalunimien uudelleenkartoitusclaudeCodeExtraRemap.ts— hyötykuorman lisänormalisointi
Antigravity-häive
Antigravity-pyynnöt säilyttävät kutsujan tekstin tavu tavulta. OmniRoute ei lisää kehotteisiin nollaleveyksisiä merkkejä eikä nimeä työkaluja uudelleen tai lisää niitä jäljitelläkseen IDE-asiakasohjelmaa.
antigravityHeaderScrub.ts
Poistaa Stainless SDK -merkinnät (x-stainless-lang, x-stainless-package-version, x-stainless-os, x-stainless-arch, x-stainless-runtime, x-stainless-runtime-version, x-stainless-timeout, x-stainless-retry-count, x-stainless-helper-method) ennen välittämistä.
⚠️ Riski: ANTIGRAVITY_CREDITS=always (suuri tilikiellon riski)
ANTIGRAVITY_CREDITS=always (käytössä tiedostossa open-sse/executors/antigravity.ts) reitittää jokaisen pyynnön Antigravity AI Credit Overages -ylityslaskutuksen kautta (maksulliset Google-krediitit) sen sijaan, että Googlen maksuttoman tason kiintiön annettaisiin rajoittaa käyttöä. Tämä on dokumentoitu ominaisuutena, mutta se on yleisin näkemämme ilmoitettu käyttöehtorikkomus — useita Google Ultra -tilejä on estetty muutaman tunnin käytön jälkeen vastauksella 403 / "service disabled for ToS violation" / insufficient_quota, kun käytössä on ollut =always.
Ylävirran valvonta tapahtuu Googlen puolella, eikä OmniRoute voi estää sitä. Ympäristömuuttujan nimi ja nykyinen dokumentaatio saavat asetuksen vaikuttamaan turvalliselta ottaa käyttöön, mutta sitä se ei ole.
Miksi tämä käynnistää väärinkäytön tunnistuksen herkemmin kuin pelkkä maksuttoman tason käyttö:
- Jatkuva automatisoitu rahankäyttö yhdellä Google-tilillä merkitään eri tavalla kuin maksuttoman tason käyttö, joka saavuttaa kiintiön ja pysähtyy.
- Krediittien ylityskäytöllä ei ole nopeusrajoitusta, joten väärin määritetty asiakasohjelma voi kuluttaa satoja Yhdysvaltain dollareita minuuteissa ja näyttää API-avainten jälleenmyynniltä tai bottiliikenteeltä.
- Useiden OmniRoute-käyttäjien rinnakkainen ylityskrediittien käyttö samasta ulkoisesta IP-osoitteesta voimistaa signaalia.
Suositeltu toimintatapa:
- Säilytä oletusarvo
ANTIGRAVITY_CREDITS=off, ellei operaattori nimenomaisesti hyväksy maksullisiin krediitteihin ja tilin valvontatoimiin liittyvää riskiä.retrylähettää ensin tavallisen pyynnön ja lisää krediitit enintään kerran ehdot täyttävän kiintiöön liittyvän 429-virheen jälkeen;alwayslisää krediitit jo ensimmäiseen pyyntöön. - Jaa kuorma palveluntarjoajien kesken Auto-Combolla (
model: "auto"taikr/glm/etc-combo) sen sijaan, että kuormittaisit yhden Antigravity-tilin äärimmilleen. - Aseta yhteyskohtaiset RPM-rajat Antigravity-palveluntarjoajan muokkaussivulla (Dashboard → Providers → Antigravity → yhteys → nopeusrajoitus). 30–60 RPM on perusteltavissa oleva yläraja jatkuvalle käytölle.
- Käytä vakaata, operaattorin hallitsemaa ylävirran verkkoyhteyttä ja vältä yhden tilin jakamista toisistaan riippumattomien käyttäjien tai työkuormien kesken.
- Jos tili estetään: tee valitus osoitteessa
support.google.com→ ”Restore Workspace/Account access” ja liitä mukaan Googlen lähettämä täsmällinenquota_exceeded/service disabled-vastausrunko. Tilin palauttamista ei taata.
Ympäristömuuttujien viitedokumentaatiossa kuvataan kunkin krediittitilan vaikutukset tiliin ja kuluihin.
Liittyvät kohdat:
open-sse/executors/antigravity.ts— lukee arvonprocess.env.ANTIGRAVITY_CREDITSsrc/lib/oauth/providers/antigravity.ts— tunnistetietojen välitys- Alkuperäinen tapahtumaraportti: keskustelu #1183
CLI-sormenjälkirekisteri — open-sse/config/cliFingerprints.ts
Palveluntarjoajakohtainen taulukko, joka määrittää virallisten CLI-työkalujen mitmproxy-jäljityksistä tallennetun otsakkeiden täsmällisen järjestyksen ja JSON-rungon kenttien järjestyksen. Tällä hetkellä rekisteröityinä: codex, claude sekä suorituksen aikana johdetut profiilit tiedostossa providerHeaderProfiles.ts palveluntarjoajille antigravity ja github.
interface CliFingerprint {
headerOrder: string[]; // kirjainkoko merkitsevä
bodyFieldOrder: string[]; // ylätason JSON-avaimet
userAgent?: string | (() => string);
extraHeaders?: Record<string, string>;
}
Ota käyttöön tai poista käytöstä palveluntarjoajakohtaisesti ympäristömuuttujan avulla (katso alta). Kun toiminto on poistettu käytöstä, otsakkeet ja rungon avaimet näkyvät siinä järjestyksessä, jossa Node/JSON ne tuotti — ne on helppo tunnistaa sormenjäljen perusteella.
MITM-välityspalvelin (Antigravity, Linux/macOS/Windows)
CLI-työkaluille, joiden binääritiedostoja ei voi uudelleenohjata OPENAI_BASE_URL-muuttujan avulla, OmniRoute suorittaa paikallista TLS-yhteydet päättävää välityspalvelinta. Päätepisteet sijaitsevat hakemistossa src/app/api/cli-tools/antigravity-mitm/.
| Menetelmä | Päätepiste | Tarkoitus |
|---|---|---|
| GET | /api/cli-tools/antigravity-mitm |
Tila — käynnissä, pid, dnsConfigured, certExists |
| POST | /api/cli-tools/antigravity-mitm |
Käynnistä MITM (vaatii apiKey + sudoPassword) |
| DELETE | /api/cli-tools/antigravity-mitm |
Pysäytä MITM |
| GET | /api/cli-tools/antigravity-mitm/alias |
Luettele mallien aliakset |
| PUT | /api/cli-tools/antigravity-mitm/alias |
Tallenna työkalun mallialiakset |
Siepattava kohdeisäntä: daily-cloudcode-pa.googleapis.com (Antigravityn ylävirran palvelin).
Käynnistysjärjestys (src/mitm/manager.ts::startMitm)
- Luo itse allekirjoitettu varmenne
selfsigned-paketilla (RSA-2048, SHA-256, 1 vuosi) —cert/generate.ts - Asenna varmenne järjestelmän luottamusvarastoon —
cert/install.ts - Lisää hosts-merkintä
127.0.0.1 daily-cloudcode-pa.googleapis.com—dns/dnsConfig.ts - Käynnistä
src/mitm/server.cjsmuuttujillaROUTER_API_KEY+MITM_LOCAL_PORT(oletus443) - Tallenna PID pysyvästi tiedostoon
<DATA_DIR>/mitm/.mitm.pid
Linuxin dynaaminen luottamusvaraston tunnistus — cert/install.ts
getLinuxCertConfig() käy prioriteettilistan läpi ja valitsee ensimmäisen olemassa olevan hakemiston:
| Jakeluperhe | Hakemisto | Päivityskomento |
|---|---|---|
| Debian / Ubuntu | /usr/local/share/ca-certificates |
update-ca-certificates |
| Arch / CachyOS / Manjaro | /etc/ca-certificates/trust-source/anchors |
update-ca-trust |
| Fedora / RHEL / CentOS | /etc/pki/ca-trust/source/anchors |
update-ca-trust |
| openSUSE | /etc/pki/trust/anchors |
update-ca-certificates |
Varmenteen tiedostonimi: omniroute-mitm.crt. Sormenjäljen täsmäytys funktiolla getCertFingerprint() (DER-muodon SHA-1).
Lisäksi updateNssDatabases() asentaa varmenteen käyttäjäkohtaisiin NSS-tietokantoihin, kun certutil on käytettävissä: ~/.pki/nssdb, ~/snap/chromium/.../nssdb ja kaikki Firefox-profiilit (mukaan lukien snap) lempinimellä OmniRoute MITM Root CA.
macOS / Windows
- macOS:
security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain - Windows: korotetuilla oikeuksilla suoritettava PowerShell →
certutil -addstore Root
Todennus
Kaikki MITM-päätepisteet edellyttävät hallinnan todennusta (requireCliToolsAuth). Sudo-salasana tallennetaan välimuistiin moduulin näkyvyysalueelle (ei koskaan globalThis-objektiin), ja se tyhjennetään stopMitm()-kutsun yhteydessä.
User-Agent-ohitukset — ympäristömuuttujat (.env.example, osio 12)
| Muuttuja | Oletusarvo |
|---|---|
CLAUDE_USER_AGENT |
claude-cli/2.1.258 (external, cli) |
CODEX_USER_AGENT |
codex-cli/0.149.0 (Windows 10.0.26200; x64) |
GITHUB_USER_AGENT |
GitHubCopilotChat/0.54.0 |
ANTIGRAVITY_USER_AGENT |
antigravity/2.0.1 linux/arm64 google-api-nodejs-client/10.3.0 |
KIRO_USER_AGENT |
AWS-SDK-JS/3.0.0 kiro-ide/1.0.0 |
QODER_USER_AGENT |
Qoder-Cli |
CURSOR_USER_AGENT |
Cursor/3.4 |
open-sse/executors/base.ts::buildHeaders() käyttää näitä dynaamisen haun kautta. Päivitä nämä, kun palveluntarjoajat julkaisevat uusia CLI-versioita — vanhentuneet UA-merkkijonot hylätään vanhentuneina asiakasohjelmina.
CLI-yhteensopivuustilan valitsimet (.env.example, osio 13)
| Muuttuja | Vaikutus |
|---|---|
CLI_COMPAT_CODEX=1 |
Codex-sormenjälki |
CLI_COMPAT_CLAUDE=1 |
claude-cli-sormenjälki |
CLI_COMPAT_GITHUB=1 |
GitHub Copilot Chat -sormenjälki |
CLI_COMPAT_ANTIGRAVITY=1 |
Antigravity-sormenjälki |
CLI_COMPAT_KIRO=1 |
Kiro |
CLI_COMPAT_CURSOR=1 |
Cursor |
CLI_COMPAT_KIMI_CODING=1 |
Kimi Coding |
CLI_COMPAT_KILOCODE=1 |
KiloCode |
CLI_COMPAT_CLINE=1 |
Cline |
CLI_COMPAT_ALL=1 |
Ota kaikki yllä olevat käyttöön |
Palveluntarjoajan IP-osoite säilytetään aina — valitsin muokkaa vain pyynnön verkkotason ilmentymää, eikä se vaihda lähtevän liikenteen IP-osoitetta.
Saapuvien otsakkeiden puhdistus
OmniRoute puhdistaa saapuvat asiakasohjelman otsakkeet ennen välittämistä, jotta Cursorista saapuva pyyntö ei vuoda User-Agent: Cursor/X.Y.Z -otsaketta Claude-ylävirtaan. Estolista on tiedostossa src/shared/constants/upstreamHeaders.ts, ja se pidetään synkronoituna Zod-skeemojen ja yksikkötestien kanssa.
Sormenjälkien päivittäminen palveluntarjoajan vaihtaessa niitä
- Tallenna virallisen CLI:n liikenne
mitmproxy-työkalulla (TLS-kuuntelu + vedos) - Poimi JA3/JA4 ja otsakkeiden täsmällinen järjestys
- Päivitä asianmukainen
CLI_FINGERPRINTS[...]-merkintä - Päivitä vastaavan
*_USER_AGENT-muuttujan oletusarvo tiedostossa.env.example - Jos itse TLS-kättely muuttui, päivitä asianmukainen palveluntarjoajan kääre tai wreq-js:n
browser:-asetus - Suorita palveluntarjoajakohtaiset TLS-testit ja manuaalinen canary-testi aktiivista palveluntarjoajaa vasten
- Julkaise korjausversiona ja dokumentoi tiedostossa
CHANGELOG.md
Testit
open-sse/services/__tests__/claudeTlsClient.test.ts— jaetun TLS-kääreen toimintatests/unit/anthropic-cache-fingerprint.test.ts— sormenjäljen deterministisyystests/unit/chatgpt-web-source-retirement.test.ts— yleinen ChatGPT Webin stealth-lähde pysyy poissa, kun taas Codex Web säilyy mukana
Katso myös
- RESILIENCE_GUIDE.md — mitä tapahtuu, kun stealth-polku saa
403-vastauksen - TROUBLESHOOTING.md
- ENVIRONMENT.md — täydellinen ympäristömuuttujien viite
- CLI-TOOLS.md — operaattorin näkymä MITM-työnkulkuun