Tinklaraštis

„Claude Code“ atkūrimas: saugusis režimas, /cd ir atsarginiai modeliai

Markdown

Kaip diagnozuoti „Claude Code“ problemas naudojant saugųjį režimą, komandą /cd, atsarginius modelius ir nustatymų atkūrimą. Patikrų seka ir pradiniai apribojimai.

Skaityti visą straipsnį

Praktinė medžiaga apie darbą su agentais: „Ailoot“ dokumentacija.

Kas keičiasi „Claude Code“ 2026 m. birželį?

Svarbiausios įžvalgos

2026 m. birželio 8 d. „Claude Code“ v2.1.169 versijoje „Anthropic“ pridėjo vėliavėlę --safe-mode ir komandą /cd. Dviem dienomis anksčiau, v2.1.166 versijoje, atsirado atsarginiai modeliai – grandinėje jų gali būti iki 3. Šios trys funkcijos sprendžia dažniausiai „vibe coder“ pasitaikančią problemą: „viskas sugriuvo, nežinau, kas kaltas, ir nenoriu valandos prarasti pakartotiniam diegimui“.

Anksčiau, kai „Claude Code“ imdavo keistai veikti – be galo sukdavosi įkėlimo indikatorius, programa užstrigdavo paleidžiant, agentas ignoruodavo CLAUDE.md taisykles arba hook’as tyliai nesuveikdavo – buvo tik viena išeitis: rankiniu būdu užkomentuoti .claude/settings.json dalis, po vieną išjungti MCP serverius arba, blogiausiu atveju, ištrinti ~/.claude ir įdiegti iš naujo. Vienu aprašytu atveju buvo ištrintas ~/.claude ir prarasta MCP serverių sąranka, kuriai parengti prireikė pusantros valandos. Vėliau paaiškėjo, kad kaltas buvo vienas CLAUDE.md eilutės įrašas, kurį buvo galima rasti per 10 sekundžių, tačiau tai paaiškėjo tik visiškai atkūrus sistemą.

2026 m. birželį „Anthropic“ pristatė tris mechanizmus, pakeitusius šį scenarijų. Trumpai – kas ir kada atsirado:

VersijaDataKas atsirado
2.1.1662026 m. birželio 6 d.Nustatymas fallbackModel + vėliavėlė --fallback-model interaktyvioms sesijoms
2.1.1692026 m. birželio 8 d.Vėliavėlė --safe-mode, aplinkos kintamasis CLAUDE_CODE_SAFE_MODE ir komanda /cd
2.1.1762026 m. birželio 12 d.Pataisa: /cd ir perjungus worktree neberodoma sena git šaka

Toliau kiekvienas mechanizmas paaiškinamas žingsnis po žingsnio, taip pat nurodoma, kokia tvarka juos taikyti, kai „Claude Code“ sesija pradeda veikti netinkamai.

Kas dažniausiai sugadina „Claude Code“?

Svarbiausios įžvalgos

Remiantis aprašyta patirtimi, „Claude Code“ „vibe coder“ dažniausiai sugenda dėl keturių priežasčių: per ilgo CLAUDE.md su prieštaringomis taisyklėmis, neteisingo išėjimo kodo hook’o, tyliai neveikiančio MCP serverio ir tarpusavyje persidengiančių settings.json nustatymų trijuose lygiuose. Kaltininkas paprastai vienas, diagnozei reikia kelių minučių, tačiau panika verčia žmones iškart griebtis rm -rf.

Aprašytame pavyzdyje CLAUDE.md iš pradžių buvo sudarytas iš 80 eilučių – ir mėnesį veikė tinkamai. Antrą mėnesį tapo pastebima, kad kartą per savaitę „Claude“ pažeidžia visas nustatytas taisykles: paliečia .env, vykdo git push --force, naršo node_modules kataloge. Ne iš piktos valios – tiesiog pamiršta. Kartą buvo ištrintas .gitignore, o priežastis iškart nepaaiškėjo. Šis scenarijus išsamiau aptariamas CLAUDE.md vadove.

Kai CLAUDE.md išauga iki daugiau nei 400 eilučių, jis ima tyliai kelti problemų: sesijos pradžioje užima reikšmingą konteksto lango dalį, o svarbios instrukcijos paskęsta tarp antraeilių. „Claude“ formaliai vis dar perskaito failą, todėl iš šalies atrodo, kad „taisyklės yra, bet neveikia“ – tai tipiškas pernelyg išplėstos instrukcijų sutarties požymis.

Antras dažnas problemų šaltinis – hook’ai. Claude Code hooks turi vieną „Anthropic“ neakcentuojamą ypatybę.

Tai reiškia, kad sys.exit(1) Python hook’e (arba bet koks įprastas „Unix“ būdas nurodyti, kad „įvyko klaida“) „Claude“ nesustabdys. Blokuoja tik kodas 2. Aprašytu atveju hook’as buvo laikomas „griežtu draudimu“, tačiau iš tikrųjų jis tik užregistravo skundą ir leido veiksmą atlikti.

Trečiasis sluoksnis – MCP serveriai, kurie taip pat gali sugesti savaip.

Simptomas dažnai būna panašus: MCP komandos pasiekiamos, bet grąžina failed be steko pėdsako. Daugiau apie MCP konfigūravimą ir serverių pridėjimą naudojant claude mcp add skaitykite atskirame vadove.

Ketvirtasis problemų šaltinis – trijų lygių settings.json hierarchija. Turite ~/.claude/settings.json (naudotojo lygis), .claude/settings.json projekto šakniniame kataloge (projekto lygis), .claude/settings.local.json (vietinis lygis) ir galbūt įmonės administratoriaus tvarkomus nustatymus. Jie sujungiami pagal prioritetų taisykles. Kai kas nors projekto lygiu prideda MCP serverį, o naudotojo lygiu turite panašų įrašą su kita paleidimo konfigūracija, kyla tylus konfliktas, kuris atrodo taip, tarsi „Claude Code būtų sugedęs“.

Kaip veikia --safe-mode ir ką jis išjungia?

Svarbiausios įžvalgos

claude --safe-mode paleidžia „Claude Code“ visiškai išjungus tinkinimus: CLAUDE.md, plugins, skills, hooks, MCP serverius, naudotojo komandas, agents, išvesties stilius, workflows ir klavišų susiejimus. Autorizacija, modelio pasirinkimas, integruoti įrankiai ir leidimai lieka įjungti. Tai diagnostikos įrankis: jei saugiuoju režimu problema išnyksta, kaltas vienas iš jūsų pridėtų sluoksnių.

Pirminė „Anthropic“ formuluotė v2.1.169 pakeitimų žurnale:

Pridėta vėliavėlė --safe-mode (ir CLAUDE_CODE_SAFE_MODE), kad „Claude Code“ diagnostikai būtų paleista išjungus tinkinimus (CLAUDE.md, plugins, skills, hooks ir MCP serverius).

— „Anthropic Claude Code“ pakeitimų žurnalas, https://code.claude.com/docs/en/changelog

„Anthropic“ tai patikslina modelio konfigūravimo dokumentacijoje:

Norėdami patikrinti, ar kaltas tinkinimas, paleiskite sesiją naudodami claude --safe-mode. Ši komanda išjungia CLAUDE.md, skills, MCP serverius ir hooks. Git būsena ir katalogų pavadinimai nelaikomi tinkinimais, todėl lieka pasiekiami.

— „Anthropic“ dokumentacija – modelio konfigūravimas, https://code.claude.com/docs/en/model-config

Tai diagnostikos įrankis, o ne „švari aplinka“. Saugusis režimas padeda atsakyti į vieną klausimą: ar problema kyla dėl numatytojo „Claude Code“ veikimo, ar dėl pridėtų tinkinimų? Tai konteksto inžinerijos dalis – valdymas to, ką „Claude“ mato ir ko nemato konkrečiu momentu. Jei saugiuoju režimu viskas veikia, pridėtus sluoksnius reikia tikrinti taikant dvejetainę paiešką. Jei neveikia, problema susijusi su pačia diegimo versija, autorizacija, tinklu arba infrastruktūra – tuomet verta patikrinti claude doctor ir žurnalus.

Ką išjungia saugusis režimas (oficialiame „Anthropic“ sąraše – 5 pagrindiniai sluoksniai):

  • CLAUDE.md visuose lygiuose (naudotojo / projekto)
  • Plugins
  • Skills
  • Hooks
  • MCP serveriai

Kas lieka veikti:

  • Autorizacija (jūsų OAuth sesija arba API raktas)
  • Modelio pasirinkimas (--model sonnet, --model opus)
  • Integruoti įrankiai (Read, Write, Bash, Grep ir kt.)
  • Leidimai
  • Git būsena
  • Katalogų pavadinimai

Svarbi detalė: saugusis režimas neišjungia įmonės administratoriaus valdomų nustatymų / politikų. Jei dirbate komandoje, kurioje „Bedrock GovCloud“ arba MDM konfigūracija nustato availableModels, šie apribojimai išlieka – saugusis režimas išjungia tik jūsų tinkinimus, o ne įmonės politikas.

Kaip izoliuoti sluoksnį ir per 60 sekundžių rasti kaltininką?

Svarbiausios įžvalgos

1 veiksmas: tame pačiame aplanke, kuriame kilo problemų, paleiskite claude --safe-mode. Jei jis veikia, problema slypi jūsų tinkinimuose, todėl įjunkite juos po vieną: CLAUDE.md -> hooks -> MCP -> skills. Jei saugiuoju režimu vis tiek neveikia, problema susijusi su autentifikavimu, versija, tinklu arba OS. Tokiu atveju paleiskite claude doctor automatinei diagnostikai ir nelieskite rm -rf.

Diagnostikos scenarijus atvejui, kai „Claude Code nustojo klausyti“. Minimali visų toliau pateiktų komandų versija – Claude Code v2.1.169. Jei jūsų versija senesnė, pirmiausia atnaujinkite ją (npm update -g @anthropic-ai/claude-code arba naudodami „Anthropic“ vietinę diegimo programą).

  1. Atidarykite tą patį aplanką, kuriame kilo problemų.
  2. Paleiskite claude --safe-mode.
  3. Jei programa paleidžiama sklandžiai, patikrinkite pradinę užklausą. Ar ji suveikė? Tuomet kaltas vienas iš sluoksnių. Pereikite prie 4 veiksmo.
  4. Jei saugiuoju režimu vis tiek neveikia, konfigūracijų nelieskite. Pirmiausia paleiskite claude doctor; patikrinkite autentifikavimą, versiją ir nesuderinamas diegimo versijas.

Kai saugusis režimas paleidžiamas sklandžiai, įjunkite sluoksnius po vieną, pradėdami nuo labiausiai tikėtino kaltininko. Tvarka, paremta aprašyta patirtimi:

  1. CLAUDE.md. Paleiskite claude be saugiojo režimo, bet laikinai pervadinkite failą: mv CLAUDE.md CLAUDE.md.bak. Jei tada veikia, priežastis – šis failas. Tuomet galite atlikti dvejetainę paiešką: palikite pusę eilučių ir patikrinkite.
  2. Hooks. Atidarykite .claude/settings.json ir skiltyje hooks laikinai nustatykite []. Iš naujo paleiskite claude. Ar veikia? Tuomet kaltas vienas iš hook’ų. Įjunkite juos po vieną.
  3. MCP serveriai. Panašiai faile ~/.claude.json arba .claude/settings.json laikinai nustatykite tuščią objektą mcpServers skiltyje, paleiskite iš naujo ir patikrinkite.
  4. Skills. Perkelkite .claude/skills/ į laikiną aplanką. Paleiskite ir patikrinkite.

Ką reiškia „laikinai pervadinti“: diagnozuojant failai neištrinami. Naudodami mv arba git stash galite viską atkurti viena komanda, jei paaiškėtų, kad tas sluoksnis nebuvo kaltas.

Kaip pakeisti darbinį aplanką naudojant /cd neprarandant konteksto?

Svarbiausios įžvalgos

„Claude Code“ 2.1.169+ komanda /cd <path> pakeičia darbinį aplanką aktyvioje sesijoje neprarasdama prompto talpyklos. Tai naudinga, kai dabartinio projekto konfigūracija sugedusi: galite pereiti į švarų aplanką, patikrinti, ar „Claude“ veikia, ir grįžti atgal. Anksčiau reikėdavo uždaryti sesiją ir paleisti ją iš naujo.

Iš v2.1.169 pakeitimų žurnalo, birželio 8 d.:

Pridėta komanda /cd, leidžianti perjungti sesiją į naują darbinį aplanką nenustatant iš naujo prompto talpyklos sesijos metu.

— „Anthropic Claude Code“ pakeitimų žurnalas, https://code.claude.com/docs/en/changelog

Kodėl tai naudinga sprendžiant problemas. Tarkime, esate projekto aplanke ~/work/myapp, o „Claude Code“ elgiasi keistai. Anksčiau vienintelis būdas patikrinti, „ar jis apskritai veikia“, buvo uždaryti sesiją, pereiti į kitą aplanką ir paleisti iš naujo. Prarasdavote kontekstą, istoriją ir įšildytą prompto talpyklą. Dabar:

# In the same session:
/cd ~/sandbox/test

„Claude“ pereina į naują aplanką ir perskaito jame esantį CLAUDE.md (jei toks yra) kaip pranešimą, o ne kaip sisteminio prompto pakaitalą – taigi talpykla išsaugoma. Jei ~/sandbox/test viskas veikia, vadinasi, problema buvo ~/work/myapp konfigūracijoje.

Birželio 12 d. v2.1.176 ištaisė nemalonią regresiją – /cd rodydavo seną git šaką, kol programa nebuvo visiškai paleista iš naujo. Jei naudojate senesnę versiją, atnaujinkite ją arba tiesiog nekreipkite dėmesio į git status pirmuose pranešimuose po perjungimo – būsena bus atnaujinta.

Kaip sukonfigūruoti atsarginius modelius 529 klaidai?

Svarbiausios įžvalgos

V2.1.166 versijoje „Anthropic“ pridėjo fallbackModel – iki 3 modelių grandinę, kurioje modeliai iš eilės bandomi, kai pagrindinis modelis perkrautas arba nepasiekiamas. Grandinė įjungiama tik esant perkrovai ir neatkuriamoms serverio klaidoms. Autorizavimo, atsiskaitymo, dažnio limito ir transporto klaidos atsarginės grandinės neįjungia – joms taikoma įprasta pakartotinių bandymų logika.

Aprašytame scenarijuje ilga užduotis projekte kartą per savaitę vykdoma su Opus; po 10 minučių API grąžina 529 Overloaded klaidą, o sesija nutrūksta. Anksčiau tekdavo arba laukti, arba rankiniu būdu perjungti į Sonnet naudojant --model sonnet ir prarasti visą įšildytą kontekstą. Dideliame business/ kataloge, kuriame įrengtas antrasis protas, tai užima maždaug dvidešimt minučių darbo. Dabar yra tinkamas mechanizmas.

Tiksli citata iš oficialios dokumentacijos:

Kai pagrindinis modelis perkrautas, nepasiekiamas arba grąžina kitą neatkuriamą serverio klaidą, „Claude Code“ gali perjungti į atsarginį modelį, užuot atmetusi užklausą. Autorizavimo, atsiskaitymo, dažnio limito, užklausos dydžio ir transporto klaidos niekada nesukelia perjungimo – joms taikoma įprasta pakartotinių bandymų ir klaidų tvarkymo eiga.

— „Anthropic“ dokumentacija – modelio konfigūravimas, https://code.claude.com/docs/en/model-config

Atskirai – kaip veikia grandinė:

Sukonfigūruokite vieną ar daugiau atsarginių modelių. „Claude Code“ juos bandys nurodyta tvarka ir apie perjungimą parodys pranešimą. Perjungimas taikomas tik dabartiniam ėjimui – kita žinutė vėl bandys naudoti pagrindinį modelį. Pašalinus pasikartojimus grandinėje gali likti ne daugiau kaip trys modeliai; papildomi įrašai ignoruojami.

— „Anthropic“ dokumentacija – modelio konfigūravimas, https://code.claude.com/docs/en/model-config

Konfigūruoti galima dviem būdais. Per CLI:

claude --fallback-model sonnet,haiku

Per ~/.claude/settings.json:

{
  "fallbackModel": ["claude-sonnet-4-6", "claude-haiku-4-5"]
}

Atskirai verta paminėti dažnio limitus. „Anthropic“ sąmoningai neperduoda 429 klaidos į grandinę, kad negalėtumėte apeiti užklausų limito perjungdami į kitą modelį. Atsarginis modelis naudojamas tik tada, kai pagrindinis modelis perkrautas, nepasiekiamas arba pateikia neatkuriamą serverio klaidą (pavyzdžiui, 529 Overloaded). Dažnio limitams taikoma įprasta pakartotinių bandymų ir eksponentinio delsimo logika.

Dar viena detalė – birželio 12 d. v2.1.174 versijoje ištaisyta regresija: konteksto glaudinimas nepaisydavo --fallback-model. Jei turite ilgą sesiją ir jai glaudinant sistema perkrauta, iki šios pataisos atsarginis modelis nebuvo iškviečiamas. Jei dirbate su ilgomis sesijomis (/compact, /loop per naktį), atnaujinkite bent iki v2.1.174.

Ką taisyti, kai kaltas CLAUDE.md, hook’as, MCP arba skill?

Svarbiausios įžvalgos

Kai saugusis režimas nustato kaltą sluoksnį, taisymo būdas priklauso nuo jo. Jei kaltas CLAUDE.md, naudokite dvejetainę paiešką arba grįžkite prie paruošto šablono, kuriame mažiau nei 200 eilučių. Jei kaltas hook’as, patikrinkite išėjimo kodą (2 blokuoja, 1 – ne) ir logiką. Jei kaltas MCP, pašalinkite vieną serverį ir patikrinkite. Jei kaltas skill, SKILL.md ieškokite prieštaravimų su CLAUDE.md.

Konkrečios strategijos kiekvienam sluoksniui.

Jei kaltas CLAUDE.md

Atidarykite failą ir patikrinkite jo dydį. Remiantis aprašyta patirtimi, aktyvų CLAUDE.md apribokite iki 200 eilučių; likusią informaciją perkelkite į maršrutizavimo ir pagalbinius dokumentus šalia projekto (visa antrojo proto struktūra aprašyta antrojo proto vadove). Jei faile daugiau nei 400 eilučių, jis beveik neabejotinai kaltas. Veiksmai:

  1. Sukurkite atsarginę kopiją: cp CLAUDE.md CLAUDE.md.full.
  2. Grįžkite prie trumpo, veikiančio šablono. Paruoštą šabloną rasite vadove „Kaip sukonfigūruoti CLAUDE.md“.
  3. Iš naujo paleiskite „Claude Code“. Patikrinkite.
  4. Jei veikia, grąžinkite taisykles mažais 10–20 eilučių blokais ir patikrinkite po kiekvieno bloko.
  5. Raskite elgseną sutrikdantį bloką. Perrašykite jį kaip hook’ą su tinkamu išėjimo kodu (hook’ų išėjimo kodai aptariami kitoje šios H2 poskyrio dalyje).

Jei kaltas hook’as

Svarbiausia išsiaiškinti, ar išėjimo kodas teisingas. „Claude Code“ hook’ai naudoja:

  • Išėjimas 0 – viskas gerai; veiksmas tęsiamas.
  • Išėjimas 1 – klaida, bet neblokuojanti. „Claude“ tęsia darbą, tarsi nieko nebūtų nutikę.
  • Išėjimas 2 – blokuojanti klaida. Tik ji iš tikrųjų sustabdo veiksmą.

Jei shell hook’e parašėte sys.exit(1) arba exit 1, manydami, kad taip blokuojate veiksmą, „Claude Code“ šis kodas veikia kaip įspėjimo įrašas ir veiksmo nesustabdo. Pakeiskite jį į 2. Daugiau apie hook’us ir jų konfigūravimą išvengiant šios klaidos skaitykite atskirame vadove.

Antras dažnas atvejis – hook’as, išvedantis netaisyklingą JSON į stdout. „Claude Code“ hook’o atsakymą analizuoja kaip JSON, o jei jame yra pašalinio turinio (žurnalo įrašas, eigos žymeklis, emoji), hook’as laikomas nepavykusiu ir veiksmas tęsiamas. Taisyklė: stdout turi būti tik JSON; visa kita rašykite į stderr.

Trečias atvejis – hook’as bando skaityti ką nors iš ~/.claude/, kurį saugusis režimas paslepia. Tai įprastas scenarijus; taisykite jį ne keisdami hook’ą, o jo pradžioje patikrindami os.environ.get('CLAUDE_CODE_SAFE_MODE') ir užbaigdami vykdymą kodu 0.

Jei kaltas MCP serveris

Požymiai: MCP komandos pasiekiamos, bet grąžina failed be aiškaus steko pėdsako. Veiksmai:

  1. Paleiskite claude mcp list – kurie serveriai apibrėžti?
  2. Po vieną išjunkite serverius faile ~/.claude.json: pervadinkite raktą claude-server-A į _claude-server-A (taip jį išjungsite, bet neištrinsite).
  3. Iš naujo paleiskite claude. Patikrinkite, kurie iškvietimai veikia.
  4. Radę kaltą serverį, patikrinkite jo žurnalą: claude mcp logs <name>.
  5. Jei tai trečiosios šalies serveris (@modelcontextprotocol/server-postgres ir panašūs), patikrinkite, ar yra naujesnė versija. MCP ekosistema vis dar nerami; po „Claude Code“ atnaujinimų serveriai dažnai sugenda.

Jei susidūrėte su „užstrigimu paleidžiant, tik naudojant du MCP“, palyginkite veikimą saugiuoju režimu be MCP.

Jei kaltas skill

Skill sudaro SKILL.md ir kodas .claude/skills/<name>/ kataloge. Požymiai: „Claude“ ignoruoja skill, pritaiko jį netinkamu metu arba pritaikęs pateikia prastą rezultatą. Veiksmai:

  1. Atidarykite SKILL.md. Patikrinkite aprašą – jis turėtų būti 1–2 sakinių ir konkrečiai nurodyti, kada skill naudoti. Jei parašyta „universalus įrankis viskam“, „Claude“ nesupranta, kada jį iškviesti.
  2. Patikrinkite, ar nėra prieštaravimų su CLAUDE.md. Jei CLAUDE.md nurodyta „visada rašyti tests“, o skill apraše – „naudoti greitam prototipų kūrimui be tests“, kyla konfliktas.
  3. Jei skill naudoja išorines komandas (npm, python, git), patikrinkite, ar jos pasiekiamos visos sistemos PATH. Skill turi savo minimalią aplinką.

Ką daryti, jei saugusis režimas nepadėjo: diagnozuokite ir išsaugokite būseną prieš taisymą

Svarbiausios įžvalgos

Jei neveikia ir saugusis režimas, tarp likusių galimybių yra diegimas, autorizavimas, tinklas ar infrastruktūra. Paleiskite claude doctor ir peržiūrėkite jo įrodymus. Neaiški ataskaita nepateisina nustatymų ar sesijų trynimo: pirmiausia išsaugokite ir patikrinkite visą būseną, tada taisykite tik diagnostikos nustatytą diegimą.

Naudotojo būsenos šalinimas nėra trumpesnis diagnostikos kelias. Toliau pateiktomis patikromis nustatykite gedimą; jei jos neaiškios, išsaugokite įrodymus ir tirkite toliau. Bet koks diegimo taisymas prasideda patikrinta atsargine kopija ir išlaiko esamą paskyrą bei prisijungimo duomenų saugyklos tapatybę. Tvarka:

  1. claude doctor – automatinė diagnostika. „Anthropic“ dokumentacijoje rašoma:

Jei `claude --version` veikia, tačiau kyla kitų problemų, paleiskite `claude doctor`, kad būtų sugeneruota automatinė diagnostikos ataskaita.

— „Anthropic“ dokumentacija – diegimo trikčių šalinimas, https://code.claude.com/docs/en/troubleshoot-install
  1. Patikrinkite, ar nėra nesuderinamų diegimų. Daugelis žmonių vienu metu turi įdiegtą ir pasaulinę npm versiją, ir vietinę diegimo programą:

Keli „Claude Code“ diegimai gali lemti versijų neatitikimus arba netikėtą veikimą.

— „Anthropic“ dokumentacija – diegimo trikčių šalinimas, https://code.claude.com/docs/en/troubleshoot-install
  1. Patikrinkite, ar ANTHROPIC_API_KEY neperima jūsų OAuth sesijos. Tai dažna problemos „niekas neveikia, rakto galiojimas baigėsi“ priežastis:

Kai nustatytas `ANTHROPIC_API_KEY` ir jūs jį patvirtinote, „Claude Code“ naudoja šį raktą, o ne jūsų prenumeratos OAuth prisijungimo duomenis.

— „Anthropic“ dokumentacija – diegimo trikčių šalinimas, https://code.claude.com/docs/en/troubleshoot-install

Sprendimas: dabartinėje shell sesijoje vykdykite unset ANTHROPIC_API_KEY arba pašalinkite jį iš ~/.zshrc / ~/.bashrc.

  1. Taisykite tik diagnostikos nustatytą diegimą; pirmiausia išsaugokite visą naudotojo būseną. Nesėkmė saugiuoju režimu ar neaiški doctor ataskaita neįrodo, kad naudotojo duomenis reikia pašalinti. Prieš nuoseklią atsarginę kopiją sustabdykite visas Claude sesijas ir kitus rašytojus. Išlaikykite tą pačią Unix paskyrą, HOME, operacinės sistemos prisijungimo duomenų saugyklą ir Anthropic paskyrą; nekeiskite raktų ar tapatybės.

Toliau pateiktas kopijavimo pavyzdys skirtas Linux su GNU tar. macOS ar Windows naudokite priemonę, kuri išlaiko tos platformos ACL, išplėstinius atributus, nuorodas ir metaduomenis, o prieš tęsdami patikrinkite atkūrimą; nemanykite, kad GNU parinktys veikia kitur. Archyve yra prisijungimo duomenų ir sesijų stenogramų: laikykite jį privatų, už saugyklų ribų.

# Run as the same user who owns the Claude state, after stopping writers.
set -eu
umask 077
backup_dir=$(mktemp -d "$HOME/.claude-recovery-XXXXXXXX")
set --
if [ -e "$HOME/.claude" ] || [ -L "$HOME/.claude" ]; then
  set -- "$@" .claude
fi
if [ -e "$HOME/.claude.json" ] || [ -L "$HOME/.claude.json" ]; then
  set -- "$@" .claude.json
fi
[ "$#" -gt 0 ] || exit 1
tar --acls --xattrs --numeric-owner -cpf "$backup_dir/claude-state.tar" -C "$HOME" "$@"
tar --acls --xattrs --compare -f "$backup_dir/claude-state.tar" -C "$HOME"
sha256sum "$backup_dir/claude-state.tar" > "$backup_dir/claude-state.sha256"
(cd "$backup_dir" && sha256sum -c claude-state.sha256)
mkdir "$backup_dir/restore-check"
tar --acls --xattrs -xpf "$backup_dir/claude-state.tar" -C "$backup_dir/restore-check"
tar --acls --xattrs --compare -f "$backup_dir/claude-state.tar" -C "$backup_dir/restore-check"
printf 'Verified recovery directory: %s\n' "$backup_dir"

Visos komandos turi pavykti. Archyvas apima visą esamą .claude medį, įskaitant ignoruojamas ar nesekamas sesijas bei papildinių būseną, ir .claude.json, o ne vien Git sekamus nustatymus. Jei kuris kelias yra simbolinė nuoroda arba duomenys yra atskiroje sukonfigūruotoje vietoje, sustokite ir į tą pačią patikrintą kopiją įtraukite išspręstą tikslą; vien nuorodos archyvavimas jos tikslo nenukopijuoja. Archyvas neturi macOS Keychain ar kitos išorinės prisijungimo duomenų saugyklos, todėl šias tapatybes palikite vietoje.

Jei diagnostika konkrečiai nustato senąjį vietinį diegimą kaip konfliktuojančią kopiją, tik tą diegimą perkelkite į privatų atkūrimo katalogą, užuot trynę konfigūraciją ir sesijas:

# Use the verified backup_dir from the previous block.
if [ -d "$HOME/.claude/local" ]; then
  mv "$HOME/.claude/local" "$backup_dir/legacy-local"
fi

npm diegimą šalinkite tik jei diagnostika jį nustato kaip konfliktuojantį ir ketinate išlaikyti savąjį diegimą. Tada naudokite dokumentuotą savąją diegimo programą, netrindami .claude ar .claude.json:

curl -fsSL https://claude.ai/install.sh | bash
claude --version
claude doctor

Windows savoji diegimo komanda lieka:

irm https://claude.ai/install.ps1 | iex

Atkūrimą atlikite atskirai. Vėl sustabdykite rašytojus. Patikrinkite archyvo kontrolinę sumą ir išskleiskite į tuščią atkūrimo katalogą kaip pirmiau; prieš naudodami failus sėkmingai palyginkite. Jei reikia grąžinti perkeltą seną diegimą, pirmiausia patvirtinkite, kad $HOME/.claude/local neegzistuoja, tada $backup_dir/legacy-local grąžinkite tuo tiksliu keliu. Diagnostikos nustatytą nustatymų failą iš patikrinto išskleidimo atkurkite tik išsaugoję dabartinį pakaitalą; aklai neperrašykite viso medžio. Sesijos, MCP nustatymai ir pradinė tapatybė lieka išsaugoti. Vien Git momentinė kopija neapima ignoruojamų ar nesekamų stenogramų, prisijungimo duomenų bei failų sistemos metaduomenų.

Ko NEDARYTI, kai „Claude Code“ neveikia?

Svarbiausios įžvalgos

Šeši aprašytuose pagalbos atvejuose pastebėti netinkami veiksmai: keisti raktus prieš diagnostiką, visiškai atkurti sistemą kaip pirmą veiksmą, panikuoti dėl hook’o UI klaidos, padidinti hook’o išėjimo kodą prieš sutaisant logiką, redaguoti CLAUDE.md be saugiojo režimo apsaugos ir tikėti, kad „Claude pats sutaisys MCP“. Kiekvienas toks veiksmas kainuoja valandų, o nė vienas nėra būtinas.

Nekeiskite raktų prieš diagnostiką

„Autorizacija neveikia“ 90 % atvejų reiškia, kad ANTHROPIC_API_KEY perima prenumeratos prieigą, sutriko hook’o UI arba neveikia MCP. Raktų keitimas nieko iš to neišspręs, bet sukels dar vieną valandą prastovos: turėsite atšaukti seną raktą, išduoti naują, iš naujo susieti jį su CI ir atnaujinti gamybos aplinkos kintamuosius. Pirmiausia paleiskite claude --safe-mode. Ar veikia? Tuomet problema slypi tinkinimuose; raktų liesti nereikia.

Neatkurkite visko prieš išbandydami saugųjį režimą

Saugusis režimas per 1 sekundę sukuria izoliuotą aplinką. Ištrynus .claude galima sunaikinti sesijas, MCP konfigūraciją ir kitą nesekamą būseną. Pirmiausia diagnozuokite, patikrinkite privačią atsarginę kopiją ir grįžtamai perkelkite tik iš tikrųjų įtartą diegimo ar konfigūracijos sluoksnį.

Nepanikuokite dėl hook’o UI klaidos

Prieš ką nors taisydami patikrinkite, ar hook’as iš tiesų veikė (pagal įrašą stderr arba aiškų išvedimą), užuot pasikliovę vaizdiniu indikatoriumi.

Nedidinkite hook’o išėjimo kodo prieš sutaisydami logiką

Kai blokuojantis hook’as neblokuoja, kyla pagunda nustatyti exit 2 ir laikyti darbą baigtu. Tai veikianti pataisa, bet ji paslepia kitą problemą: jei blokas neveikė mėnesį, visi veiksmai, kuriuos hook’as turėjo uždrausti, buvo atlikti. Pirmiausia peržiūrėkite git žurnalą ir išsiaiškinkite, kas tiksliai prasprūdo. Tada įtraukite blokavimą. Kitaip įjungtas blokas nepanaikins to, kas įvyko anksčiau.

Neredaguokite gamybinio CLAUDE.md be saugiojo režimo apsaugos

Aprašytu atveju redaguojate CLAUDE.md, „Claude“ ima keistai veikti, paleidžiate git diff ir matote, kad tą vakarą kas nors į saugyklą taip pat pridėjo MCP serverį ir hook’ą. Kaltinate savo pakeitimą, jį atšaukiate, bet „Claude“ vis tiek elgiasi keistai. Taisyklė: prieš git revert paleiskite claude --safe-mode. Jei problema išlieka saugiuoju režimu, jūsų pakeitimas su ja nesusijęs ir jo atšaukti nereikia.

Netikėkite, kad „Claude pats sutaisys MCP“

Tipinis scenarijus: paprašote „Claude“ „pridėti tam tikrą įrankį į MCP serverį“, „Claude“ perrašo veikiančią konfigūraciją, viskas sugenda, o paskui jis kelis ėjimus bando diagnozuoti savo paties padarytą žalą – ir tuo metu sunaudoja sesijos limitą. Kai MCP neveikia, konfigūraciją raskite rankiniu būdu; nepatikėkite to agentui. Dalis jo įrankių taip pat veikia per MCP, tad sugedęs MCP reiškia sugedusį diagnostikos įrankį.

Ką daryti sutaisius?

Svarbiausios įžvalgos

Atkūrę „Claude Code“, pridėkite apsaugas, kad problema nepasikartotų. Bent jau naudotojo nustatymuose nustatykite disableBypassPermissionsMode: "disable", pridėkite hook’us, blokuojančius .env ir git push --force, ir naudokite smėlio dėžę ilgoms autonominėms užduotims. Prevencijos vadovas papildo šį vadovą.

Išanalizavę incidentą, iškart negrįžkite prie darbo. Pirmiausia pasirūpinkite apsauga, kad incidentas nepasikartotų. Antrajam protui (projekto struktūrą turinčiam business/ aplankui) ir CLAUDE.md galite sugaišti valandų valandas, o atkurti juos rankiniu būdu sunku – tai svarbi priežastis veikti. Minimalus rinkinys:

  1. ~/.claude/settings.json su permissions.disableBypassPermissionsMode: "disable" – architektūrinis apėjimo režimo draudimas, kad netyčia paleistas --dangerously-skip-permissions tiesiog neveiktų.
  2. Hook’ai, skirti Read(./env*), Bash(git push --force), Write(./node_modules/**) – tai veiksmai, kuriuos reikia uždrausti taisyklėmis, o ne vien pageidavimais.
  3. Smėlio dėžės konfigūracija ilgoms autonominėms užduotims (/loop, /schedule).
  4. /compact su savo taisyklėmis, apibrėžiančiomis, ko atsisakyti kontekste, kad „Claude“ neišsektų.

Visa keturių sluoksnių apsaugos schema pateikta vadove „Kaip sukonfigūruoti „Claude Code“, kad jis nesugadintų projekto per naktį“. Vienas vadovas aprašo prevenciją prieš paleidžiant /loop, o kitas – atkūrimą po to, kai /loop jau ką nors sugadino. Logiška pora.

Šaltiniai

Praktinė medžiaga: „Ailoot“ dokumentacija.

Daugiau medžiagos ir įrankių: „Ailoot“.

Išsamiau

Klausimai ir atsakymai

Ar nesėkmė saugiuoju režimu reiškia, kad reikia ištrinti ~/.claude?

Ne. Vis dar reikia tirti diegimo, autorizavimo, tinklo ir infrastruktūros priežastis. Neaiški doctor ataskaita nėra įrodymas, kad nustatymus ar sesijas reikia pašalinti; taisykite tik diagnozuotą sluoksnį.

Ką išsaugoti prieš diegimo taisymą?

Sustabdykite rašytojus ir nukopijuokite visą Claude būseną, įskaitant sesijas, papildinių bei MCP konfigūraciją, ignoruojamus failus ir failų sistemos metaduomenis. Prieš tęsdami patikrinkite kontrolinę sumą ir išskleidimą, išlaikykite esamą paskyrą bei prisijungimo duomenų saugyklą ir atkurkite tik diagnozuotą sluoksnį, aklai neperrašydami dabartinės būsenos.

Visi straipsniai