સેન્ડબોક્સ ત્યારે જ ઉપયોગી છે જો તે ખરેખર એજન્ટને તેની મર્યાદામાં રાખે. Claude Code 2.1.216 એવા કેટલાક અંતરાલોને મજબૂત બનાવે છે જે કોઈ બેકગ્રાઉન્ડ ટાસ્ક, સબ-એજન્ટ અથવા ફરીથી શરૂ થયેલ સત્રને તેના નિર્ધારિત ડિરેક્ટરીની બહાર જવા દેနိုင်သည်။ આ રિલીઝ એક નવું કોન્ફિગરેશન સ્વિચ રજૂ કરે છે, પરંતુ વધુ મહત્વનું કામ અંદરના ભાગમાં (under the hood) છે: Git worktrees, symlinks, અને એજન્ટ રીસ્ટાર્ટ્સનું સ્માર્ટ હેન્ડલિંગ. જો તમે Claude Code ને લોકલી અથવા CI માં ચલાવો છો, તો આ ફેરફારોને માત્ર ચેન્જલોગના ઝડપી સ્કીમ કરતાં વધુ ધ્યાન આપવા જેવો છે.
ફાઇલસિસ્ટમ ટોગલ જેને તમારે હળવાશથી લેવું જોઈએ નહીં
વર્ઝન 2.1.216 માં sandbox.filesystem.disabled ઉમેરવામાં આવ્યું છે. જ્યારે આ સેટ કરવામાં આવે છે, ત્યારે Claude Code નેટવર્ક સેન્ડબોક્સ લાગુ રાખતા હોવા છતાં તેનું પોતાનું ફાઇલસિસ્ટમ આઇસોલેશન સ્કીપ કરે છે. પ્રથમ દૃષ્ટિએ આ પરમિશન એરર્સ રોકવા અથવા ફાઇલ ઓપરેશન્સ ઝડપી બનાવવા માટેનો રસ્તો લાગે છે. પણ તેવું નથી. તમારે આ સેટિંગ ત્યારે જ ઇનેબલ કરવું જોઈએ જો અન્ય કોઈ લેયર પહેલેથી જ તમારા ડિસ્કનું રક્ષણ કરી રહ્યું હોય.
તેનો અર્થ એ છે કે એક ડિસ્પોઝેબલ કન્ટેનર જે દરેક રન પછી ડિલીટ થઈ જાય છે, અથવા એક ડેડિકેટેડ વર્ચ્યુઅલ મશીન જેની પાસે તમારા હોમ ડિરેક્ટરી અથવા પ્રોડક્શન વોલ્યુમ્સનો એક્સેસ નથી. જો તમે macOS, Windows, અથવા બેર Linux હોસ્ટ પર સીધું Claude Code ચલાવો છો, તો ફાઇલસિસ્ટમ આઇસોલેશન ચાલુ રાખો. નેટવર્ક સેન્ડબોક્સ ફાઇલસિસ્ટમ કંટ્રોલ્સનો વિકલ્પ નથી, અને સેન્ડબોક્સ કરેલ ફાઇલ એક્સેસની નાની અગવડતા એ ભૂલથી ઓવરરાઈટ થવાથી અથવા પ્રોજેક્ટ ફોલ્ડરની બહાર નીકળી જતી માલશિયસ પ્રોમ્પ્ટ ઇન્જેક્શનથી રિકવર કરવા કરતાં ઘણી સસ્તી છે.
આ ટોગલને પરફોર્મન્સ નોબ તરીકે નહીં, પણ કમ્પેટેબિલિટી શિમ તરીકે જુઓ. તે એવા એન્વાયરમેન્ટ્સ માટે
આને શુક્રવારે બપોરે ઇન્સ્ટોલ કરવામાં આવતા સામાન્ય પેચ તરીકે ન ગણો. 2.1.216 માં અપગ્રેડ પાથ સરળ છે, પરંતુ ખોટી ગોઠવણી (misconfiguration) ના પરિણામો સરળ નથી.
સૌ પ્રથમ, તમારા સામાન્ય પેકેજ મેનેજર અથવા ઇન્સ્ટોલર દ્વારા 2.1.216 માં અપગ્રેડ કરો. પછી કોઈપણ એજન્ટ કાર્યો શરૂ કરતા પહેલા ત્રણ આઇસોલેશન પ્રોફાઇલ્સમાંથી એક પસંદ કરો. કયું પ્રોફાઇલ અગ્રતા (precedence) ધરાવે છે તે સમજ્યા વિના ચાલુ સેશન્સમાં પ્રોફાઇલ્સને મિક્સ કરશો નહીં.
હવે, નીચે વર્ણવેલ પાંચ નોન-ડિસ્ટ્રક્ટિવ (non-destructive) બાઉન્ડ્રી ટેસ્ટ ચલાવો. આ ઝડપી, સ્ક્રિપ્ટેડ ચેક છે જે સાબિત કરે છે કે સેન્ડબોક્સ (sandbox) પ્રોફાઇલના વચન મુજબ જ વર્તે છે. ટેસ્ટિંગ દરમિયાન, તમારા ડિસ્પોઝેબલ ટેસ્ટ રિપોઝીટરીની બહારની ફાઇલો માટે સેન્ટિનલ હેશ (sentinel hashes) જનરેટ કરો. સેન્ટિનલ હેશ એ તમે સુરક્ષિત કરવા માંગતા સંવેદનશીલ ફાઇલ અથવા ડિરેક્ટરીનું ફક્ત એક ચેકસમ (checksum) છે. ટેસ્ટ ચલાવ્યા પછી, હેશની સરખામણી કરો. જો કંઈપણ બદલાયું હોય, તો તમારું આઇસોલેશન લીક થઈ રહ્યું છે.
તમારા લોગ્સ (logs) પણ તપાસો. Claude Code તેના લોકલ લોગ્સમાં ડિનાયલ્સ (denials) અને સેન્ડબોક્સ ઇવેન્ટ્સ લખે છે. જ્યારે બ્લોક કરેલ હોસ્ટ સુધી પહોંચવાનો પ્રયાસ કરવામાં આવે અથવા જ્યારે સબએજન્ટ તેના વર્કટ્રી (worktree) ની બહાર જાય ત્યારે સ્પષ્ટ અસ્વીકાર (explicit rejections) શોધો. સાયલન્ટ ફેઈલ્યોર (Silent failures) એ અવાજ સાથે થતા ફેઈલ્યોર કરતા વધુ ખરાબ છે, તેથી લોગ્સમાં ગાર્ડરેલ્સ (guardrails) સક્રિય થતા દેખાય છે કે નહીં તે ચકાસો.
અંતે, ફેરફારને ધીમે ધીમે લાગુ કરો. એક સિંગલ પ્રોજેક્ટ અથવા નોન-પ્રોડક્શન બ્રાન્ચથી શરૂઆત કરો. તમારા સમગ્ર ટીમને અથવા CI ફ્લીટમાં તેને ડિપ્લોય કરતા પહેલા નવા વર્ઝનને એક કે બે દિવસ ચાલવા દો.
પાંચ બાઉન્ડ્રી ટેસ્ટ જે સાબિત કરે છે કે તમારું સેન્ડબોક્સ કામ કરે છે
હંમેશા નકલી ડેટાથી ભરેલી ડિસ્પોઝેબલ રિપોઝીટરીની અંદર આ ટેસ્ટ ચલાવો. તેમને ક્યારેય પ્રોડક્શન કોડ, અસલી ક્રેડેન્શિયલ્સ અથવા લાઈવ ઇન્ફ્રાસ્ટ્રક્ચર પર ન ચલાવો.
નેટવર્ક બાઉન્ડ્રી. બે એન્ડપોઇન્ટ્સ સુધી પહોંચવાનો પ્રયાસ કરો: એક જેને તમે સ્પષ્ટપણે પરવાનગી આપી છે અને એક જેને તમે બ્લોક કરી છે. httpbin.org જેવી પબ્લિક ટેસ્ટ સર્વિસ સામે એક સાદો HTTP રિક્વેસ્ટ પરવાનગી આપેલ ટાર્ગેટ તરીકે કામ કરી શકે છે, જ્યારે લોકલ મેટાડેટા એન્ડપોઇન્ટ અથવા ઇન્ટરનલ IP પરનો રિક્વેસ્ટ નિષ્ફળ જવો જોઈએ. જો બ્લોક કરેલ રિક્વેસ્ટ સફળ થાય છે, તો તમારું નેટવર્ક સેન્ડબોક્સ ખોટી રીતે ગોઠવાયેલું (misconfigured) છે.
વર્કટ્રી આઇસોલેશન. સબએજન્ટની અંદરથી, પેરેન્ટ ડિરેક્ટરીને લક્ષ્ય બનાવતી Git કમાન્ડ ચલાવો. ઉદાહરણ તરીકે, git -C .. status અજમાવો અથવા એજન્ટને તેના ચેકઆઉટની બહારની ફાઇલોનું વર્ણન કરવા કહો. 2.1.216 માં ફિક્સ સાથે, આ નિષ્ફળ જવું જોઈએ. સબએજન્ટને ફક્ત તેનું પોતાનું વર્કટ્રી જ દેખાવું જોઈએ.
સિમ્લિંક ટ્રેપ. તમારા પ્રોજેક્ટની અંદર એક સિમ્લિંક બનાવો જે રિપોઝીટરીની બહારના ડિરેક્ટરી તરફ નિર્દેશ કરે છે, જેમ કે /tmp/sentinel-target. પછી .claude પાથ હેઠળ કોઈ કાર્ય અથવા વર્કફ્લો સેવ કરવાનો પ્રયાસ કરો જે તે લિંક દ્વારા લખશે. સેવ કર્યા પછી, બહારની ડિરેક્ટરી તપાસો. જો તે હજુ પણ ખાલી હોય, તો સિમ્લિંક હાર્ડનિંગ (symlink hardening) કામ કરી રહ્યું છે.
રીવાઇન્ડ સ્કીપ. તમારા રિપોમાં એક ફોલ્ડર સેટઅપ કરો જેમાં સિસ્ટમ ફાઇલ અથવા અન્ય ડિરેક્ટરી માટે સિમ્લિંક હોય. તે ફોલ્ડર પર /rewind ચલાવો. Claude એ તે પાથને શોધવાને બદલે સ્કીપ કરેલા સિમ્લિંક્ડ અથવા હાર્ડ-લિંક્ડ પાથની યાદી આપવી જોઈએ. ખાતરી કરો કે રિપોની બહારનો ટાર્ગેટ અસ્પૃશ્ય (untouched) રહે છે.
સેશન રિઝરેક્શન. ફાઇલ-રાઈટ ટૂલ્સ ડિસેબલ કરવા જેવી કડક મર્યાદા સાથે બેકગ્રાઉન્ડ એજન્ટ લોન્ચ કરો. સેશનને પોઝ (pause) કરો અથવા સ્ટોપ કરો, પછી તેને રિઝ્યુમ (resume) કરો. તરત જ એજન્ટને ફાઇલ લખવા માટે કહો. જો મર્યાદા હજુ પણ સક્રિય હોય, તો રિઝ્યુમ કરેલા એજન્ટ્સ માટેનું ફિક્સ કામ કરી રહ્યું છે. જો એજન્ટને અચાનક ફરીથી સંપૂર્ણ ટૂલ એક્સેસ મળી જાય, તો તમે હજુ પણ જોખમમાં છો.
અંતિમ શબ્દો
Claude Code 2.1.216 તમને અગાઉના વર્ઝન કરતા વધુ લવચીકતા (flexibility) આપે છે, પરંતુ તે લવચીકતા એક સ્પષ્ટ આદેશ સાથે આવે છે: વિશ્વાસ કરતા પહેલા ચકાસણી કરો. નવું ફાઇલસિસ્ટમ ટોગલ (filesystem toggle) સુરક્ષાના ભોગે તમારું જીવન સરળ બનાવવા માટે નથી. તે એ એન્જિનિયરો માટે છે જેમણે પહેલેથી જ ટૂલની નીચે મજબૂત પાયો બનાવ્યો છે. આ રિલીઝમાં વાસ્તવિક સુધારાઓ એ સાયલન્ટ ગાર્ડરેલ્સ (silent guardrails) છે જે સબએજન્ટ્સને પેરેન્ટ ડિરેક્ટરીઓમાં ઘૂસતા અટકાવે છે, કોન્ફિગરેશન રાઈટ દરમિયાન સિમ્લિંક્સને અનુકાર્ય કરવાનો ઇનકાર કરે છે, અને લાંબા વિરામ પછી પણ નિયમો યાદ રાખે છે.
પાંચ ટેસ્ટ ચલાવો. તમારા સેન્ટિનલ હેશ તપાસો. લોગ્સ વાંચો. પછી, અને માત્ર ત્યારે જ, નવા વર્ઝનને વાસ્તવિક કામ કરવા દો.
સ્ત્રોત: Claude Code v2.1.216 Release Notes
વૈકલ્પિક લર્નિંગ કોમ્યુનિટી: GyaanSetu on Telegram
