1 पॉइंट द्वारा GN⁺ 3 시간 전 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Claude Code 2.1.198 ने AskUserQuestion पर 60 सेकंड तक कोई जवाब न मिलने पर मॉडल को अपने हिसाब से काम जारी रखने वाला auto-continue फीचर डिफ़ॉल्ट रूप से चालू कर दिया था, लेकिन रिलीज़ के समय इसे changelog और docs में दर्ज नहीं किया गया था
  • इसने permission request को auto-approve नहीं किया, लेकिन पहले से allowed tools या --dangerously-skip-permissions environment में यह “staging या production” जैसे decision gate को पार कर सकता था, और कुछ जवाब भर दिए जाने पर बाकी विकल्प मॉडल खुद चुन लेता था
  • समस्या उठाए जाने के करीब दो दिन बाद आए 2.1.200 ने फीचर हटाया नहीं, सिर्फ़ इसका डिफ़ॉल्ट बंद किया और /config में 60s, 5m, 10m, never में से चुनने वाले opt-in तरीके में बदल दिया
  • public repository में असली product source या feature add/revert commits नहीं हैं, लेकिन npm के Bun executable में शामिल JavaScript bundle की तुलना से पुष्टि की जा सकती है कि 2.1.198 में AFK strings, schema और analytics events एक साथ जोड़े गए थे
  • डिफ़ॉल्ट auto-update और अधूरे changelog का मेल होने पर user intervention के बिना safety assumptions बदल सकती हैं। CLI को pin करके plugins अपडेट रखने हों तो DISABLE_AUTOUPDATER=1 और FORCE_AUTOUPDATE_PLUGINS=1 दोनों साथ सेट करने होंगे

60 सेकंड बाद इंसान की जगह फैसला करने वाला 2.1.198

  • 1 जुलाई 2026 को जारी Claude Code 2.1.198 में, AskUserQuestion के इंसानी जवाब का इंतज़ार 60 सेकंड से ज़्यादा होने पर block हट जाता था और मॉडल को context के आधार पर सबसे अच्छा निर्णय लेकर आगे बढ़ने का निर्देश दिया जाता था
    • output में No response after 60s — continued without an answer दिखता था
    • दोबारा पूछने की बात भी दिखाई जाती थी, लेकिन दोबारा पूछे जाने पर भी वही timeout लागू होता था
  • अगर user कुछ सवालों के ही जवाब देकर अपनी जगह से हट जाए, तो input discard नहीं होता था बल्कि partial answer submit कर दिया जाता था
    • तीन सवालों में सिर्फ़ पहले का जवाब देने पर, उसी जवाब और बाकी मॉडल-चुने गए जवाबों के साथ काम जारी रहता था
    • स्क्रीन संदेश जवाब की स्थिति के हिसाब से continued with the answers selected so far या continued without an answer में से एक चुनता था
  • ऐसा नहीं था कि स्क्रीन पर countdown बिल्कुल नहीं दिखता था
    • कोई key दबाने पर timer फिर से शुरू हो जाता था और auto-continue in 12s · any key to stay जैसी पंक्ति दिखाई देती थी
    • लेकिन CLAUDE_AFK_COUNTDOWN_MS का डिफ़ॉल्ट 20 सेकंड होने की वजह से पहले 40 सेकंड तक यह सामान्य blocking question जैसा दिखता था, और चेतावनी सिर्फ़ आख़िरी 20 सेकंड में दिखती थी
    • अलग-अलग tabs में कई agents चला रहे हों या user अपनी जगह पर न हो, तो यह चेतावनी दिखे ही नहीं, ऐसा हो सकता था

लागू दायरा और safety gate की सीमाएँ

  • timeout सिर्फ़ AskUserQuestion पर लागू था और plan approval या Do you want to allow … जैसे permission prompts से जुड़ा नहीं था
    • executable में countdown component और timer hook सिर्फ़ question dialog से जुड़े हुए थे
    • tool reference भी साफ़ कहता है कि permission prompt idle रहने पर auto-resolve नहीं होता
  • जिन execution modes में permission prompt शुरू से ही नहीं आता, वहाँ यह अलगाव सुरक्षा उपाय साबित नहीं होता था
    • bypassPermissions, acceptEdits, allowedTools, --dangerously-skip-permissions, PreToolUse hook इस्तेमाल किए जा सकते थे
    • अगर deploy command allowlist में हो या permission check bypass किया गया हो, तो AskUserQuestion के “staging या production?”, “कौन-सा config?” जैसे विकल्प ही आख़िरी gate बचते थे
  • timer खुद permission नहीं देता था, लेकिन पहले से allowed कामों में कौन-सा विकल्प चुना जाए, यह मॉडल पर छोड़ा जा सकता था
  • tool schema में timeout input नहीं था और मॉडल उसे सेट या control भी नहीं कर सकता था
    • input parameters सिर्फ़ questions, answers, annotations, metadata थे
    • जवाब skip करने वाला मॉडल नहीं था, बल्कि auto-return response देने वाला agent harness था

रिलीज़ और rollback timeline

  • पुष्टि किए गए public records यह क्रम दिखाते हैं
    • 2026-06-29: 2.1.196 रिलीज़, जिसे रिपोर्ट करने वाले ने आख़िरी सामान्य version माना
    • 2026-06-30: 2.1.197 रिलीज़, changelog में सिर्फ़ Sonnet 5 रिलीज़ की एक पंक्ति थी
    • 2026-07-01: auto-continue वाला 2.1.198 रिलीज़
    • 2026-07-02 02:54 UTC: Aleksey Nogin ने issue #73125 दर्ज किया
    • 2026-07-02 03:45 UTC: comment में private workaround रहे CLAUDE_AFK_TIMEOUT_MS को साझा किया गया
    • 2026-07-02: issue खुले रहने के दौरान 24 items वाला 2.1.199 रिलीज़ हुआ, लेकिन auto-continue अब भी दर्ज नहीं था
    • 2026-07-03: 2.1.200 में default behavior rollback किया गया
    • 2026-07-04 18:04 UTC: issue बंद हुआ
  • issue पर 384 👍 और 143 comments आए, और रिपोर्ट किया गया environment 2.1.198, Opus, AWS Bedrock, VS Code terminal था
  • समस्या रिपोर्ट होने से default बदलने तक लगभग दो दिन लगे

2.1.200 ने इसे कैसे बदला

  • 2.1.200 ने फीचर हटाने के बजाय auto-continue को डिफ़ॉल्ट रूप से disabled किया और /config के ज़रिए opt-in बना दिया
  • फ़िक्स से पहले 2.1.198 में /config setting askUserQuestionTimeout मौजूद नहीं थी, और इससे बचने के लिए रिलीज़ docs में न लिखे गए environment variable का इस्तेमाल करना पड़ता था
  • 2.1.211 में भी पूरा implementation बना हुआ है
    • /config item का नाम Question auto-continue timeout है
    • allowed values हैं 60s, 5m, 10m, never
    • इसे सेट न करने पर never माना जाता है, यानी फीचर बंद रहता है
    • internal default timeout अब भी 60,000ms है, countdown threshold 20,000ms है
    • CLAUDE_AFK_TIMEOUT_MS और CLAUDE_AFK_COUNTDOWN_MS setting value को override कर सकते हैं
  • फ़िक्स में timer हटाया नहीं गया, बल्कि एक gate condition और जोड़ दी गई, ताकि यह सिर्फ़ setting value या environment variable होने पर ही सक्रिय हो
  • प्रभावित version पर pinned users settings.json में CLAUDE_AFK_TIMEOUT_MS के लिए बहुत बड़ा value डालकर अस्थायी workaround कर सकते थे

बदलाव लॉग में दर्ज हुए बिना फीचर जोड़ा गया

  • release notes official changelog और repository के CHANGELOG.md में एक ही सामग्री के साथ प्रकाशित किए जाते हैं
  • उस समय के रिकॉर्ड को pinned commit के आधार पर देखें तो auto-continue जोड़े जाने का उल्लेख किसी भी version में नहीं दिखता
    • 2.1.197: Sonnet 5 release की एक पंक्ति
    • 2.1.198: लगभग 30 आइटम हैं, लेकिन auto-continue नहीं है
    • 2.1.199: issue खुलने के बाद प्रकाशित 24 आइटमों में भी इसका उल्लेख नहीं है
  • AskUserQuestion ऐसा tool था जिसका सामान्यतः changelog में उल्लेख होता था; 2.0.55 के बाद 13 versions में यह कुल 15 बार दिखाई दिया
    • लेकिन बदलाव वाले दायरे 2.1.181 से 2.1.200 से पहले तक यह एक बार भी नहीं दिखा
    • चालू और बंद, इन दो behavioral changes में से केवल बंद किया जाना ही दर्ज हुआ
  • auto-continue का पहला और एकमात्र दर्ज उल्लेख 2.1.200 में था, जिसमें लिखा था कि यह “अब default रूप से auto-continue नहीं करता और /config से opt-in” किया जा सकता है
  • CLAUDE_AFK_TIMEOUT_MS का उल्लेख changelog या README कहीं भी नहीं था

व्यवहार वापस लेने के बाद जोड़ा गया दस्तावेज़

  • मौजूदा environment variables reference में दोनों AFK environment variables दर्ज हैं, और साफ़ लिखा है कि 2.1.198 और 2.1.199 में 60 सेकंड का auto-continue default रूप से enabled था
  • यह दस्तावेज़ release वाले दिन की स्थिति को दर्ज करने वाला नहीं हो सकता
    • मौजूदा wording जिस askUserQuestionTimeout की ओर इशारा करती है, वह 2.1.198 executable में मौजूद नहीं है
    • Wayback Machine के 23 जून और 1 जुलाई 12:11 व 21:35 UTC captures में CLAUDE_AFK और AskUserQuestion दोनों 0 बार मिले
    • तुलना के लिए DISABLE_AUTOUPDATER सभी captures में 2 बार मिला, इसलिए यह page collection failure की वजह से हुई चूक नहीं थी
  • 2.1.198 को 1 जुलाई 16:50:16 UTC पर npm पर प्रकाशित किया गया था, लेकिन 4 घंटे 45 मिनट बाद के दस्तावेज़ में भी AFK, auto-continue, question tool या countdown का कोई उल्लेख नहीं था
  • संबंधित wording 1 जुलाई 21:35 से 5 जुलाई 13:58 के बीच जोड़ी गई, और इसी अवधि में 2.1.200 वाला rollback भी शामिल है
  • नया दस्तावेज़ केवल उस post-fix स्थिति को दर्ज करता है जिसमें यह पहले से “default disabled” था, इसलिए 1–2 जुलाई के वास्तविक default behavior के दस्तावेज़ बनने का कोई समय नहीं था

public repository में नहीं मौजूद product source और commits

  • फीचर को जोड़ने वाला public commit और उसे rollback करने वाला public commit, दोनों ही मौजूद नहीं हैं
  • public Git history में सिर्फ changelog और feed.xml अपडेट करने वाले दो automated commits बचे हैं
    • 75709ea: 2.1.198 release notes प्रकाशित
    • 1322e9b: 2.1.200 release notes प्रकाशित
  • anthropics/claude-code repository में 216 tracked files हैं, जिनमें 104 Markdown हैं, लेकिन वास्तविक deployed product source नहीं है
    • executable files example या issue-tracking automation scripts हैं
    • plugins/ और examples/ में sample plugins, GCP gateway Terraform settings, MDM profiles आदि हैं
  • 2.1.197 और 2.1.198 tags के बीच फ़र्क सिर्फ CHANGELOG.md और उसके RSS दोहराव feed.xml का है
    • 2.1.196 से 2.1.206 तक लगातार 10 releases में भी यही दो files ही बदलीं
    • tags source release नहीं बल्कि व्यावहारिक रूप से release notes tags हैं
  • changelog, repository या tag comparison से वास्तविक deployed behavior की पुष्टि नहीं की जा सकती, और लिखा गया source public किए बिना केवल compiled executable के रूप में वितरित किया गया

जानबूझकर design और instrumentation किए जाने के संकेत

  • official design docs, PR या changelog wording जैसी कोई सामग्री नहीं है जिससे यह पता चले कि इसे क्यों जोड़ा गया
  • नाम और message परिस्थितिजन्य साक्ष्य देते हैं कि यह उस स्थिति के लिए था जहाँ keyboard से दूर गया व्यक्ति parallel agents को अनिश्चित समय तक block कर देता है
    • internal नाम AFK का अर्थ away from keyboard है
    • message यह मानकर चलता है कि “user keyboard से दूर हो सकता है”
    • issue में भाग लेने वालों ने बताया कि वे ऐसे workflows इस्तेमाल करते हैं जिनमें दर्जनों agents कई दिनों तक इंसानी जवाब का इंतज़ार करते हैं
  • 2.1.198 में tool result schema में afkTimeoutMs field जोड़ी गई, जो यह दिखाती है कि resolution automatic था या नहीं
    • इंसानी जवाब वाले path में यह नहीं है, और auto-resolution होने पर idle time रिकॉर्ड करती है
    • इसका उपयोग model को यह बताने और terminal output component चुनने में होता है कि जवाब auto-resolved था
  • उसी version में tengu_ask_user_question_afk_auto_advance analytics event भी जोड़ा गया
    • यह timeoutMs, सवालों की संख्या, plan mode है या नहीं, और partial answer है या नहीं, यह भेजता है
    • सवाल का मूल पाठ नहीं भेजा जाता; उसकी जगह source_hash और counters इस्तेमाल होते हैं
  • hadPartialAnswers को अलग से instrument किया गया था, इसलिए partial answer path के लिए भी अलग code और measurement मौजूद थे
  • behavior, countdown UI, schema field और analytics event एक ही version में साथ आए, इसलिए यह कोई आकस्मिक एक-पंक्ति बदलाव नहीं बल्कि measurement system के साथ आया फीचर था
  • केवल इन साक्ष्यों से यह नहीं पता चलता कि इसे किसने लिखा, review किया, approve किया या merge किया, और किस चरण में इंसान ने हस्तक्षेप किया

closed source है, लेकिन Bun executable पढ़ा जा सकता है

  • installed Claude Code लगभग 250MB का symbols-not-stripped native executable है
  • Bun single-executable format runtime के पीछे module graph जोड़ता है, और Claude Code executable में भी ---- Bun! ---- marker पाया जा सकता है
  • क्योंकि Bun JavaScript bundle को executable के अंदर शामिल करता है, इसलिए strings से setting names, messages, analytics events आदि पढ़े जा सकते हैं
  • local install directory हाल के कुछ versions ही रखती है, लेकिन npm पर हर version के platform-specific executables मौजूद हैं
    • @anthropic-ai/claude-code लगभग 152KB का installation stub है
    • वास्तविक Linux x64 के लिए 2.1.198 package लगभग 249MB का है
  • public source नहीं है, लेकिन हर release artifact डाउनलोड करके deployed behavior की पुष्टि की जा सकती है, इसलिए यह पूरी तरह black box नहीं है

2.1.197 और 2.1.198 executable फ़ाइलों की तुलना

  • दोनों executable फ़ाइलों में AFK से जुड़े strings खोजने पर सीमा स्पष्ट दिखती है
    • 2.1.197: away from keyboard, CLAUDE_AFK_TIMEOUT_MS, CLAUDE_AFK_COUNTDOWN_MS — तीनों 0 बार
    • 2.1.198: क्रमशः 2 बार, 3 बार, 3 बार दिखाई देते हैं
  • संशोधन के बाद 2.1.211 के timer gate में यह शर्त जोड़ी गई कि /config मान या environment variable मौजूद होना चाहिए
    • 2.1.198 में भी external concurrent execution आदि की जांच करने वाला gate था
    • लेकिन उपयोगकर्ता के लिए इसे बंद करने की कोई शर्त नहीं थी, और संशोधन का रूप यहां बस एक && शर्त और जोड़ने जैसा था
  • फीचर का नाम और समस्या वाले version को जाने बिना सामान्य releases की तुलना करना कहीं अधिक कठिन है
    • strings -n 8 के आधार पर साधारण तुलना में 21,903 strings अलग निकलते हैं
    • minimum string length के अनुसार यह 81,289 या 29,910 तक बदल सकता है, इसलिए 21,903 कोई स्थिर release विशेषता नहीं है
    • हर build में minifier identifier नाम बदल देता है, इसलिए अधिकतर अंतर वास्तविक फीचर बदलाव नहीं बल्कि noise है
  • जोड़े गए strings में केवल वे English वाक्य छांटने पर जो बड़े अक्षर से शुरू होते हैं, सामान्य वाक्य रूप में हैं, और 5 शब्द या उससे अधिक हैं, संख्या घटकर 156 पंक्तियों तक रह जाती है
    • उनमें Before going idle the user had selected: शामिल है
    • यह वह string है जो dialog के इंसान की जगह उत्तर देने पर conversation में डाली जाती है, इसलिए बिना पूर्व जानकारी के भी इसे पढ़कर समीक्षा रोक देने लायक बदलाव माना जा सकता था
  • curl, strings, diff से इसे लगभग 5 मिनट में खोजा जा सकता था, लेकिन उपयोगकर्ताओं से हर auto update release पर executable जांचने की उम्मीद करना changelog का विकल्प नहीं हो सकता

लागत से बड़ा सुरक्षा मुद्दा

  • अगर गलत path अपने आप चुन लिया जाए, तो अनावश्यक tokens खर्च हो सकते हैं
  • बड़ा मुद्दा यह है कि hooks और rules, जो AskUserQuestion को एक blocking safety gate मानकर चलते हैं, अब 60 सेकंड की countdown में बदल जाते हैं
  • Claude Code का उपयोग deployment, infrastructure, और production-adjacent scripts जैसे जोखिम भरे environments में भी होता है
  • Claude Code डिफ़ॉल्ट रूप से अपने आप update होता है, इसलिए जब इसे चुपचाप होने वाले behavior change के साथ जोड़ा जाता है, तो उपयोगकर्ता कुछ भी किए बिना उनकी पुरानी safety assumptions बदल सकती हैं
  • नवीनतम version तुरंत लेने की नीति खुद में एक जोखिम भरा विकल्प हो सकती है—यह चर्चा On Cooldowns and Dependabot Tuning से भी जुड़ती है

auto update बंद करने का तरीका और प्राथमिकता क्रम

  • update disable करना है या नहीं, इसके लिए निम्न environment variables को क्रम से जांचा जाता है, और पहला matching मान लागू होता है
    • DISABLE_UPDATES=1: manual claude update सहित सभी update paths को रोकता है
    • DISABLE_AUTOUPDATER=1: केवल background checks रोकता है, manual updates की अनुमति देता है, और autoUpdates setting पर वरीयता रखता है
    • CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1: auto update, feedback commands, error reporting, और telemetry—सभी को साथ में रोकता है
  • shell profile की बजाय ~/.claude/settings.json के env block में रखने पर यह CI, cron, systemd, और IDE terminal सहित सभी sessions पर लागू किया जा सकता है
{
  "env": {
    "DISABLE_AUTOUPDATER": "1"
  }
}
  • setting scope की ताकत shell profile, user-specific ~/.claude/settings.json, repository-specific .claude/settings.json, और centrally managed managed-settings.json के क्रम में बढ़ती है
  • managed-settings.json path इस प्रकार हैं
    • macOS: /Library/Application Support/ClaudeCode/managed-settings.json
    • Linux/WSL: /etc/claude-code/managed-settings.json
    • Windows: C:\Program Files\ClaudeCode\managed-settings.json
    • पुराना C:\ProgramData\ClaudeCode path अब नहीं पढ़ा जाता
  • auto update बंद करने के लिए कोई CLI flag नहीं है, और /doctor installation type तथा update channel दिखाता है

CLI update बंद करने पर plugins भी रुक जाते हैं

  • environment variable या autoUpdates: false जैसे किसी भी तरीके से auto updater बंद करने पर plugin auto updates भी रुक जाते हैं
  • plugin discovery docs बताती हैं कि DISABLE_AUTOUPDATER के साथ FORCE_AUTOUPDATE_PLUGINS=1 सेट करने पर CLI को स्थिर रखकर plugins को update किया जा सकता है
  • लेकिन वास्तविक auto update disable करने की /setup docs और settings environment variable तालिका में plugin प्रभाव या FORCE_AUTOUPDATE_PLUGINS का उल्लेख नहीं है
  • executable के भीतर plugins update रोकने वाले paths चार हैं
    • DISABLE_UPDATES
    • DISABLE_AUTOUPDATER
    • CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC
    • autoUpdates: false
  • रनटाइम के दौरान plugin रुकने की कोई warning नहीं दिखाई जाती; केवल debug log Plugin autoupdate: skipped (auto-updater disabled) छोड़ दिया जाता है
  • CLI को स्थिर रखकर plugins बनाए रखने की setting इस प्रकार है
{
  "env": {
    "DISABLE_AUTOUPDATER": "1",
    "FORCE_AUTOUPDATE_PLUGINS": "1"
  }
}
  • FORCE_AUTOUPDATE_PLUGINS, DISABLE_AUTOUPDATER, DISABLE_UPDATES में 1, true, yes, on को case-insensitive तरीके से true माना जाता है, और 0 को false माना जाता है
  • CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC में मान नहीं, केवल उसकी मौजूदगी जांची जाती है, इसलिए =0 भी इसे सक्रिय कर देता है; इस स्थिति में auto updater और plugin updates दोनों रुक जाते हैं

update settings के अतिरिक्त pitfalls

  • privacy या external communication सीमित करने के उद्देश्य से CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC इस्तेमाल करने पर भी CLI और plugins साथ में स्थिर हो जाते हैं
  • docs में न दिया गया autoUpdates: false, native installation में autoUpdatesProtectedForNative सक्रिय होने पर अनदेखा किया जा सकता है
    • environment variables इस setting से पहले जांचे जाते हैं और बिना शर्त लागू होते हैं
  • 2.1.98 ने npm installation में उस समस्या को ठीक किया जिसमें DISABLE_AUTOUPDATER registry version check और symbolic link modification को पूरी तरह नहीं रोक पाता था
  • वह समस्या भी ठीक की गई जिसमें auto updater ~/.local/bin/claude के custom launcher या symbolic link को हर release में overwrite कर देता था; अब /doctor externally managed launcher दिखाता है
  • native और npm installations डिफ़ॉल्ट रूप से self-update करते हैं
    • Homebrew, WinGet, apt, dnf, apk डिफ़ॉल्ट self-update targets नहीं हैं
    • Homebrew और WinGet में CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE=1 के जरिए opt-in किया जा सकता है

deployment प्रक्रिया में बचा हुआ trust issue

  • जब कोई इंसान एक साथ कई agents की निगरानी करता है, तो 60 सेकंड के भीतर सभी सवालों की जांच करना मुश्किल होता है, और गलत चुनाव के बाद कितने tokens या कितना काम खर्च होगा, यह पहले से पता नहीं चलता
  • Anthropic ने इस फीचर के लेखन, समीक्षा, अनुमोदन, merge, documentation, और release comparison चरणों में किन लोगों और प्रक्रियाओं को शामिल किया, यह सार्वजनिक रिकॉर्ड से सत्यापित नहीं किया जा सकता
  • फीचर को लगभग दो दिनों में उचित opt-in रूप में ठीक कर दिया गया, लेकिन दैनिक release cycle और default auto updates के जरिए यह भी सामने आया कि अप्रत्याशित फीचर बिना changelog के deploy हो सकते हैं
  • executable analysis वास्तविक deployment सामग्री की पुष्टि करने का एक वैध workaround है, लेकिन यह सटीक और अच्छी तरह संपादित changelog का विकल्प नहीं बन सकता
  • दुर्भावना मानने का कोई आधार नहीं है; इस तरह की घटना दोबारा होती है या नहीं, यही इस deployment process में क्या सुधरा है, इसका आधार बनेगा

1 टिप्पणियां

 
GN⁺ 3 시간 전
Hacker News की रायें
  • मैं Thariq हूं, जिसने Claude Code टीम में AskUserQuestion बनाया। मॉडल ज्यादा शक्तिशाली होते गए तो हमें फीडबैक मिला कि लंबे समय तक चलने वाले काम शुरुआत के सवालों पर अटक जाते हैं; इसे हल करने के लिए हमने बदलाव किया, लेकिन यह अपेक्षित quality bar तक नहीं पहुंचा और यह Claude Code का सामान्य release तरीका भी नहीं था
    भले ही internal evaluation अच्छे रहे हों, इसे शुरू से opt-in के रूप में देना चाहिए था और changelog में दर्ज करना चाहिए था। AskUserQuestion को safety mechanism के रूप में design नहीं किया गया था, लेकिन मैं समझता हूं कि कुछ users के लिए यह वैसा बन गया था; लंबे-running tasks और user input के बीच balance बनाने के दूसरे तरीके खोजूंगा और इस deployment से सीख लूंगा

    • एकबारगी fix के बजाय granular permission settings चाहिए। हर बार approval लेने और खतरनाक पूरी तरह automatic execution के बीच, “पूरा होने तक चलाओ, लेकिन web access मत करो, codebase के बाहर files को मत छुओ, और कुछ भी delete मत करो” जैसी सीमाएं आसानी से set की जा सकनी चाहिए
    • असल में कई बार ऐसा हुआ कि मैं यह उम्मीद करके दूर चला गया कि यह घंटों तक अंत तक चलेगा, लेकिन Claude शुरुआत में पूछे गए सवाल पर रुका रह गया और implementation time बर्बाद हुआ। दूसरी ओर, AskUserQuestion plain text questions की तुलना में जवाब देने में ज्यादा आसान है, इतना useful कि मैं Claude से जानबूझकर इसे use करने को कहता हूं; गलती मानने और जिम्मेदारी लेने का रवैया भी अच्छा लगा
    • ApprovIQ product launches के लिए Claude Code पर बहुत निर्भर करता है, लेकिन Anthropic में ऐसा asymmetry महसूस होता है कि यह tool users जितना महत्वपूर्ण मानते हैं, उतना उनके लिए नहीं है। यह ऐसा product है जो बहुत से लोगों के careers को प्रभावित करता है, और अगर सिर्फ “यह मेरा change था” जैसी individual responsibility पर जोर दिया जाए तो भरोसा उल्टा कम होता है
      Anthropic जैसे scale की कंपनी को किसी व्यक्ति के बजाय उस PR और organizational process की विफलता स्वीकार कर उसे ठीक करते दिखना चाहिए जिसने ऐसी deployment की अनुमति दी
    • अरबों डॉलर की cutting-edge कंपनी में “यह मेरा change था”, “यह हमारे standards पर खरा नहीं उतरा” कहकर सार्वजनिक रूप से माफी मांगना मानवीय है, लेकिन strategic नहीं, और कंपनी कमजोर दिख सकती है। Apple या Google के peak days से तुलना करें तो technical excellence की image के लिए भी यह नुकसानदेह होता; public accountability कब, कहां और कैसे स्वीकार करनी है, यह भी महत्वपूर्ण है
      जिज्ञासा है कि क्या ऐसी transparency internet युग का नया trend है, या tech companies की culture बदल रही है
    • तेज development pace में balance बनाना मुश्किल है, इसलिए Chrome की तरह multiple release channels रखना बेहतर होगा। कम updates वाला stable version, ऐसी features पहले डालने के लिए beta, और जरूरत हो तो canary तक मिले, तो हर कोई अपने risk tolerance के हिसाब से चुन सकेगा
  • “सभी features changelog में जरूरी नहीं आते” वाला वाक्य और यह न बताना कि Anthropic अब changelog को complete history के रूप में क्यों maintain नहीं करता, खास तौर पर frustrating है। पता नहीं और क्या चुपचाप deploy किया जा रहा है(1)
    उस discussion में Boris Cherny ने सिर्फ GitHub issue title से “extreme danger” हटाया था(2). Anthropic ने option जोड़ा और default में disable किया, यह कम-से-कम राहत की बात है, लेकिन OpenAI 60-second timeout को disable न करने देने पर अड़ा हुआ है(3). हालांकि Codex execution tool ज्यादा open source है, इसलिए users खुद fork करके option जोड़ सकते हैं

    • हर बार नया model deploy होने पर पिछले model धीमे या dull लगने लगते हैं। यह resource allocation या quantization की वजह से हो सकता है, लेकिन पक्का कहना मुश्किल है; model-specific workflows सीखने पड़ते हैं और Opus 4.8 हो या Sonnet 5, समस्या आते ही फिर से adjust करना पड़ता है
    • लगता है अब coding हल हो गई है, इसलिए खुद decisions लेने की कोशिश करने वाले लोगों को dinosaur माना जा रहा है
  • token cost की subsidy खत्म होने पर compute cost तक charge करने वाली कंपनी के बनाए execution tool पर भरोसा नहीं करूंगा। अभी incentives aligned हैं, लेकिन जिस क्षण token increase का मतलब profit increase हो जाएगा, distorted incentives बहुत बड़े हो जाएंगे
    आखिरकार open source execution tools के जीतने की संभावना ज्यादा है, इसलिए companies के लिए भी बेहतर है कि वे खुद open source कर दें

    • अगर open source coding agent इस्तेमाल करना है तो $20/month OpenAI subscription भी ठीक alternative है। usage limits हैं, लेकिन कीमत खराब नहीं है
    • backend में chain of thought (CoT) settings बढ़ाने जैसे तरीके से implicit token increase deploy करना भी आसान होगा
  • हाल ही में terminal window पर focus करने के लिए mouse click किया, लेकिन Claude Code ने उसे option click समझ लिया और परेशानी हुई

    • copy-paste behavior भी अचानक बदल दिया गया, जिससे text copy करना बहुत असुविधाजनक हो गया। कोई भी ऐसा software नहीं चाहता जो daily update होकर core behavior लगातार बदलता रहे; vibe coding से उड़ेली गई features users पर थोपेंगे तो ऐसी backlash मिलेगी
    • terminal ऐसा environment नहीं है जहां clickable buttons की उम्मीद होती है; यह बहुत असुविधाजनक है और productivity घटाता है
    • अगर mouse-based app चाहिए होती तो GUI इस्तेमाल करता। text environment में जानबूझकर वही experience recreate करने की वजह समझना मुश्किल है
    • पहले opt-in पूछ तो लिया था, लेकिन गलती से enable कर दिया और बहुत असुविधा हुई। terminal को focus देने के लिए मैं हमेशा click करता हूं, और अब उससे actual actions भी execute हो जाते हैं
    • नया full-screen UI बहुत खराब है। पुराना scrolling तरीका भी लंबे use पर malfunction करता है, लेकिन restart के बाद वहीं से जारी रखा जा सकता है
  • आज खुद अनुभव किया। मैं agent का जवाब पढ़ रहा था कि एक question आया, लेकिन सवाल पूरा पढ़ने से पहले ही उसने अपने आप कुछ select कर दिया। समझ नहीं आता software engineering कहां चली गई

    • terminal window पर focus करने के लिए किया गया click question से बिल्कुल अलग जगह था, फिर भी approval के रूप में process हुआ, इसलिए TUI mode बंद करना पड़ा। मैंने auto mode कभी enable नहीं किया था, फिर भी वह active था और अनचाहे shell commands approve कर रहा था
      यहां तक देखा कि terraform apply में auto-approval flag जोड़ रहा था, जो बहुत खतरनाक है
  • समझ नहीं आता कि Claude Code computer पर काफी भारी virtual machine setup करता दिखता है, फिर भी default रूप से कुछ भी sandbox isolation में नहीं रखता। नए models computer को aggressively modify करते हैं; मैंने frontend UI code debugging के लिए कहा था, फिर भी वह user privileges से accessible Linux system files फिर से लिखने लगा
    sandbox में डालने के बाद पता चला कि मामूली वजहों से boundaries से बाहर निकलने की कोशिश कितनी बार होती है, और OpenCode तथा local LLM इस्तेमाल करने की वजह और मजबूत हो गई

    • Claude Code execution tool में कई अजीब design decisions हैं, इसलिए long term में OpenCode बेहतर होने की संभावना ज्यादा है
  • कई प्रतिक्रियाएँ इसे दुर्भावना के रूप में देखती हैं, लेकिन वास्तव में यह ज़्यादा ऐसा लगता है कि dev team ने वह feature बनाया जिसे वे खुद इस्तेमाल करना चाहते थे। Claude session चला कर छोड़ देना और लौटने पर पता चलना कि वह एक सवाल पर अटक कर कोई काम नहीं कर पाया, सच में बहुत झुंझलाने वाला है
    यह मानना भी ठीक नहीं कि Claude का सवाल पूछना ही आपदा रोकने वाला अकेला उपाय है। Claude के अंदरूनी judgment पर नहीं, बल्कि बाहर से दी गई permissions पर safety boundaries तय करनी चाहिए। दूसरी ओर, इस लेख में “Which cuts less far than it looks.” जैसा वाक्य है; शायद Claude ने इस पर सवाल पूछकर रुकना नहीं चुना होता

    • लेख का prose मैंने खुद लिखा, Claude ने सिर्फ research की, और यह बात साफ़ तौर पर बताई भी गई। Claude की research को bullet points के रूप में छोड़ा गया ताकि पाठकों को आगे explore करने का शुरुआती बिंदु मिले
      जिस वजह से मैं LLM से crossword puzzle हल नहीं करवाता, उसी वजह से आनंद खत्म कर देने वाला LLM-written prose publish नहीं करता
    • अगर dev team ने अपने ही इस्तेमाल के लिए feature बनाया था, तो यह उल्टा और भी बुरा है
    • किसी feature का उपयोगी होना और उसे disable करने का documented तरीका दिए बिना सभी के लिए default-on कर देना, बिल्कुल अलग बातें हैं। अगर यह documented opt-in feature होता तो अच्छा था, लेकिन वास्तविक rollout ऐसा नहीं था, और Claude Code team व process साफ़ तौर पर fail हुए
      मुझे नहीं लगता कि यह दुर्भावनापूर्ण था, लेकिन यह reckless और careless था; और ऐसा ही कुछ दोहराए जाने पर भी team सीखती दिखती नहीं। Claude Code कोई स्थिर और भरोसेमंद tool नहीं, बल्कि cutting-edge experiment के ज्यादा करीब है, और दूसरे execution tools की जगह इसे चुनने की यही कीमत है
    • लाखों users तक feature deploy करते समय Claude users से किस तरह के सवाल पूछता है, इसकी भी review नहीं की गई—यह समझ से परे है। Official plugin market में सबसे ज़्यादा इस्तेमाल होने वाला Superpowers पहले step से ही product requirements पर कई बार सवाल पूछता है, इसलिए उन्हें skip नहीं किया जाना चाहिए
      Claude द्वारा question की severity या expected response time दिखाने के लिए कोई parameter भी नहीं था, और timeout सिर्फ 60 seconds था। सवाल का जवाब ढूँढने के लिए second monitor पर docs देखकर लौटने से पहले ही उसे skip कर दिया गया; 60 seconds में तो सवाल का context पढ़ना भी मुश्किल है
      दुर्भावना न भी हो, तो भी idea को real deployment में बदलने की प्रक्रिया में judgment का बड़ा gap दिखता है
  • पहले VS Code के लिए Codex plugin में भी ऐसा ही feature आया था और जल्दी हटा दिया गया। अलग-अलग providers के LLM अक्सर मिलते-जुलते ideas और biases की ओर converge करते हैं; यह जानने की उत्सुकता है कि Claude के product manager या responsible person को भी LLM ने वही idea recommend किया होने की संभावना थी या नहीं

  • AskUserQuestion कोई permission-approval mechanism नहीं है, इसलिए default behavior के रूप में ठीक लगता है। अलग warning feature की जरूरत हो सकती है, लेकिन model इतना अच्छा हो जाए कि वह खुद चुनकर आगे बढ़े और फिर user सुधार कर दे—यह multiple agents manage करने में भी आसान रहेगा

  • Anthropic द्वारा Claude Code का behavior एक झटके में बदल सकना उन कारणों में से एक है जिनसे Pi coding agent बनाया गया। अगर user किसी product के ऊपर काफी समय लगाकर workflow बनाता है, तो consistency बहुत महत्वपूर्ण होती है