xAI Grok Build CLI द्वारा xAI को भेजा जाने वाला डेटा: wire-level विश्लेषण
(gist.github.com/cereblab)grok 0.2.93के network traffic को सीधे capture करने पर पाया गया कि Grok Build ने पढ़ी गई files को बिना masking के भेजा औरsession_stateके रूप में store किया, तथा test के लिए रखे गए.envsecrets भी दो paths में जस के तस शामिल थे- model request में agent द्वारा पढ़ी गई files भेजने से अलग, पूरा repository जिसमें सभी tracked files और Git history शामिल थी git bundle के रूप में upload किया गया, और जिन files को खोलने से मना किया गया था वे भी मूल रूप में restore हो गईं
- 12GB के random file repository में
/v1/responsesrequests कुल 192KB थीं, लेकिन/v1/storageका transfer capture रोकने तक 5.10GiB तक पहुंच गया, यानी लगभग 27,800 गुना अंतर, और सभी storage requests ने HTTP 200 लौटाया - upload destination Google Cloud Storage का
grok-code-session-tracesbucket था, और “Improve the model” बंद करने पर भीtrace_upload_enabled: trueऔरupload_enabled: trueबने रहे, साथ ही पूरे repository का upload जारी रहा - यह experiment data के transfer, acceptance और storage को साबित करता है, लेकिन यह verify नहीं कर सका कि इसे model training में इस्तेमाल किया गया या नहीं, और
.gitignorefiles तथा सभी account/config combinations का परीक्षण नहीं किया गया, इसलिए नतीजे जुलाई 2026 के एक specific version तक सीमित हैं
परीक्षण लक्ष्य और विश्लेषण की सीमा
- लक्ष्य xAI का आधिकारिक Grok Build CLI था, जिसमें एक सामान्य consumer account से login किया गया था
- install path
~/.grok/bin/grokथा - browser में X या SuperGrok account से authenticate किया गया, API key का उपयोग नहीं हुआ
- test binary Apple Silicon के लिए
grok 0.2.93 (f00f96316d4b)थी - SHA-256
2a97ba675bd992aa9b981e2e83776460d94f469b510c0b8efe28b50d236d767cथा
- install path
- binary strings से internal Rust upload components और storage-related constants की पुष्टि हुई
crates/codegen/xai-data-collector/src/gcs.rsstorage_client.rs,queue.rs,file_access_tracker.rs,circuit_breaker_observer.rsxai-grok-shell/src/upload/{gcs,turn,trace,manifest}.rsgrok-code-session-traces,storage.googleapis.com,Uploading bytes to GCS via proxy
- सभी captures केवल tester के computer और उसके traffic पर किए गए, और repository में असली credentials की जगह unique canary strings रखे गए थे
पुनरुत्पादन और traffic capture की विधि
- macOS Apple Silicon पर
mitmproxyका CA login keychain में trusted certificate के रूप में जोड़करHTTPS_PROXYऔरSSL_CERT_FILEसेट किए गए, ताकि Grok की HTTPS requests capture की जा सकें - इस setup में Grok ने certificate pinning के जरिए capture को block नहीं किया
mitmdumpaddon के साथ हर request का method, host, path, response status और request byte size log किया गया, और xAI hosts की ओर जाने वाले request bodies save किए गए~/.grok/upload_queue/*को execution के दौरान copy करकेgzipऔरtarसे खोलकर upload की प्रतीक्षा कर रहे staging artifacts भी जांचे गए- हर file में source पहचानने योग्य unique marker डाले गए, और secret files में नीचे जैसे fake values उपयोग किए गए
API_KEY=CANARY7F3A9-SECRET-should-not-leaveDB_PASSWORD=CANARY7F3A9-DBPASS
चैनल A: पढ़ी गई files और .env का model request के जरिए transfer
- Grok द्वारा पढ़ी गई files की content
POST cli-chat-proxy.grok.com/v1/responsesके model turn body में serialize की गई थी- capture की गई 48,070-byte request में
"model":"grok-4.5"और message array शामिल था .envकेAPI_KEYऔरDB_PASSWORDcanary line breaks सहित मूल रूप में मिले- source, logic, README, nested JavaScript file और दो secret values सहित 6 markers request body से recover किए जा सके
- capture की गई 48,070-byte request में
- यही content
session_statearchive में भी गई औरPOST /v1/storageके जरिए upload हुई, तथा संबंधित storage request को HTTP 200 से accept किया गया- compressed archive खोलकर जांचने पर दोनों secret values और अन्य file markers सभी मिले
- secrets केवल model द्वारा अस्थायी रूप से process नहीं किए गए, बल्कि storage archive में भी लिखे गए
Reply exactly OK, do not read any filesवाले control prompt में बिना खोली गईuntouched_secret.txtका marker/v1/responsesbody में नहीं मिला- इससे केवल इतना साबित होता है कि model request channel की सीमा agent द्वारा वास्तव में पढ़ी गई files पर केंद्रित है
- अलग full-repository snapshot channel में unread files भी शामिल थीं, इसलिए यह control result पूरे repository upload को खारिज नहीं करता
- secrets
.envयाsecrets.envमें थे और Git-tracked files थे.gitignoreमें शामिल files भी upload होती हैं या नहीं, इसका अलग से परीक्षण नहीं किया गया- canary असली high-entropy token format नहीं थे, इसलिए यह पूरी तरह साबित नहीं होता कि
sk-…जैसे specific formats के लिए कोई अलग masking mechanism बिल्कुल नहीं है - सत्यापित सीमा बस यह है कि परीक्षण की गई
.envcontent बिना masking के transfer हुई
चैनल B: unread files सहित पूरे repository का upload
/v1/storageने model द्वारा पढ़ी गई files भेजने वाले/v1/responsesसे अलग पूरे workspace snapshot को upload किया- वास्तविक
cereblab_apirepository मेंReply with exactly: OK. Do not read or open any files.निर्देश देकर run किया गया- Grok ने
POST /v1/storageके जरिए 152,102-byte git bundle भेजा और server ने HTTP 200 लौटाया - capture किए गए
uploaded_repo.bundleकोgit cloneकरने परsrc/_probe/never_read_canary.txt, जिसे खोलने से मना किया गया था, restore हो गई - file के भीतर
CANARY-XR47P2-NEVERREAD-UNIQUEmarker भी मूल रूप में मौजूद था - bundle में 4 commits, 47 files और पूरी Git history शामिल थी
- Grok ने
- दूसरे स्वतंत्र repository
cereblab_authमें भी वही परिणाम पुनरुत्पादित हुएPOST /v1/storageके जरिए 31,743-byte git bundle upload हुआ और HTTP 200 लौटा- restore किए गए repository में unread file का
CANARY-AUTH-4T8K2-NEVERREADmarker जस का तस मिला
- 298 files वाले अलग
cereblab_apirun में staged manifest ने unread files तक enumerate कींsrc/_probe/never_read_canary.txtके साथsrc/apns.ts,src/index.tsजैसी वास्तविक source files भी दर्ज थींmetadata.jsonमें file-wisefileIdका रूपgs://grok-code-session-traces/repo_changes_dedup/v2/supplemental/sha256_…था- यह run quota के कारण content blob transfer पूरा नहीं कर सका, लेकिन अलग git bundle experiment और 12GB experiment में वास्तविक upload की पुष्टि हुई
- binary में
after_codebase.tar.gz,repo_state.upload,collecting workspace files,spawning background coordinatorजैसी strings भी थीं, जो workspace collection mechanism से मेल खाती हैं
12GB repository में multi-GiB transfer की पुष्टि
- लगभग compress न होने वाली random files से repository size बढ़ाकर upload behavior देखा गया
- 64MB पर लगभग 48MB का single
POST /v1/storageHTTP 200 लौटा, लेकिन log संरक्षित नहीं रहा - लगभग 600MB पर लगभग 7.5MB chunks के कई requests ने HTTP 200 लौटाया, लेकिन logs नहीं बचे
- लगभग 3GB पर multipart initialization के बाद
storage.googleapis.comकी ओर 50MB units में PUT दिखे, लेकिन direct PUT logs सुरक्षित नहीं रहे - लगभग 12GB पर लगभग 75MB chunks
/v1/storageपर लगातार भेजे गए और 5.10GiB पर capture रोक दिया गया
- 64MB पर लगभग 48MB का single
- संरक्षित
wire_12gb.logमें कुल 83/v1/storage*HTTP 200 responses हैं- content upload
POST /v1/storage82 - इनमें लगभग 75MB chunks 73
- 73 chunks का कुल योग
5,476,083,317B, यानी 5.10GiB या 5.48GB - 9 छोटे POSTs और
/v1/storage/batch_existsका 1 dedupe check भी शामिल है - कुल
/v1/storage*request bytes5,476,228,005Bथीं, और कोई failed storage request नहीं थी
- content upload
- capture upload जारी रहते हुए रोकी गई, इसलिए पूरा 12GB upload पूरा हुआ यह साबित नहीं होता
- अंतिम record भी लगभग 75MB chunk के लिए HTTP 200 था
- जो सिद्ध होता है वह यह कि 5.10GiB से अधिक data बिना failure के भेजा गया और रुकने के समय भी बढ़ रहा था
- उसी session के दो channels के बीच capacity का बहुत बड़ा अंतर था
/v1/responsesकी 5 requests मिलाकर196,705B, यानी लगभग 192KB थीं, और सबसे बड़ी request भी 60,394B थी/v1/storage5.10GiB था- लगभग 27,800 गुना अंतर दिखा, जिससे model requests में शामिल न हुआ बड़ा repository data अलग storage channel से गया
- model quota errors और storage upload स्वतंत्र रूप से हुए
/v1/responsesपर HTTP 402 एक बार और 429 तीन बार आए- session bookkeeping requests में असंबंधित 404 एक बार आया
- पहले 429 के बाद भी
/v1/storageपर HTTP 200 कुल 76 बार आते रहे - 82 storage requests सभी सफल रहीं, और परीक्षण सीमा में storage capacity limit error नहीं आई
- यह परिणाम local
upload_queueखाली होने जैसी घटना पर निर्भर नहीं है- queue upload success और discard दोनों स्थितियों में खाली हो सकती थी, इसलिए इसे evidence नहीं माना गया
- आधार वे captures हैं जिनमें request bodies वास्तव में network पर गईं, HTTP 200 मिला, और uploaded git bundle से files recover हुईं
storage location और telemetry
- storage destination AWS S3 नहीं, बल्कि Google Cloud Storage का
grok-code-session-tracesbucket था- binary में
grok-code-session-traces,storage.googleapis.com,Uploading bytes to GCS via proxyमौजूद थे - संरक्षित
metadata.jsonमें file destinationsgs://grok-code-session-traces/…के रूप में दर्ज थे - लगभग 3GB experiment में संबंधित GCS host पर direct multipart PUT भी देखे गए, लेकिन logs सुरक्षित नहीं रहे
- binary में
aws-sdk-s3होने के बावजूद, परीक्षण में पुष्टि किया गया destination GCS था
- binary में
- third-party और internal telemetry requests भी देखी गईं
- Mixpanel का
api.mixpanel.com/trackऔर/engage grok.com/_data/v1/events- इन सभी requests ने HTTP 200 लौटाया
- Mixpanel का
- review किए गए CLI install script और quickstart materials में
repo_state,session_state,~/.grok/upload_queue,grok-code-session-tracesupload का उल्लेख नहीं मिला- सभी xAI documents और help pages की जांच नहीं की गई, इसलिए यह निर्णायक रूप से नहीं कहा जा सकता कि कहीं भी documentation नहीं है
- सत्यापित सीमा बस यह है कि CLI की अपनी setup materials में यह स्पष्ट नहीं था
~/.grok/upload_queueएक turn में लगभग 3GB snapshot stage कर सकता था और अधिक load पर कई दर्जन GB तक बढ़कर disk भर सकता था- यह upload की privacy issue से अलग एक reliability issue है
“Improve the model” setting और policy की सीमा
- cloud coding agent द्वारा काम के लिए आवश्यक code context server पर भेजना अपने आप में आवश्यक behavior हो सकता है
- परीक्षण में पुष्टि किया गया behavior नीचे के तीन बिंदुओं में अलग होता है
.envजैसी secret files को बिना masking के transfer करना- उस content को निर्दिष्ट GCS bucket में store करना
- पूरे repository upload का review की गई CLI setup materials में दिखे बिना default रूप से enabled होना
- xAI consumer policy model improvement के लिए data use और opt-out को व्यापक रूप से cover करती है; Private Chat अपने आप opt-out है और opt-out retrospective नहीं है
- संबंधित documents हैं xAI Privacy Policy और Consumer ToS
- ऐसी सामान्य training policy, specific
repo_stateऔर GCS upload pipeline को document करने के बराबर नहीं है
-
“Improve the model” बंद करने पर भी upload नहीं रुकता
- setting बंद होने पर भी पूरा repository git bundle के रूप में
/v1/storageपर upload हुआ और HTTP 200 लौटा git cloneसे unread files और Git history restore की जा सकी- CLI को मिले
/v1/settingsमें"trace_upload_enabled": true,"upload_enabled": true,"session_registry_enabled": trueबने रहे "max_upload_file_bytes": 1073741824के रूप में प्रति file 1GiB limit भी लौटी- परीक्षण नतीजों में opt-out ने training usage को control किया, लेकिन repository का computer छोड़कर upload और store होने वाला behavior नहीं रोका
- setting बंद होने पर भी पूरा repository git bundle के रूप में
क्या सिद्ध नहीं हुआ और evidence की सीमाएँ
- केवल network capture से यह साबित नहीं किया जा सकता कि xAI data को model training में इस्तेमाल करता है
- सत्यापित सीमा transfer, HTTP 200 acceptance, storage archive और GCS destination तक है
- 3GB run में देखे गए
storage.googleapis.com/grok-code-session-tracesdirect PUT logs overwrite हो गए और सुरक्षित नहीं रहे- multi-GiB upload का आधार संरक्षित 12GB run के
/v1/storagelogs, तथा bucket बताने वाली binary और metadata हैं
- multi-GiB upload का आधार संरक्षित 12GB run के
- size-wise tests में 64MB, 600MB, 3GB logs नहीं बचे और केवल 12GB log संरक्षित रहा
- 12GB run लगभग 5.10GiB पर रोका गया, इसलिए यह निश्चित नहीं कहा जा सकता कि पूरा 12GB अंत तक upload होता
- सभी account tiers और config combinations का परीक्षण नहीं किया गया
- free tier में multi-GiB upload सफल हुआ
- SuperGrok में “Improve the model” बंद होने पर भी git bundle upload सफल रहा
- परीक्षण में upload बंद करने की setting नहीं मिली, लेकिन यह निर्णायक रूप से नहीं कहा गया कि किसी भी environment में इसे कभी disable नहीं किया जा सकता
- शुरुआत में PID-based
nettopresults के आधार पर गलत निष्कर्ष निकाला गया था कि large blobs upload नहीं हुए; यह निष्कर्ष वापस लिया गया- अलग upload coordination process और Google IPs की ओर जाने वाले pre-signed direct PUT, API host या single PID-based measurement में छूट सकते थे
- बाद की proxy wire capture ने शुरुआती निष्कर्ष की जगह ली
- परिणाम
grok 0.2.93, macOS Apple Silicon, जुलाई 2026 environment तक सीमित हैं, और xAI बाद में behavior बदल सकता है
संरक्षित प्रमुख evidence
secrets_responses_body.bin: दिखाता है कि.envका मूल content/v1/responsesbody में शामिल थाsecrets_session_state.tar.gz: दिखाता है कि वही secrets/v1/storagearchive में भी थींwire_12gb.log: 5.10GiB storage upload, 83/v1/storage*HTTP 200, 0 storage failures और दोनों channels के बीच लगभग 27,800 गुना size difference को record करता हैmodel_limit.txt: model requests पर आए 402 एक बार और 429 तीन बार record करता हैcrate_strings.txt:xai-data-collector,grok-code-session-traces,storage.googleapis.comstrings को संरक्षित करता हैuploaded_repo.bundle: uploaded git bundle से unread files और पूरी Git history restore होने का पहला repository evidenceuploaded_repo_auth.bundle: दूसरे स्वतंत्र repository में वही परिणाम दोहराने का evidencestaged_base_tree_manifest.json: दिखाता है कि unread files repository snapshot manifest में enumerate की गई थींstaged_metadata.json: दिखाता है कि file destinationgs://grok-code-session-traces/…थाgcs_puts.txtdirect GCS PUT को सुरक्षित न रख पाने के कारण खाली placeholder है, और उस PUT के preserved evidence के रूप में उपयोग नहीं किया जा सकता
1 टिप्पणियां
Hacker News की टिप्पणियाँ
मैं हमेशा coding tools और LLM provider को अलग रखता हूँ, और bubblewrap sandbox से coding tool की permissions सीमित करता हूँ
tool सिर्फ working project directory पढ़ सकता है,
.gitread-only रहता है, और sensitive directories को empty directories के रूप में mount किया जाता हैnetwork namespace भी isolate करता हूँ ताकि वह सिर्फ Unix socket के HTTP proxy के ज़रिए internet तक पहुँचे, और केवल खास LLM provider hosts को allow किया जाए, जबकि tool के अपने hosts block रहें
उदाहरण के लिए Crush में
*.openrouter.aiकी access allow करता हूँ, लेकिन LLM list auto-update में इस्तेमाल होने वाला*.charm.landblock करता हूँ। इसकी वजह सेyolomode में सारे काम सौंपना काफी आसान हो जाता हैdebian:unstableजैसा rootfs लेकर उसे अलग folder में एक complete distribution environment की तरह सेट करना बेहतर रहता हैउसके अंदर AI agent install करने के बाद distribution rootfs को read-only, और customized
/home/userको read-write रखकरbwrapचलाने वाली script बनाई जा सकती है। इससे तय directories के बाहर की महत्वपूर्ण files दिखती ही नहीं, और कई agents को एक-दूसरे से छिपाकर भी चलाया जा सकता हैइसे और मजबूत करना हो तो अंदर से gVisor का
runsc ... do ...call किया जा सकता है, या muvm जैसा virtual machine monitor इस्तेमाल किया जा सकता है।bwrapenvironment setup संभालता है और locking किसी अलग sandbox tool से होती है, इसलिए इस पर भरोसा करना आसान हैअगर configuration सही हो तो सिर्फ
bwrapभी ज़्यादातर attackers को रोकने के लिए काफी है, और privilege escalation के लिए लगभग Linux kernel zero-day चाहिए होगाअगर model इतना मूर्खतापूर्ण behavior करता है कि उसे constraints से रोकना पड़े, तो मेरे हिसाब से वह शुरू से इस्तेमाल लायक ही नहीं है। मैं भी अपना environment harden कर रहा हूँ, और यह practice की आलोचना नहीं है
claude-code, Codex, grok-build जैसे proprietary native coding agent runners privacy के लिहाज़ से जोखिमभरे हैं, क्योंकि अगली update में कौन-सी private functionality जुड़ जाएगी, यह पता नहीं होता
opencode में API के ज़रिए model इस्तेमाल करना कहीं ज़्यादा सुरक्षित लगता है, लेकिन native runner जितनी अच्छी performance पाना मुश्किल होने का trade-off रहता है
Grok का तरीका बस ज़्यादा खुला हुआ है; opencode भी असल security boundary नहीं बनाता, और यह Cheetos को ताले की तरह इस्तेमाल करने वाले meme जैसा है
Windows XP SP1 की remote code execution vulnerability जैसी चीज़ को तुरंत patch न करना भी जोखिमभरा है, लेकिन पिछले कई दशकों में updates न करने से जितना नुकसान होना चाहिए था, उससे ज़्यादा नुकसान मैंने auto-update की वजह से देखा है
“agent ने कौन-सी files पढ़ी, इससे अलग tracked सभी files की contents और Git history सहित पूरे repository को upload कर देता है” — यह बहुत चौंकाने वाला है
Elon catch up करने के लिए ऐसा कर सकता है, इसका कुछ अंदाज़ा था, लेकिन यह गंभीर रूप से चिंताजनक है। इसकी price competitiveness है और grok-4.5 की performance भी काफी अच्छी है, लेकिन इसी वजह से मैंने इसे नहीं चुना
CLI गलती से SSH keys या दूसरी sensitive जानकारी ले जा सकता है, और programmers ऐसी गलतियाँ सच में अक्सर करते हैं। “जो भी file accessible है, सब upload कर दो” यह जानबूझकर है या गलती, इस पर अपनी safety छोड़ना नहीं चाहता
पहली बात, “repository के अंदर की secrets file model ने पढ़ ली,” असल में लगभग intended behavior ही है
LLM file पढ़ने से पहले यह तय नहीं कर सकता कि उसमें secrets हैं या नहीं। अगर आप plain-text secrets वाली file तक LLM को access देते हैं और फिर उसके पढ़ लेने पर हैरान होते हैं, तो मूल समस्या वहीं है
लेकिन पूरे repository को अपने आप upload करना बेतुका है। अगर repository कई GB की हो तो कुछ connections पर इसमें बहुत लंबा समय लगेगा, और अगर सारा data इकट्ठा करने जैसा कोई दूसरा मकसद न हो तो यह आम तौर पर निरर्थक लगता है
मैं हमेशा मानकर चलता हूँ कि जिस current workspace में agent चलाया गया है, कम-से-कम उस पर agent का पूरा अधिकार है, इसलिए यह अपेक्षित behavior जैसा लगता है
ज़्यादातर agents पहले prompt में code और उसके अंदर के secrets तक पढ़ लेते हैं। अगर server पर इसका इस्तेमाल करके prompt round-trip time और tool calls कम किए जाते हैं, तो क्या यह उल्टा user के लिए फ़ायदेमंद नहीं है?
लेकिन यहाँ project folder पूरे का पूरा GCP storage bucket में निकालने वाला एक अलग endpoint मिला। जिसने भी बड़े distributed systems design किए हैं, वह समझ जाएगा कि यह training data बटोरने वाली architecture है
बिना सारी files upload किए भी search के ज़रिए सिर्फ relevant हिस्से ढूँढकर model के इस्तेमाल के लिए भेजे जा सकते हैं
अच्छा होता अगर overview किसी इंसान ने लिखा होता, लेकिन content खुद ही बेचैन करने वाला है
AI-written report पढ़ना इतना कष्टदायक है कि मैंने लगभग 10 सेकंड स्कैन किया और रुचि खो दी
सोच रहा हूँ कि चुराई गई चीज़ें “हर business को automate” करने वाले Macrohard project या “everything app” में जाएँगी क्या
यह ऐसा लगता है जैसे सब कुछ खुद बनाने की ज़रूरत नहीं, बस चुरा लो
अगर आप बिना नैतिकता के ऐसी company चलाते हैं, तो scam का scale सामने आने और regulation के रोकने से पहले जितना हो सके उतना चुराने की कोशिश करेंगे। मेरा मतलब यह नहीं कि वे सचमुच ऐसा कर रहे हैं, लेकिन economic incentives ठीक उसी दिशा में aligned हैं
यह मानकर चलना चाहिए कि AI agent उस डायरेक्टरी की फ़ाइलें पढ़ सकता है जहाँ से runner शुरू हुआ है
ज़्यादातर मामलों में वह पहले prompt में कोड और उसके भीतर के secret तक पढ़ लेता है, और
.envकेवल local environment के लिए है इसलिए उसमें असली secret नहीं रखने चाहिए। AI agent के निर्देशों पर भरोसा नहीं किया जा सकता, इसलिए उसे असली secret से अलग-थलग रखना चाहिएअगर इस आधार को स्वीकार करें, तो हर बार context में कोड भेजने के बजाय उसे server पर चढ़ाकर रखना बेहतर हो सकता है
इसलिए अलग से upload करने की वजह बस यही लगती है कि Musk अगले model के लिए project structure, लोकप्रिय library, CI workflow जैसे साफ़ training data जुटाना चाहता है
अगर नतीजे बेहतर होते हों तो सभी providers के पास वही काम करने की क्षमता और प्रोत्साहन है
असली फ़र्क यह है कि
.envजैसी secret फ़ाइलों को छिपाए बिना भेजा जाता है, उन्हें सिर्फ़ अस्थायी रूप से process करने के बजाय नामित GCS bucket में store किया जाता है, और CLI settings documentation में upload के तरीके की जानकारी दिए बिना इसे default रूप से enabled रखा गयाऐसी किसी accessible path में unencrypted
.envनहीं रखना चाहिए। बेहतर होता कि Grok secret पहचानकर उसे नज़रअंदाज़ कर दे, लेकिन users को ऐसे behavior पर निर्भर नहीं होना चाहिए“Improve the model” setting चालू हो या बंद, पूरा repository एक जैसा upload होता है — यह बेहद गंभीर है
ज़्यादातर AI कंपनियाँ भी अगर data collection की सहमति दी जाए तो अपने runner में ऐसा ही कुछ करेंगी, लेकिन साफ़ तौर पर बंद करने के बाद भी upload करना दुर्भावनापूर्ण है
पूरा codebase upload करने से model “सोचते” समय client से असली tool call माँगे बिना भी कोड देख सकता है
client को फिर से request भेजने में क्या कमी है यह स्पष्ट नहीं, इसलिए यह बहुत मज़बूत वजह नहीं लगती, लेकिन सोची जा सकने वाली सबसे अच्छी दलील यही है
जो code पहले निजी था, अब वह उनका code बन जाता है
यह काफ़ी उपयोगी है, लेकिन Elon को पूरा repository सौंप देने जितना उपयोगी नहीं। इसे अस्वीकार न कर पाने लायक बनाया गया और बिल्कुल बताया भी नहीं गया — यही बात इस निष्कर्ष को और मज़बूत करती है कि यह data उन्हें नहीं सौंपना चाहिए