dsh-composer-plus 1.11.3 → 1.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.hi.md CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
  <p align="center"><img src="docs/images/hero.webp" width="820" alt="Composer Plus के साथ DeepSeek Harness: चल रहे प्रोजेक्ट के लिए साइडबार में स्पिनर दिखता है और बदलाव पैनल git डिफ़ दिखाता है"></p>
16
16
 
17
- यह एक अनौपचारिक कम्युनिटी प्लगइन है। यह सिर्फ़ अपडेट जांचने के लिए नेटवर्क कॉल करता है (GitHub रिलीज़ और npm रजिस्ट्री)। शुरू होते समय ये कॉल रोकने के लिए **अपने-आप अपडेट** बंद करें। **सुविधाओं के आइडिया** आपकी चैट के अपने मॉडल को सिर्फ़ तब कॉल करता है, जब आप **सुविधाएं सुझाएं** पर क्लिक करते हैं। **अगले संदेश का अनुमान** (डिफ़ॉल्ट रूप से चालू) हर पूरे हुए टर्न के बाद सेटिंग में चुने गए मॉडल (जब तक आप कोई दूसरा न चुनें, dsh का डिफ़ॉल्ट मॉडल) को बिना क्लिक के एक बार कॉल करता है। ये कॉल रोकने के लिए इसे **सेटिंग → Composer Plus** में बंद करें। **टाइप करते समय पूरा करें** (डिफ़ॉल्ट रूप से बंद) आपके इसे चालू करने के बाद, टाइप करते समय हर ठहराव पर इसके लिए चुने गए मॉडल (डिफ़ॉल्ट रूप से अनुमान वाला मॉडल) को कॉल करता है। **मोबाइल कनेक्ट** (डिफ़ॉल्ट रूप से बंद) आपके लोकल नेटवर्क या tailnet से iPhone के कनेक्शन सिर्फ़ तब स्वीकार करता है, जब आप इसे चालू करते हैं।
17
+ यह एक अनौपचारिक कम्युनिटी प्लगइन है। यह सिर्फ़ अपडेट जांचने के लिए नेटवर्क कॉल करता है (GitHub रिलीज़ और npm रजिस्ट्री)। शुरू होते समय ये कॉल रोकने के लिए **अपने-आप अपडेट** बंद करें। **सुविधाओं के आइडिया** आपकी चैट के अपने मॉडल को सिर्फ़ तब कॉल करता है, जब आप **सुविधाएं सुझाएं** पर क्लिक करते हैं। **अगले संदेश का अनुमान** (डिफ़ॉल्ट रूप से चालू) हर पूरे हुए टर्न के बाद सेटिंग में चुने गए मॉडल (जब तक आप कोई दूसरा न चुनें, dsh का डिफ़ॉल्ट मॉडल) को बिना क्लिक के एक बार कॉल करता है। ये कॉल रोकने के लिए इसे **सेटिंग → Composer Plus** में बंद करें। **टाइप करते समय पूरा करें** (डिफ़ॉल्ट रूप से बंद) आपके इसे चालू करने के बाद, टाइप करते समय हर ठहराव पर इसके लिए चुने गए मॉडल (डिफ़ॉल्ट रूप से अनुमान वाला मॉडल) को कॉल करता है। **प्रॉम्प्ट बेहतर करें** किसी मॉडल को सिर्फ़ तब कॉल करता है, जब आप उसकी जादुई छड़ी पर क्लिक करते हैं। **मोबाइल कनेक्ट** (डिफ़ॉल्ट रूप से बंद) आपके लोकल नेटवर्क या tailnet से iPhone के कनेक्शन सिर्फ़ तब स्वीकार करता है, जब आप इसे चालू करते हैं।
18
18
 
19
19
  ## इंस्टॉल करें
20
20
 
@@ -29,46 +29,51 @@ dsh plugin --profile web add dsh-composer-plus
29
29
 
30
30
  फिर dsh रीस्टार्ट करें। (CLI डेस्कटॉप प्रोफ़ाइल में इंस्टॉल नहीं कर सकता; उस प्रोफ़ाइल को ऐप खुद संभालता है।)
31
31
 
32
- > dsh का pnpm 24 घंटे से नए वर्शन छोड़ देता है। रिलीज़ के तुरंत बाद वर्शन भी लिखें: `dsh-composer-plus@1.11.3`।
32
+ > dsh का pnpm 24 घंटे से नए वर्शन छोड़ देता है। रिलीज़ के तुरंत बाद वर्शन भी लिखें: `dsh-composer-plus@1.12.0`।
33
33
 
34
34
  ## सुविधाएं
35
35
 
36
+ <!-- BEGIN GENERATED FEATURES: edit docs/features.json, then run npm run build:readme -->
37
+
36
38
  | सुविधा | उपयोग कैसे करें | स्क्रीनशॉट |
37
39
  |---|---|---|
38
- | **बदलाव पैनल** | दायां साइडबार → `+` → **बदलाव**। बदली हुई फ़ाइलें `+/-` गिनती के साथ देखने के लिए **कमिट नहीं किए गए**, **स्टेज नहीं किए गए**, **स्टेज किए गए** या **ब्रांच** चुनें। किसी फ़ाइल का डिफ़ देखने के लिए उस पर क्लिक करें। **पिछला टर्न** सबसे नए टर्न का dsh का अपना रिव्यू खोलता है। | <a href="assets/features/changesPanel.webp"><img src="assets/features/changesPanel.webp" width="160" alt="स्क्रीनशॉट: बदलाव पैनल"></a> |
39
- | **सुविधाओं के आइडिया** | दायां साइडबार → `+` → **सुविधाओं के आइडिया** → **सुविधाएं सुझाएं**। चैट का अपना मॉडल चैट के प्रोजेक्ट का छोटा सारांश पढ़ता है (टॉप-लेवल फ़ाइलें, README और मैनिफ़ेस्ट की शुरुआत, पिछले 15 कमिट)। फिर वह ज़्यादा से ज़्यादा 8 सुविधाएं सुझाता है। सुझाव कार्ड के ढेर के रूप में dsh की UI भाषा में दिखते हैं। उसी प्रोजेक्ट में नई चैट शुरू करने के लिए कार्ड को दाएं स्वाइप करें (या **✓** पर क्लिक करें, या `→` दबाएं; हर बार कार्ड अपनी तरफ़ उड़ जाता है)। नई चैट प्लान मोड में शुरू होती है और आइडिया उसका अनुरोध होता है। इसलिए जब तक आप प्लान मंज़ूर नहीं करते, कुछ नहीं बदलता। प्लान छोड़ने के लिए **▶ अभी बनाएं** पर क्लिक करें (या `↑` दबाएं; कार्ड ऊपर उड़ जाता है): नई चैट तुरंत शुरू होती है और आइडिया उसका सामान्य अनुरोध होता है। मॉडल बदलाव करता है और अपनी जांचें चलाता है (मंज़ूरियां हमेशा की तरह लागू होती हैं)। छोड़ने के लिए बाएं स्वाइप करें (या **✕**, या `←`)। **पहले जैसा करें** (या `Z`) छोड़ा गया कार्ड वापस लाता है। किसी अच्छे आइडिया को बाद के लिए रखने के लिए **↓** पर क्लिक करें (या `↓` दबाएं)। वह प्रोजेक्ट की **बाद में** सूची में चला जाता है। उसी प्रोजेक्ट फ़ोल्डर की हर चैट यह सूची दिखाती है (रीस्टार्ट के बाद भी)। **बाद में (N)** सूची खोलता है। **योजना बनाएं** उस आइडिया के लिए वैसी ही प्लान मोड वाली चैट शुरू करता है और **अभी बनाएं** बिना प्लान वाली चैट; दोनों आइडिया को सूची से हटा देते हैं। **सबकी एक योजना बनाएं (N)** सूची के सभी आइडिया के लिए एक ही प्लान मोड वाली चैट शुरू करता है, इसलिए साझा हिस्सों की योजना एक ही बार बनती है। **सूची से हटाएं** आइडिया को मिटा देता है। **चेकलिस्ट के रूप में कॉपी करें** पूरी सूची को Markdown चेकलिस्ट (`- [ ] Title — Summary`, हर आइडिया की एक लाइन) के रूप में क्लिपबोर्ड पर कॉपी करता है, ताकि आप उसे किसी इश्यू ट्रैकर या TODO फ़ाइल में इस्तेमाल कर सकें; यह कोई नेटवर्क कॉल नहीं करता। **और आइडिया** नए कार्ड जोड़ता है। सिर्फ़ एक क्षेत्र के आइडिया पाने के लिए **सुविधाएं सुझाएं** के पास वाले फ़ील्ड में छोटा-सा **फ़ोकस विषय** लिखें (ज़्यादा से ज़्यादा 80 अक्षर; `Enter` से भी सुझाव मिलते हैं), या उसके नीचे के तय विषयों में से किसी एक पर क्लिक करें: **प्रदर्शन**, **सुलभता**, **टेस्ट**, **सुरक्षा**, **उपयोगिता** या **दस्तावेज़ीकरण** (उसे हटाने के लिए फिर से क्लिक करें)। तब मॉडल सिर्फ़ उसी विषय से जुड़ी सुविधाएं सुझाता है; खाली फ़ील्ड का मतलब है कोई भी सुविधा। एक प्रोजेक्ट में कोई आइडिया दो बार नहीं सुझाया जाता: हर सुझाया गया आइडिया (छोड़ा गया, रखा गया या शुरू किया गया) प्रोजेक्ट के **इतिहास** में जाता है, मॉडल से कहा जाता है कि वह इन्हें फिर न सुझाए, और दोहराए गए शीर्षक वाला आइडिया हटा दिया जाता है। **इतिहास** इन्हें **शुरू किया गया** या **सुझाया गया** के साथ दिखाता है; **भूल जाएं** (या **सब भूल जाएं**) से कोई आइडिया फिर आ सकता है; जो आइडिया अभी भी **बाद में** सूची में है, वह तब तक सुझावों में नहीं आता जब तक आप उसे वहां से हटा नहीं देते। मॉडल सिर्फ़ आपके क्लिक करने पर चलता है। | <a href="assets/features/featureIdeas.webp"><img src="assets/features/featureIdeas.webp" width="160" alt="स्क्रीनशॉट: सुविधाओं के आइडिया"></a> |
40
- | **कंटेंट में खोज** | dsh के साइडबार की अपनी खोज (**वर्कस्पेस** के पास का आवर्धक लेंस; डेस्कटॉप ऐप में `Cmd+K`, ब्राउज़र में `Cmd+Alt+K`) अब चैट को सिर्फ़ शीर्षक से नहीं, बल्कि आपके संदेशों और जवाबों के शब्दों से भी ढूंढती है। मिलता-जुलता टेक्स्ट चैट के नीचे दिखता है। dsh में यह खोज पहले से है, लेकिन यह बंद रहती है। यह सुविधा इसे चालू करती है और आपके कंप्यूटर पर एक खोज इंडेक्स फ़ाइल इस्तेमाल करती है। dsh शुरू होने के बाद पहली खोज पर इंडेक्स बनता है (250 चैट के लिए लगभग 15 सेकंड, सीमाएं देखें)। अगली बार शुरू करने पर यही इंडेक्स फिर से काम आता है। यह डिफ़ॉल्ट रूप से चालू है। बदलाव dsh रीस्टार्ट करने के बाद लागू होता है। | <a href="assets/features/contentSearch.webp"><img src="assets/features/contentSearch.webp" width="160" alt="स्क्रीनशॉट: कंटेंट में खोज"></a> |
41
- | **टर्न रोलबैक** | अपने किसी संदेश पर पॉइंटर ले जाएं और **↶** पर क्लिक करें (कॉपी करें के पास)। **सिर्फ़ चैट** उस संदेश और उसके बाद की हर चीज़ (जवाब, टूल कॉल) को चैट और मॉडल के कॉन्टेक्स्ट से हटा देता है। संदेश कंपोज़र में वापस आ जाता है: उसे बदलें और फिर से भेजें। **चैट और फ़ाइलें** पहले उन प्रोजेक्ट फ़ाइलों की सूची दिखाता है, जो उस संदेश के बाद बदलीं। फिर वह उन्हें भी पहले जैसी स्थिति में वापस लाता है। इसमें कमांड (`bash`) से हुए बदलाव भी शामिल हैं, सिर्फ़ dsh के एडिट टूल से हुए बदलाव नहीं। चल रहा टर्न पहले रुकता है। चैट लॉग कभी दोबारा नहीं लिखा जाता: एक छिपा हुआ मार्कर हटाए गए हिस्से को छिपा देता है, ठीक वैसे ही जैसे dsh का अपना `/compact` पुराने संदेश छिपाता है। अगर [dsh-rewind-plugin](https://www.npmjs.com/package/dsh-rewind-plugin) इंस्टॉल है, तो यह काम वही करता है और Composer Plus दूसरा बटन नहीं दिखाता। | <a href="assets/features/turnRollback.webp"><img src="assets/features/turnRollback.webp" width="160" alt="स्क्रीनशॉट: टर्न रोलबैक"></a> |
42
- | **चैट हटाएं** | साइडबार → चैट का **…** मेन्यू (या राइट-क्लिक) → **हटाएं…** → **हटाएं**। dsh खुद सिर्फ़ आर्काइव कर सकता है। चैट रुक जाती है (उसका टर्न, जॉब, सबएजेंट और शेड्यूल भी, जैसे dsh के अपने आर्काइव में होता है)। उसका सेव किया गया इतिहास, उसकी सबएजेंट चैट के साथ, macOS के ट्रैश में चला जाता है (दूसरे सिस्टम पर: `$DSH_HOME/trash`)। चैट वापस लाने के लिए फ़ोल्डर को उसकी जगह पर वापस रखें और dsh रीस्टार्ट करें: चैट साइडबार के **सिर्फ़ आर्काइव किए गए** व्यू में दिखेगी। | <a href="assets/features/deleteChat.webp"><img src="assets/features/deleteChat.webp" width="160" alt="स्क्रीनशॉट: चैट हटाएं"></a> |
43
- | **कंपोज़र में प्रोजेक्ट का नाम** | कंपोज़र के नीचे की पंक्ति (टर्न, टोकन, कैश हिट, कॉन्टेक्स्ट) चैट के प्रोजेक्ट के नाम से शुरू होती है। इससे आपको हमेशा पता रहता है कि चैट किस प्रोजेक्ट में काम करती है। यह dsh का अपना प्रोजेक्ट शीर्षक होता है। अगर प्रोजेक्ट का कोई शीर्षक नहीं है, तो फ़ोल्डर का नाम दिखता है। फ़ोल्डर का पूरा पाथ देखने के लिए उस पर पॉइंटर ले जाएं। साइडबार में चैट ढूंढने के लिए उस पर क्लिक करें, यह सूची और प्रोजेक्ट दोनों व्यू में काम करता है: साइडबार और प्रोजेक्ट खुल जाते हैं (बंद प्रोजेक्ट और उसका **और दिखाएं** भी), सूची चैट तक स्क्रॉल होती है और चैट 5 सेकंड तक टिमटिमाती है। | <a href="assets/features/projectName.webp"><img src="assets/features/projectName.webp" width="160" alt="स्क्रीनशॉट: कंपोज़र में प्रोजेक्ट का नाम"></a> |
44
- | **इनपुट इतिहास** | खाली कंपोज़र में `↑` / `↓` दबाकर भेजे गए संदेशों में आगे-पीछे जाएं, जैसे टर्मिनल में। | <a href="assets/features/inputHistory.webp"><img src="assets/features/inputHistory.webp" width="160" alt="स्क्रीनशॉट: इनपुट इतिहास"></a> |
45
- | **प्लान मोड शॉर्टकट** | `Shift+Tab` ड्राफ़्ट की शुरुआत में `/plan ` जोड़ता है (हटाने के लिए फिर से दबाएं)। अगर चैट पहले से प्लान मोड में है, तो `Shift+Tab` उससे बाहर निकालता है। | <a href="assets/features/planToggle.webp"><img src="assets/features/planToggle.webp" width="160" alt="स्क्रीनशॉट: प्लान मोड शॉर्टकट"></a> |
46
- | **कंपोज़र में फ़ोकस बनाए रखें** | `/` कमांड या स्किल भेजने के बाद कर्सर कंपोज़र में ही रहता है, और आप तुरंत फिर से टाइप कर सकते हैं। यह उन कीबोर्ड मैक्रो के साथ भी काम करता है, जो कमांड टाइप करके `Enter` दबाते हैं। कमांड प्रोसेस करते समय dsh कंपोज़र को सिर्फ़ पढ़ने लायक (read-only) बना देता है, और तब ब्राउज़र फ़ोकस हटा देता है। यह सुविधा फ़ोकस वापस लाती है, बशर्ते फ़ोकस किसी मेन्यू, डायलॉग या दूसरे फ़ील्ड में न हो। | <a href="assets/features/keepFocus.webp"><img src="assets/features/keepFocus.webp" width="160" alt="स्क्रीनशॉट: कंपोज़र में फ़ोकस बनाए रखें"></a> |
47
- | **एक क्लिक में जारी रखें** | रुके हुए, विफल या बीच में कटे टर्न के बाद खाली कंपोज़र में **▶** दिखता है। एक क्लिक मौजूदा बातचीत से काम फिर से शुरू करता है। इनपुट में कुछ नहीं लिखा जाता और चैट में कोई दिखने वाला संदेश नहीं जुड़ता (मॉडल को “जहां रुका था, वहीं से जारी रखें” वाला एक छोटा छिपा नोट मिलता है, क्योंकि Claude जैसे कुछ प्रोवाइडर ऐसा अनुरोध अस्वीकार करते हैं, जो असिस्टेंट के जवाब पर खत्म होता है)। कतार में रखे संदेश वहीं रहते हैं: ▶ सिर्फ़ रुके हुए काम को जारी रखता है, उसके बाद कतार चलती है। पूरे हुए टर्न के बाद सामान्य भेजें बटन ही रहता है। | <a href="assets/features/continueButton.webp"><img src="assets/features/continueButton.webp" width="160" alt="स्क्रीनशॉट: एक क्लिक में जारी रखें"></a> |
48
- | **रीस्टार्ट के बाद जारी रखें** | डिफ़ॉल्ट रूप से बंद: इसे **सेटिंग → Composer Plus** में चालू करें। अगर चैट के काम करते समय आप dsh बंद करते हैं (या वह बंद हो जाता है), तो dsh दोबारा खोलने पर वह चैट अपने आप जारी रहती है। उसे वही छिपा नोट मिलता है, जो एक क्लिक में जारी रखें में मिलता है। अगर कोई लक्ष्य राउंड (`/goal`) चल रहा था, तो लक्ष्य अपने अगले राउंड से जारी रहता है (dsh हर बार शुरू होने पर लक्ष्यों को तब तक रोक देता है, जब तक आप उन्हें फिर से शुरू नहीं करते)। जिन चैट को आपने रोका, जो पूरी हो गईं या विफल हुईं, वे जारी नहीं रहतीं। dsh में इसकी अपनी कोई सेटिंग नहीं है: वह ऐसे टर्न को सिर्फ़ बीच में रुका हुआ मार्क करता है। | <a href="assets/features/resumeAfterRestart.webp"><img src="assets/features/resumeAfterRestart.webp" width="160" alt="स्क्रीनशॉट: रीस्टार्ट के बाद जारी रखें"></a> |
49
- | **कतार में खींचकर छोड़ें** | कतार वाले संदेशों पर एक हैंडल (⠿) दिखता है। क्रम बदलने के लिए उसे खींचें, या हैंडल पर फ़ोकस करके `↑` / `↓` दबाएं। `Esc` रद्द करता है। | <a href="assets/features/queueReorder.webp"><img src="assets/features/queueReorder.webp" width="160" alt="स्क्रीनशॉट: कतार में खींचकर छोड़ें"></a> |
50
- | **सेशन लिंक कॉपी करें** | साइडबार में किसी चैट पर राइट-क्लिक करें → **सेशन लिंक कॉपी करें**। उस चैट को सिर्फ़ पढ़ने लायक कॉन्टेक्स्ट के रूप में जोड़ने के लिए `dsh-session:…` लिंक किसी दूसरी चैट में पेस्ट करें। dsh 0.2.1 में अपना **सेशन ID कॉपी करें** है, जो सिर्फ़ सादा ID कॉपी करता है; यह आइटम ठीक उसके बाद आता है। | <a href="assets/features/copyDeeplink.webp"><img src="assets/features/copyDeeplink.webp" width="160" alt="स्क्रीनशॉट: सेशन लिंक कॉपी करें"></a> |
51
- | **चैट को Markdown के रूप में एक्सपोर्ट करें** | साइडबार में किसी चैट पर राइट-क्लिक करें (या उसका **…** मेन्यू खोलें) → **Markdown के रूप में एक्सपोर्ट करें…**। एक डायलॉग दिखाता है कि चैट में कितने संदेश हैं। **क्लिपबोर्ड पर कॉपी करें** चैट को Markdown के रूप में कॉपी करता है, और **.md फ़ाइल सेव करें** उसे ब्राउज़र के डाउनलोड से `<chat title>.md` के रूप में सेव करता है (dsh डेस्कटॉप: आपके सिस्टम की सेटिंग के हिसाब से डाउनलोड फ़ोल्डर में या सेव डायलॉग से)। फ़ाइल में चैट का शीर्षक, प्रोजेक्ट का नाम और तारीख होती है, फिर हर संदेश के लिए एक `## आप` या `## असिस्टेंट` सेक्शन होता है। कोड ब्लॉक जैसे हैं वैसे ही रहते हैं; जो कोड ब्लॉक किसी संदेश में खुला रह गया हो, उसे बंद कर दिया जाता है। | <a href="assets/features/exportMarkdown.webp"><img src="assets/features/exportMarkdown.webp" width="160" alt="स्क्रीनशॉट: चैट को Markdown के रूप में एक्सपोर्ट करें"></a> |
52
- | **प्रोजेक्ट का पाथ कॉपी करें** | साइडबार में किसी प्रोजेक्ट पर राइट-क्लिक करें → **पाथ कॉपी करें** उसके फ़ोल्डर का पूरा पाथ कॉपी करता है। | <a href="assets/features/copyProjectPath.webp"><img src="assets/features/copyProjectPath.webp" width="160" alt="स्क्रीनशॉट: प्रोजेक्ट का पाथ कॉपी करें"></a> |
53
- | **नई चैट में प्रोजेक्ट खोज** | नई चैट → कंपोज़र के ऊपर वाला प्रोजेक्ट बटन। प्रोजेक्ट A–Z क्रम में दिखते हैं, और सबसे ऊपर **प्रोजेक्ट खोजें** बॉक्स होता है। नाम का कोई हिस्सा लिखें (बड़े-छोटे अक्षरों और एक्सेंट से फ़र्क नहीं पड़ता) और पहला मिलान चुनने के लिए `Enter` दबाएं। कुछ भी न मिले, तो **कोई मिलता-जुलता प्रोजेक्ट नहीं** दिखता है। साइडबार में dsh का सेव किया गया प्रोजेक्ट क्रम नहीं बदलता। | <a href="assets/features/projectPicker.webp"><img src="assets/features/projectPicker.webp" width="160" alt="स्क्रीनशॉट: नई चैट में प्रोजेक्ट खोज"></a> |
54
- | **अगले संदेश का अनुमान** | डिफ़ॉल्ट रूप से चालू: आप इसे **सेटिंग → Composer Plus** में बंद कर सकते हैं। जब एजेंट कोई टर्न पूरा करता है (रुका हुआ या विफल टर्न नहीं), तो खाली कंपोज़र ग्रे टेक्स्ट में आपके अगले संदेश का अनुमान दिखाता है, साथ में **स्वीकार करने के लिए Tab** संकेत होता है। `Tab` टेक्स्ट को कंपोज़र में डालता है, पर भेजता नहीं। `Esc` उस टर्न के लिए अनुमान छिपा देता है। टाइप करना शुरू करने पर भी यह छिप जाता है, और नया टर्न इसे बदल देता है। स्विच के नीचे का **मॉडल** मेन्यू dsh के अपने मॉडल दिखाता है (वही सूची, जो dsh के मॉडल मेन्यू में है)। डिफ़ॉल्ट रूप से **dsh डिफ़ॉल्ट** चुना होता है, जो dsh के डिफ़ॉल्ट मॉडल के अनुसार चलता है। हर पूरे हुए टर्न पर एक छोटी मॉडल कॉल होती है। Tether में अनुमान खाली कंपोज़र के ऊपर दिखता है: उसे फ़ील्ड में डालने के लिए उस पर टैप करें। | <a href="assets/features/nextPrediction.webp"><img src="assets/features/nextPrediction.webp" width="160" alt="स्क्रीनशॉट: अगले संदेश का अनुमान"></a> |
55
- | **टाइप करते समय पूरा करें** | डिफ़ॉल्ट रूप से बंद: आप इसे **सेटिंग → Composer Plus** में चालू कर सकते हैं। जब आप टाइप करते हैं, कर्सर के ठीक बाद ग्रे टेक्स्ट दिखाता है कि आपका संदेश आगे कैसे बढ़ सकता है। `Tab` इसे संदेश में जोड़ता है, पर भेजता नहीं। `Esc` इसे छिपा देता है। यह केवल आपके अपने अगले शब्द सुझाता है: आपको कभी जवाब नहीं देता, और कोई गढ़ा हुआ त्रुटि संदेश या नाम नहीं जोड़ता। अगर संदेश पूरा लगता है या मॉडल को भरोसा नहीं है, तो कुछ नहीं दिखता। ग्रे टेक्स्ट के अगले अक्षर टाइप करने पर यह बना रहता है, और नई मॉडल कॉल नहीं होती। इसके स्विच के नीचे इसका अपना **मॉडल** मेन्यू है। इसकी पहली एंट्री, **अगले संदेश के अनुमान जैसा**, **अगले संदेश का अनुमान** वाला मॉडल इस्तेमाल करती है (डिफ़ॉल्ट); हर सुविधा के लिए अलग मॉडल इस्तेमाल करने के लिए कोई दूसरा मॉडल चुनें, जैसे पूरा करने के लिए कोई तेज़ मॉडल। टाइप करते समय हर ठहराव पर यह एक मॉडल कॉल करता है, इसलिए यह अनुमान से कहीं ज़्यादा टोकन खर्च करता है: कोई तेज़ और कम लागत वाला मॉडल चुनें। यह स्लैश कमांड पर, फ़ाइल चिप वाले संदेश पर, या कर्सर के आख़िर में न होने पर नहीं चलता। Tether में टाइप करते समय बाकी टेक्स्ट फ़ील्ड के ऊपर दिखता है: उसे जोड़ने के लिए उस पर टैप करें। | <a href="assets/features/typingCompletion.webp"><img src="assets/features/typingCompletion.webp" width="160" alt="स्क्रीनशॉट: टाइप करते समय पूरा करें"></a> |
56
- | **इस चैट के लिए अनुमति दें** | जब ऑटो रिव्यू आपसे पूछता है, तो मंज़ूरी कार्ड पर **इस चैट के लिए अनुमति दें** दिखता है। इसके बाद उसी चैट में वही टूल किसी भी आर्ग्युमेंट के साथ बिना पूछे चलता है। हेडर की एक चिप अनुमतियों की सूची दिखाती है और उन्हें रद्द करती है। रीस्टार्ट के बाद भी अनुमतियां बनी रहती हैं। | <a href="assets/features/allowForChat.webp"><img src="assets/features/allowForChat.webp" width="160" alt="स्क्रीनशॉट: इस चैट के लिए अनुमति दें"></a> |
57
- | **प्रोजेक्ट की स्थिति** | साइडबार में प्रोजेक्ट की पंक्ति वही स्पिनर / इंतज़ार / पूरा होने का संकेत दिखाती है, जो उसकी चैट दिखाती हैं। इसलिए बंद (collapsed) प्रोजेक्ट भी बताता है कि अंदर कोई चैट काम कर रही है या उसे आपकी ज़रूरत है। सबसे पहले आपका इंतज़ार कर रही चैट दिखती है, फिर पूरी हुई ऐसी चैट जिसे आपने अभी तक नहीं खोला (हरा बिंदु, तब भी जब कोई दूसरी चैट अभी चल रही हो), फिर स्पिनर। विवरण देखने के लिए उस पर पॉइंटर ले जाएं। | <a href="assets/features/projectStatus.webp"><img src="assets/features/projectStatus.webp" width="160" alt="स्क्रीनशॉट: प्रोजेक्ट की स्थिति"></a> |
58
- | **सक्रिय प्रोजेक्ट पहले** | जब कोई चैट चलने लगती है या उसे आपकी ज़रूरत होती है, तो उसका प्रोजेक्ट dsh के अपने पंक्ति एनिमेशन के साथ साइडबार में सबसे ऊपर चला जाता है (वैसे ही जैसे आप उसे खींचकर वहां ले जाते)। पूरे हो चुके प्रोजेक्ट अपनी जगह पर रहते हैं; उन्हें हमेशा की तरह कहीं भी खींचें। बदला गया क्रम dsh के प्रोजेक्ट क्रम में सेव होता है, इसलिए इसे बंद करने पर मौजूदा क्रम बना रहता है। | <a href="assets/features/projectStatus.webp"><img src="assets/features/projectStatus.webp" width="160" alt="स्क्रीनशॉट: सक्रिय प्रोजेक्ट पहले"></a> |
59
- | **हाल के प्रोजेक्ट का फ़िल्टर** | साइडबार → व्यू के विकल्प (स्लाइडर आइकन) → **पिछले 2 घंटों में सक्रिय**। इसके चुने रहने पर साइडबार सिर्फ़ वे प्रोजेक्ट दिखाता है, जिनमें पिछले 2 घंटों में कोई चैट सक्रिय रही हो। इसमें शामिल हैं: इस समय में अपडेट हुई चैट, चल रही या इंतज़ार कर रही चैट, खुली हुई चैट, या पूरी हुई ऐसी चैट जिसे आपने अभी तक नहीं खोला (dsh का हरा “पूरा हुआ” बिंदु), 2 घंटे बाद भी। जिन प्रोजेक्ट में ऐसी कोई चैट नहीं है, वे छिप जाते हैं, नए और खाली प्रोजेक्ट भी। सभी प्रोजेक्ट दिखाने के लिए इसे फिर से चुनें। यह चुनाव इसी डिवाइस पर याद रहता है। | <a href="assets/features/recentProjects.webp"><img src="assets/features/recentProjects.webp" width="160" alt="स्क्रीनशॉट: हाल के प्रोजेक्ट का फ़िल्टर"></a> |
60
- | **सभी प्रोजेक्ट छोटे करें** | जब साइडबार में कोई प्रोजेक्ट खुला होता है, तो व्यू के विकल्पों (स्लाइडर आइकन) के पास एक बटन दिखता है। सभी खुले प्रोजेक्ट एक साथ बंद करने के लिए उस पर क्लिक करें, जैसे 5 में से 3 खुले प्रोजेक्ट। जब कोई प्रोजेक्ट खुला नहीं होता, तो बटन फिर से छिप जाता है। | <a href="assets/features/collapseProjects.webp"><img src="assets/features/collapseProjects.webp" width="160" alt="स्क्रीनशॉट: सभी प्रोजेक्ट छोटे करें"></a> |
61
- | **स्थिति के अनुसार क्रम** | साइडबार → व्यू के विकल्प → **इसके अनुसार क्रम दें** → **स्थिति के अनुसार** (**एक ही सूची में** के साथ)। सबसे पहले पूरी हुई चैट आती हैं (dsh का “पूरा हुआ” बिंदु, जो गड़बड़ी के साथ खत्म हुए टर्न को भी मिलता है)। फिर चल रही या इंतज़ार कर रही चैट, फिर सक्रिय ऑटोमेशन (शेड्यूल) वाली चैट, और आखिर में बाकी चैट dsh के क्रम में आती हैं। पूरी हुई चैट खोलने पर वह नीचे चली जाती है। सिर्फ़ व्यू बदलता है: वापस जाने के लिए **मैन्युअल** या **पिछला अपडेट** चुनें। | <a href="assets/features/statusOrder.webp"><img src="assets/features/statusOrder.webp" width="160" alt="स्क्रीनशॉट: स्थिति के अनुसार क्रम"></a> |
62
- | **बैकग्राउंड सूचनाएं** | जब dsh बैकग्राउंड में होता है, तो टर्न पूरा होने पर आपको सूचना मिलती है (जवाब की पहली पंक्ति)। जब कोई चैट सच में आपका इंतज़ार करती है, तब भी सूचना मिलती है: मंज़ूरी (टूल का नाम), जवाब (सवाल) या प्लान रिव्यू। अनुरोध 1.5 सेकंड बाद भी खुला होना चाहिए। इसलिए अपने-आप मंज़ूर हुए अनुरोधों (ऑटो रिव्यू अनुमतियां, दूसरे प्लगइन) पर कोई सूचना नहीं आती। अनुरोध का जवाब मिलते ही उसकी सूचना हटा ली जाती है। Dock/टास्कबार का बैज इंतज़ार कर रही चैट की गिनती दिखाता है। सूचना पर क्लिक करने से वह चैट खुलती है। | <a href="assets/features/notifications.webp"><img src="assets/features/notifications.webp" width="160" alt="स्क्रीनशॉट: बैकग्राउंड सूचनाएं"></a> |
63
- | **11 अतिरिक्त UI भाषाएं** | सेटिंग → Composer Plus → **ऐप्लिकेशन की भाषा** पूरे dsh इंटरफ़ेस को Türkçe, Español, Português (Brasil), Français, Deutsch, Русский, 日本語, 한국어, Bahasa Indonesia, Tiếng Việt या हिन्दी में बदल देता है (नीचे देखें)। | <a href="assets/features/language.webp"><img src="assets/features/language.webp" width="160" alt="स्क्रीनशॉट: 11 अतिरिक्त UI भाषाएं"></a> |
64
- | **मोबाइल कनेक्ट (iPhone)** | [Tether](tether/) ऐप से अपने iPhone पर dsh का उपयोग करें, उसी Wi-Fi पर या [Tailscale](https://tailscale.com) के ज़रिए। इसे **सेटिंग → Composer Plus** में चालू करें (यह डिफ़ॉल्ट रूप से बंद रहता है, क्योंकि यह इस Mac पर एक नेटवर्क पोर्ट खोलता है)। फिर साइडबार में नीचे बाईं ओर **मोबाइल कनेक्ट** पर क्लिक करें: iPhone के कैमरा से (**Open in Tether** पर टैप करें) या Tether में **Scan code** से QR कोड स्कैन करें, **Connect** पर टैप करें और **Approve** पर क्लिक करें। पहले Tether इंस्टॉल करें: इसके बिना कैमरा यह कोड नहीं खोल सकता। फ़ोन आपकी चैट दिखाता है, संदेश भेजता है, मंज़ूरियों और सवालों के जवाब देता है, और मॉडल व एजेंट बदलता है। आप जितने चाहें उतने Mac पेयर कर सकते हैं: ऐप में ऊपर बाईं ओर Mac का नाम उनके बीच बदलता है। | <a href="assets/features/mobileConnect.webp"><img src="assets/features/mobileConnect.webp" width="160" alt="स्क्रीनशॉट: मोबाइल कनेक्ट"></a> |
65
- | **अपने-आप अपडेट** | dsh शुरू होने पर प्लगइन [GitHub की नवीनतम रिलीज़](https://github.com/furkancak1r/dsh-composer-plus/releases/latest) जांचता है। अगर वह नई है और npm पर पहले से है, तो प्लगइन वही वर्शन dsh के अपने प्लगइन मैनेजर से इंस्टॉल करता है (सेटिंग → प्लगइन वाला ही रास्ता) और आपको सूचित करता है। इसे लोड करने के लिए **dsh रीस्टार्ट करें**। **सेटिंग → Composer Plus → Composer Plus अपडेट** वर्शन दिखाता है और उसमें **अपडेट जांचें** / **अभी अपडेट करें** बटन हैं। | <a href="assets/features/autoUpdate.webp"><img src="assets/features/autoUpdate.webp" width="160" alt="स्क्रीनशॉट: अपने-आप अपडेट"></a> |
40
+ | **बदलाव पैनल** | <a id="feature-changespanel"></a>दायां साइडबार → `+` → **बदलाव**। बदली हुई फ़ाइलें `+/-` गिनती के साथ देखने के लिए **कमिट नहीं किए गए**, **स्टेज नहीं किए गए**, **स्टेज किए गए** या **ब्रांच** चुनें। किसी फ़ाइल का डिफ़ देखने के लिए उस पर क्लिक करें। **पिछला टर्न** सबसे नए टर्न का dsh का अपना रिव्यू खोलता है। | <a href="assets/features/changesPanel.webp"><img src="assets/features/changesPanel.webp" width="160" alt="स्क्रीनशॉट: बदलाव पैनल"></a> |
41
+ | **सुविधाओं के आइडिया** | <a id="feature-featureideas"></a>दायां साइडबार → `+` → **सुविधाओं के आइडिया** → **सुविधाएं सुझाएं**। चैट का अपना मॉडल चैट के प्रोजेक्ट का छोटा सारांश पढ़ता है (टॉप-लेवल फ़ाइलें, README और मैनिफ़ेस्ट की शुरुआत, पिछले 15 कमिट)। फिर वह ज़्यादा से ज़्यादा 8 सुविधाएं सुझाता है। सुझाव कार्ड के ढेर के रूप में dsh की UI भाषा में दिखते हैं। उसी प्रोजेक्ट में नई चैट शुरू करने के लिए कार्ड को दाएं स्वाइप करें (या **✓** पर क्लिक करें, या `→` दबाएं; हर बार कार्ड अपनी तरफ़ उड़ जाता है)। नई चैट प्लान मोड में शुरू होती है और आइडिया उसका अनुरोध होता है। इसलिए जब तक आप प्लान मंज़ूर नहीं करते, कुछ नहीं बदलता। प्लान छोड़ने के लिए **▶ अभी बनाएं** पर क्लिक करें (या `↑` दबाएं; कार्ड ऊपर उड़ जाता है): नई चैट तुरंत शुरू होती है और आइडिया उसका सामान्य अनुरोध होता है। मॉडल बदलाव करता है और अपनी जांचें चलाता है (मंज़ूरियां हमेशा की तरह लागू होती हैं)। छोड़ने के लिए बाएं स्वाइप करें (या **✕**, या `←`)। **पहले जैसा करें** (या `Z`) छोड़ा गया कार्ड वापस लाता है। किसी अच्छे आइडिया को बाद के लिए रखने के लिए **↓** पर क्लिक करें (या `↓` दबाएं)। वह प्रोजेक्ट की **बाद में** सूची में चला जाता है। उसी प्रोजेक्ट फ़ोल्डर की हर चैट यह सूची दिखाती है (रीस्टार्ट के बाद भी)। **बाद में (N)** सूची खोलता है। **योजना बनाएं** उस आइडिया के लिए वैसी ही प्लान मोड वाली चैट शुरू करता है और **अभी बनाएं** बिना प्लान वाली चैट; दोनों आइडिया को सूची से हटा देते हैं। **सबकी एक योजना बनाएं (N)** सूची के सभी आइडिया के लिए एक ही प्लान मोड वाली चैट शुरू करता है, इसलिए साझा हिस्सों की योजना एक ही बार बनती है। **सूची से हटाएं** आइडिया को मिटा देता है। **चेकलिस्ट के रूप में कॉपी करें** पूरी सूची को Markdown चेकलिस्ट (`- [ ] Title — Summary`, हर आइडिया की एक लाइन) के रूप में क्लिपबोर्ड पर कॉपी करता है, ताकि आप उसे किसी इश्यू ट्रैकर या TODO फ़ाइल में इस्तेमाल कर सकें; यह कोई नेटवर्क कॉल नहीं करता। **और आइडिया** नए कार्ड जोड़ता है। सिर्फ़ एक क्षेत्र के आइडिया पाने के लिए **सुविधाएं सुझाएं** के पास वाले फ़ील्ड में छोटा-सा **फ़ोकस विषय** लिखें (ज़्यादा से ज़्यादा 80 अक्षर; `Enter` से भी सुझाव मिलते हैं), या उसके नीचे के तय विषयों में से किसी एक पर क्लिक करें: **प्रदर्शन**, **सुलभता**, **टेस्ट**, **सुरक्षा**, **उपयोगिता** या **दस्तावेज़ीकरण** (उसे हटाने के लिए फिर से क्लिक करें)। तब मॉडल सिर्फ़ उसी विषय से जुड़ी सुविधाएं सुझाता है; खाली फ़ील्ड का मतलब है कोई भी सुविधा। एक प्रोजेक्ट में कोई आइडिया दो बार नहीं सुझाया जाता: हर सुझाया गया आइडिया (छोड़ा गया, रखा गया या शुरू किया गया) प्रोजेक्ट के **इतिहास** में जाता है, मॉडल से कहा जाता है कि वह इन्हें फिर न सुझाए, और दोहराए गए शीर्षक वाला आइडिया हटा दिया जाता है। **इतिहास** इन्हें **शुरू किया गया** या **सुझाया गया** के साथ दिखाता है; **भूल जाएं** (या **सब भूल जाएं**) से कोई आइडिया फिर आ सकता है; जो आइडिया अभी भी **बाद में** सूची में है, वह तब तक सुझावों में नहीं आता जब तक आप उसे वहां से हटा नहीं देते। मॉडल सिर्फ़ आपके क्लिक करने पर चलता है। | <a href="assets/features/featureIdeas.webp"><img src="assets/features/featureIdeas.webp" width="160" alt="स्क्रीनशॉट: सुविधाओं के आइडिया"></a> |
42
+ | **कंटेंट में खोज** | <a id="feature-contentsearch"></a>dsh के साइडबार की अपनी खोज (**वर्कस्पेस** के पास का आवर्धक लेंस; डेस्कटॉप ऐप में `Cmd+K`, ब्राउज़र में `Cmd+Alt+K`) अब चैट को सिर्फ़ शीर्षक से नहीं, बल्कि आपके संदेशों और जवाबों के शब्दों से भी ढूंढती है। मिलता-जुलता टेक्स्ट चैट के नीचे दिखता है। dsh में यह खोज पहले से है, लेकिन यह बंद रहती है। यह सुविधा इसे चालू करती है और आपके कंप्यूटर पर एक खोज इंडेक्स फ़ाइल इस्तेमाल करती है। dsh शुरू होने के बाद पहली खोज पर इंडेक्स बनता है (250 चैट के लिए लगभग 15 सेकंड, सीमाएं देखें)। अगली बार शुरू करने पर यही इंडेक्स फिर से काम आता है। यह डिफ़ॉल्ट रूप से चालू है। बदलाव dsh रीस्टार्ट करने के बाद लागू होता है। | <a href="assets/features/contentSearch.webp"><img src="assets/features/contentSearch.webp" width="160" alt="स्क्रीनशॉट: कंटेंट में खोज"></a> |
43
+ | **टर्न रोलबैक** | <a id="feature-turnrollback"></a>अपने किसी संदेश पर पॉइंटर ले जाएं और **↶** पर क्लिक करें (कॉपी करें के पास)। **सिर्फ़ चैट** उस संदेश और उसके बाद की हर चीज़ (जवाब, टूल कॉल) को चैट और मॉडल के कॉन्टेक्स्ट से हटा देता है। संदेश कंपोज़र में वापस आ जाता है: उसे बदलें और फिर से भेजें। **चैट और फ़ाइलें** पहले उन प्रोजेक्ट फ़ाइलों की सूची दिखाता है, जो उस संदेश के बाद बदलीं। फिर वह उन्हें भी पहले जैसी स्थिति में वापस लाता है। इसमें कमांड (`bash`) से हुए बदलाव भी शामिल हैं, सिर्फ़ dsh के एडिट टूल से हुए बदलाव नहीं। चल रहा टर्न पहले रुकता है। चैट लॉग कभी दोबारा नहीं लिखा जाता: एक छिपा हुआ मार्कर हटाए गए हिस्से को छिपा देता है, ठीक वैसे ही जैसे dsh का अपना `/compact` पुराने संदेश छिपाता है। अगर [dsh-rewind-plugin](https://www.npmjs.com/package/dsh-rewind-plugin) इंस्टॉल है, तो यह काम वही करता है और Composer Plus दूसरा बटन नहीं दिखाता। | <a href="assets/features/turnRollback.webp"><img src="assets/features/turnRollback.webp" width="160" alt="स्क्रीनशॉट: टर्न रोलबैक"></a> |
44
+ | **चैट हटाएं** | <a id="feature-deletechat"></a>साइडबार → चैट का **…** मेन्यू (या राइट-क्लिक) → **हटाएं…** → **हटाएं**। dsh खुद सिर्फ़ आर्काइव कर सकता है। चैट रुक जाती है (उसका टर्न, जॉब, सबएजेंट और शेड्यूल भी, जैसे dsh के अपने आर्काइव में होता है)। उसका सेव किया गया इतिहास, उसकी सबएजेंट चैट के साथ, macOS के ट्रैश में चला जाता है (दूसरे सिस्टम पर: `$DSH_HOME/trash`)। चैट वापस लाने के लिए फ़ोल्डर को उसकी जगह पर वापस रखें और dsh रीस्टार्ट करें: चैट साइडबार के **सिर्फ़ आर्काइव किए गए** व्यू में दिखेगी। | <a href="assets/features/deleteChat.webp"><img src="assets/features/deleteChat.webp" width="160" alt="स्क्रीनशॉट: चैट हटाएं"></a> |
45
+ | **कंपोज़र में प्रोजेक्ट का नाम** | <a id="feature-projectname"></a>कंपोज़र के नीचे की पंक्ति (टर्न, टोकन, कैश हिट, कॉन्टेक्स्ट) चैट के प्रोजेक्ट के नाम से शुरू होती है। इससे आपको हमेशा पता रहता है कि चैट किस प्रोजेक्ट में काम करती है। यह dsh का अपना प्रोजेक्ट शीर्षक होता है। अगर प्रोजेक्ट का कोई शीर्षक नहीं है, तो फ़ोल्डर का नाम दिखता है। फ़ोल्डर का पूरा पाथ देखने के लिए उस पर पॉइंटर ले जाएं। साइडबार में चैट ढूंढने के लिए उस पर क्लिक करें, यह सूची और प्रोजेक्ट दोनों व्यू में काम करता है: साइडबार और प्रोजेक्ट खुल जाते हैं (बंद प्रोजेक्ट और उसका **N और सेशन दिखाएं** भी), सूची चैट तक स्क्रॉल होती है और चैट 5 सेकंड तक टिमटिमाती है। | <a href="assets/features/projectName.webp"><img src="assets/features/projectName.webp" width="160" alt="स्क्रीनशॉट: कंपोज़र में प्रोजेक्ट का नाम"></a> |
46
+ | **इनपुट इतिहास** | <a id="feature-inputhistory"></a>खाली कंपोज़र में `↑` / `↓` दबाकर भेजे गए संदेशों में आगे-पीछे जाएं, जैसे टर्मिनल में। | <a href="assets/features/inputHistory.webp"><img src="assets/features/inputHistory.webp" width="160" alt="स्क्रीनशॉट: इनपुट इतिहास"></a> |
47
+ | **Shift+Tab प्लान मोड** | <a id="feature-plantoggle"></a>`Shift+Tab` ड्राफ़्ट की शुरुआत में `/plan ` जोड़ता है (हटाने के लिए फिर से दबाएं)। अगर चैट पहले से प्लान मोड में है, तो `Shift+Tab` उससे बाहर निकालता है। | <a href="assets/features/planToggle.webp"><img src="assets/features/planToggle.webp" width="160" alt="स्क्रीनशॉट: Shift+Tab प्लान मोड"></a> |
48
+ | **कंपोज़र में फ़ोकस बनाए रखें** | <a id="feature-keepfocus"></a>`/` कमांड या स्किल भेजने के बाद कर्सर कंपोज़र में ही रहता है, और आप तुरंत फिर से टाइप कर सकते हैं। यह उन कीबोर्ड मैक्रो के साथ भी काम करता है, जो कमांड टाइप करके `Enter` दबाते हैं। कमांड प्रोसेस करते समय dsh कंपोज़र को सिर्फ़ पढ़ने लायक (read-only) बना देता है, और तब ब्राउज़र फ़ोकस हटा देता है। यह सुविधा फ़ोकस वापस लाती है, बशर्ते फ़ोकस किसी मेन्यू, डायलॉग या दूसरे फ़ील्ड में न हो। | <a href="assets/features/keepFocus.webp"><img src="assets/features/keepFocus.webp" width="160" alt="स्क्रीनशॉट: कंपोज़र में फ़ोकस बनाए रखें"></a> |
49
+ | **एक क्लिक में जारी रखें** | <a id="feature-continuebutton"></a>रुके हुए, विफल या बीच में कटे टर्न के बाद खाली कंपोज़र में **▶** दिखता है। एक क्लिक मौजूदा बातचीत से काम फिर से शुरू करता है। इनपुट में कुछ नहीं लिखा जाता और चैट में कोई दिखने वाला संदेश नहीं जुड़ता (मॉडल को “जहां रुका था, वहीं से जारी रखें” वाला एक छोटा छिपा नोट मिलता है, क्योंकि Claude जैसे कुछ प्रोवाइडर ऐसा अनुरोध अस्वीकार करते हैं, जो असिस्टेंट के जवाब पर खत्म होता है)। कतार में रखे संदेश वहीं रहते हैं: ▶ सिर्फ़ रुके हुए काम को जारी रखता है, उसके बाद कतार चलती है। पूरे हुए टर्न के बाद सामान्य भेजें बटन ही रहता है। | <a href="assets/features/continueButton.webp"><img src="assets/features/continueButton.webp" width="160" alt="स्क्रीनशॉट: एक क्लिक में जारी रखें"></a> |
50
+ | **रीस्टार्ट के बाद जारी रखें** | <a id="feature-resumeafterrestart"></a>डिफ़ॉल्ट रूप से बंद: इसे **सेटिंग → Composer Plus** में चालू करें। अगर चैट के काम करते समय आप dsh बंद करते हैं (या वह बंद हो जाता है), तो dsh दोबारा खोलने पर वह चैट अपने आप जारी रहती है। उसे वही छिपा नोट मिलता है, जो एक क्लिक में जारी रखें में मिलता है। अगर कोई लक्ष्य राउंड (`/goal`) चल रहा था, तो लक्ष्य अपने अगले राउंड से जारी रहता है (dsh हर बार शुरू होने पर लक्ष्यों को तब तक रोक देता है, जब तक आप उन्हें फिर से शुरू नहीं करते)। जिन चैट को आपने रोका, जो पूरी हो गईं या विफल हुईं, वे जारी नहीं रहतीं। dsh में इसकी अपनी कोई सेटिंग नहीं है: वह ऐसे टर्न को सिर्फ़ बीच में रुका हुआ मार्क करता है। | <a href="assets/features/resumeAfterRestart.webp"><img src="assets/features/resumeAfterRestart.webp" width="160" alt="स्क्रीनशॉट: रीस्टार्ट के बाद जारी रखें"></a> |
51
+ | **कतार में खींचकर छोड़ें** | <a id="feature-queuereorder"></a>कतार वाले संदेशों पर एक हैंडल (⠿) दिखता है। क्रम बदलने के लिए उसे खींचें, या हैंडल पर फ़ोकस करके `↑` / `↓` दबाएं। `Esc` रद्द करता है। | <a href="assets/features/queueReorder.webp"><img src="assets/features/queueReorder.webp" width="160" alt="स्क्रीनशॉट: कतार में खींचकर छोड़ें"></a> |
52
+ | **सेशन लिंक कॉपी करें** | <a id="feature-copydeeplink"></a>साइडबार में किसी चैट पर राइट-क्लिक करें → **सेशन लिंक कॉपी करें**। उस चैट को सिर्फ़ पढ़ने लायक कॉन्टेक्स्ट के रूप में जोड़ने के लिए `dsh-session:…` लिंक किसी दूसरी चैट में पेस्ट करें। dsh 0.2.1 में अपना **सेशन ID कॉपी करें** है, जो सिर्फ़ सादा ID कॉपी करता है; यह आइटम ठीक उसके बाद आता है। | <a href="assets/features/copyDeeplink.webp"><img src="assets/features/copyDeeplink.webp" width="160" alt="स्क्रीनशॉट: सेशन लिंक कॉपी करें"></a> |
53
+ | **चैट को Markdown के रूप में एक्सपोर्ट करें** | <a id="feature-exportmarkdown"></a>साइडबार में किसी चैट पर राइट-क्लिक करें (या उसका **…** मेन्यू खोलें) → **Markdown के रूप में एक्सपोर्ट करें…**। एक डायलॉग दिखाता है कि चैट में कितने संदेश हैं। **क्लिपबोर्ड पर कॉपी करें** चैट को Markdown के रूप में कॉपी करता है, और **.md फ़ाइल सेव करें** उसे ब्राउज़र के डाउनलोड से `<chat title>.md` के रूप में सेव करता है (dsh डेस्कटॉप: आपके सिस्टम की सेटिंग के हिसाब से डाउनलोड फ़ोल्डर में या सेव डायलॉग से)। फ़ाइल में चैट का शीर्षक, प्रोजेक्ट का नाम और तारीख होती है, फिर हर संदेश के लिए एक `## आप` या `## असिस्टेंट` सेक्शन होता है। कोड ब्लॉक जैसे हैं वैसे ही रहते हैं; जो कोड ब्लॉक किसी संदेश में खुला रह गया हो, उसे बंद कर दिया जाता है। | <a href="assets/features/exportMarkdown.webp"><img src="assets/features/exportMarkdown.webp" width="160" alt="स्क्रीनशॉट: चैट को Markdown के रूप में एक्सपोर्ट करें"></a> |
54
+ | **प्रोजेक्ट का पाथ कॉपी करें** | <a id="feature-copyprojectpath"></a>साइडबार में किसी प्रोजेक्ट पर राइट-क्लिक करें → **पाथ कॉपी करें** उसके फ़ोल्डर का पूरा पाथ कॉपी करता है। | <a href="assets/features/copyProjectPath.webp"><img src="assets/features/copyProjectPath.webp" width="160" alt="स्क्रीनशॉट: प्रोजेक्ट का पाथ कॉपी करें"></a> |
55
+ | **नई चैट में प्रोजेक्ट खोज** | <a id="feature-projectpicker"></a>नई चैट → कंपोज़र के ऊपर वाला प्रोजेक्ट बटन। प्रोजेक्ट A–Z क्रम में दिखते हैं, और सबसे ऊपर **प्रोजेक्ट खोजें** बॉक्स होता है। नाम का कोई हिस्सा लिखें (बड़े-छोटे अक्षरों और एक्सेंट से फ़र्क नहीं पड़ता) और पहला मिलान चुनने के लिए `Enter` दबाएं। कुछ भी न मिले, तो **कोई मिलता-जुलता प्रोजेक्ट नहीं** दिखता है। साइडबार में dsh का सेव किया गया प्रोजेक्ट क्रम नहीं बदलता। | <a href="assets/features/projectPicker.webp"><img src="assets/features/projectPicker.webp" width="160" alt="स्क्रीनशॉट: नई चैट में प्रोजेक्ट खोज"></a> |
56
+ | **अगले संदेश का अनुमान** | <a id="feature-nextprediction"></a>डिफ़ॉल्ट रूप से चालू: आप इसे **सेटिंग → Composer Plus** में बंद कर सकते हैं। जब एजेंट कोई टर्न पूरा करता है (रुका हुआ या विफल टर्न नहीं), तो खाली कंपोज़र ग्रे टेक्स्ट में आपके अगले संदेश का अनुमान दिखाता है, साथ में **स्वीकार करने के लिए Tab** संकेत होता है। `Tab` टेक्स्ट को कंपोज़र में डालता है, पर भेजता नहीं। `Esc` उस टर्न के लिए अनुमान छिपा देता है। टाइप करना शुरू करने पर भी यह छिप जाता है, और नया टर्न इसे बदल देता है। स्विच के नीचे का **मॉडल** मेन्यू dsh के अपने मॉडल दिखाता है (वही सूची, जो dsh के मॉडल मेन्यू में है)। डिफ़ॉल्ट रूप से **dsh डिफ़ॉल्ट** चुना होता है, जो dsh के डिफ़ॉल्ट मॉडल के अनुसार चलता है। हर पूरे हुए टर्न पर एक छोटी मॉडल कॉल होती है। Tether में अनुमान खाली कंपोज़र के ऊपर दिखता है: उसे फ़ील्ड में डालने के लिए उस पर टैप करें। | <a href="assets/features/nextPrediction.webp"><img src="assets/features/nextPrediction.webp" width="160" alt="स्क्रीनशॉट: अगले संदेश का अनुमान"></a> |
57
+ | **टाइप करते समय पूरा करें** | <a id="feature-typingcompletion"></a>डिफ़ॉल्ट रूप से बंद: आप इसे **सेटिंग → Composer Plus** में चालू कर सकते हैं। जब आप टाइप करते हैं, कर्सर के ठीक बाद ग्रे टेक्स्ट दिखाता है कि आपका संदेश आगे कैसे बढ़ सकता है। `Tab` इसे संदेश में जोड़ता है, पर भेजता नहीं। `Esc` इसे छिपा देता है। यह केवल आपके अपने अगले शब्द सुझाता है: आपको कभी जवाब नहीं देता, और कोई गढ़ा हुआ त्रुटि संदेश या नाम नहीं जोड़ता। अगर संदेश पूरा लगता है या मॉडल को भरोसा नहीं है, तो कुछ नहीं दिखता। ग्रे टेक्स्ट के अगले अक्षर टाइप करने पर यह बना रहता है, और नई मॉडल कॉल नहीं होती। इसके स्विच के नीचे इसका अपना **मॉडल** मेन्यू है। इसकी पहली एंट्री, **अगले संदेश के अनुमान जैसा**, **अगले संदेश का अनुमान** वाला मॉडल इस्तेमाल करती है (डिफ़ॉल्ट); हर सुविधा के लिए अलग मॉडल इस्तेमाल करने के लिए कोई दूसरा मॉडल चुनें, जैसे पूरा करने के लिए कोई तेज़ मॉडल। टाइप करते समय हर ठहराव पर यह एक मॉडल कॉल करता है, इसलिए यह अनुमान से कहीं ज़्यादा टोकन खर्च करता है: कोई तेज़ और कम लागत वाला मॉडल चुनें। यह स्लैश कमांड पर, फ़ाइल चिप वाले संदेश पर, या कर्सर के आख़िर में न होने पर नहीं चलता। Tether में टाइप करते समय बाकी टेक्स्ट फ़ील्ड के ऊपर दिखता है: उसे जोड़ने के लिए उस पर टैप करें। | <a href="assets/features/typingCompletion.webp"><img src="assets/features/typingCompletion.webp" width="160" alt="स्क्रीनशॉट: टाइप करते समय पूरा करें"></a> |
58
+ | **प्रॉम्प्ट बेहतर करें** | <a id="feature-promptimprove"></a>कोई मोटा-मोटा अनुरोध टाइप करें, फिर मॉडल मेन्यू के पास जादुई छड़ी (**प्रॉम्प्ट बेहतर करें**) पर क्लिक करें। एक मॉडल कॉल उसे ज़्यादा साफ़ प्रॉम्प्ट के रूप में दोबारा लिखती है: पहले लक्ष्य, कई हिस्से हों तो छोटे क्रमांकित चरण, और चलाने वाली जांच। यह इस चैट (रोलबैक किए गए संदेशों को छोड़कर), प्रोजेक्ट की README, AGENTS.md और मैनिफ़ेस्ट, बदली गई फ़ाइलों और उन फ़ाइलों को पढ़ता है जिनके नाम आपके शब्दों से मिलते हैं, और आपकी भाषा बनाए रखता है। यह कभी फ़ाइलों के नाम नहीं गढ़ता। नया टेक्स्ट आपके ड्राफ़्ट की जगह ले लेता है, पर भेजा नहीं जाता: उसे पढ़ें, बदलें, फिर `Enter` दबाएं। `Cmd/Ctrl+Z` आपका टेक्स्ट एक चरण में वापस लाता है, और बटन (**सुधार वापस लें**) भी। अगर इसके काम करते समय आप टाइप करते हैं, तो आपका नया टेक्स्ट बना रहता है। `Esc` या दूसरा क्लिक इसे रद्द करता है। सेटिंग में इसका अपना **मॉडल** मेन्यू है (डिफ़ॉल्ट: **चैट के मॉडल जैसा**)। स्लैश कमांड या फ़ाइल चिप वाले संदेश के लिए नहीं। Tether में छड़ी फ़ील्ड के पास है। | <a href="assets/features/promptImprove.webp"><img src="assets/features/promptImprove.webp" width="160" alt="स्क्रीनशॉट: प्रॉम्प्ट बेहतर करें"></a> |
59
+ | **इस चैट के लिए अनुमति दें** | <a id="feature-allowforchat"></a>जब ऑटो रिव्यू आपसे पूछता है, तो मंज़ूरी कार्ड पर **इस चैट के लिए अनुमति दें** दिखता है। इसके बाद उसी चैट में वही टूल किसी भी आर्ग्युमेंट के साथ बिना पूछे चलता है। हेडर की एक चिप अनुमतियों की सूची दिखाती है और उन्हें रद्द करती है। रीस्टार्ट के बाद भी अनुमतियां बनी रहती हैं। | <a href="assets/features/allowForChat.webp"><img src="assets/features/allowForChat.webp" width="160" alt="स्क्रीनशॉट: इस चैट के लिए अनुमति दें"></a> |
60
+ | **प्रोजेक्ट की स्थिति** | <a id="feature-projectstatus"></a>साइडबार में प्रोजेक्ट की पंक्ति वही स्पिनर / इंतज़ार / पूरा होने का संकेत दिखाती है, जो उसकी चैट दिखाती हैं। इसलिए बंद (collapsed) प्रोजेक्ट भी बताता है कि अंदर कोई चैट काम कर रही है या उसे आपकी ज़रूरत है। सबसे पहले आपका इंतज़ार कर रही चैट दिखती है, फिर पूरी हुई ऐसी चैट जिसे आपने अभी तक नहीं खोला (हरा बिंदु, तब भी जब कोई दूसरी चैट अभी चल रही हो), फिर स्पिनर। विवरण देखने के लिए उस पर पॉइंटर ले जाएं। | <a href="assets/features/projectStatus.webp"><img src="assets/features/projectStatus.webp" width="160" alt="स्क्रीनशॉट: प्रोजेक्ट की स्थिति"></a> |
61
+ | **सक्रिय प्रोजेक्ट पहले** | <a id="feature-activeprojectsfirst"></a>जब कोई चैट चलने लगती है या उसे आपकी ज़रूरत होती है, तो उसका प्रोजेक्ट dsh के अपने पंक्ति एनिमेशन के साथ साइडबार में सबसे ऊपर चला जाता है (वैसे ही जैसे आप उसे खींचकर वहां ले जाते)। पूरे हो चुके प्रोजेक्ट अपनी जगह पर रहते हैं; उन्हें हमेशा की तरह कहीं भी खींचें। बदला गया क्रम dsh के प्रोजेक्ट क्रम में सेव होता है, इसलिए इसे बंद करने पर मौजूदा क्रम बना रहता है। | <a href="assets/features/projectStatus.webp"><img src="assets/features/projectStatus.webp" width="160" alt="स्क्रीनशॉट: सक्रिय प्रोजेक्ट पहले"></a> |
62
+ | **हाल के प्रोजेक्ट का फ़िल्टर** | <a id="feature-recentprojects"></a>साइडबार → व्यू के विकल्प (स्लाइडर आइकन) → **पिछले 2 घंटों में सक्रिय**। इसके चुने रहने पर साइडबार सिर्फ़ वे प्रोजेक्ट दिखाता है, जिनमें पिछले 2 घंटों में कोई चैट सक्रिय रही हो। इसमें शामिल हैं: इस समय में अपडेट हुई चैट, चल रही या इंतज़ार कर रही चैट, खुली हुई चैट, या पूरी हुई ऐसी चैट जिसे आपने अभी तक नहीं खोला (dsh का हरा “पूरा हुआ” बिंदु), 2 घंटे बाद भी। जिन प्रोजेक्ट में ऐसी कोई चैट नहीं है, वे छिप जाते हैं, नए और खाली प्रोजेक्ट भी। सभी प्रोजेक्ट दिखाने के लिए इसे फिर से चुनें। यह चुनाव इसी डिवाइस पर याद रहता है। | <a href="assets/features/recentProjects.webp"><img src="assets/features/recentProjects.webp" width="160" alt="स्क्रीनशॉट: हाल के प्रोजेक्ट का फ़िल्टर"></a> |
63
+ | **सभी प्रोजेक्ट छोटे करें** | <a id="feature-collapseprojects"></a>जब साइडबार में कोई प्रोजेक्ट खुला होता है, तो व्यू के विकल्पों (स्लाइडर आइकन) के पास एक बटन दिखता है। सभी खुले प्रोजेक्ट एक साथ बंद करने के लिए उस पर क्लिक करें, जैसे 5 में से 3 खुले प्रोजेक्ट। जब कोई प्रोजेक्ट खुला नहीं होता, तो बटन फिर से छिप जाता है। | <a href="assets/features/collapseProjects.webp"><img src="assets/features/collapseProjects.webp" width="160" alt="स्क्रीनशॉट: सभी प्रोजेक्ट छोटे करें"></a> |
64
+ | **स्थिति के अनुसार क्रम** | <a id="feature-statusorder"></a>साइडबार → व्यू के विकल्प → **इसके अनुसार क्रम दें** → **स्थिति के अनुसार** (**एक ही सूची में** के साथ)। सबसे पहले पूरी हुई चैट आती हैं (dsh का “पूरा हुआ” बिंदु, जो गड़बड़ी के साथ खत्म हुए टर्न को भी मिलता है)। फिर चल रही या इंतज़ार कर रही चैट, फिर सक्रिय ऑटोमेशन (शेड्यूल) वाली चैट, और आखिर में बाकी चैट dsh के क्रम में आती हैं। पूरी हुई चैट खोलने पर वह नीचे चली जाती है। सिर्फ़ व्यू बदलता है: वापस जाने के लिए **मैन्युअल** या **पिछला अपडेट** चुनें। | <a href="assets/features/statusOrder.webp"><img src="assets/features/statusOrder.webp" width="160" alt="स्क्रीनशॉट: स्थिति के अनुसार क्रम"></a> |
65
+ | **बैकग्राउंड सूचनाएं** | <a id="feature-notifications"></a>जब dsh बैकग्राउंड में होता है, तो टर्न पूरा होने पर आपको सूचना मिलती है (जवाब की पहली पंक्ति)। जब कोई चैट सच में आपका इंतज़ार करती है, तब भी सूचना मिलती है: मंज़ूरी (टूल का नाम), जवाब (सवाल) या प्लान रिव्यू। अनुरोध 1.5 सेकंड बाद भी खुला होना चाहिए। इसलिए अपने-आप मंज़ूर हुए अनुरोधों (ऑटो रिव्यू अनुमतियां, दूसरे प्लगइन) पर कोई सूचना नहीं आती। अनुरोध का जवाब मिलते ही उसकी सूचना हटा ली जाती है। Dock/टास्कबार का बैज इंतज़ार कर रही चैट की गिनती दिखाता है। सूचना पर क्लिक करने से वह चैट खुलती है। | <a href="assets/features/notifications.webp"><img src="assets/features/notifications.webp" width="160" alt="स्क्रीनशॉट: बैकग्राउंड सूचनाएं"></a> |
66
+ | **ऐप्लिकेशन की भाषा** | <a id="feature-language"></a>सेटिंग → Composer Plus → **ऐप्लिकेशन की भाषा** पूरे dsh इंटरफ़ेस को Türkçe, Español, Português (Brasil), Français, Deutsch, Русский, 日本語, 한국어, Bahasa Indonesia, Tiếng Việt या हिन्दी में बदल देता है (नीचे देखें)। | <a href="assets/features/language.webp"><img src="assets/features/language.webp" width="160" alt="स्क्रीनशॉट: ऐप्लिकेशन की भाषा"></a> |
67
+ | **मोबाइल कनेक्ट (iPhone)** | <a id="feature-mobileconnect"></a>[Tether](tether/) ऐप से अपने iPhone पर dsh का उपयोग करें, उसी Wi-Fi पर या [Tailscale](https://tailscale.com) के ज़रिए। इसे **सेटिंग → Composer Plus** में चालू करें (यह डिफ़ॉल्ट रूप से बंद रहता है, क्योंकि यह इस Mac पर एक नेटवर्क पोर्ट खोलता है)। फिर साइडबार में नीचे बाईं ओर **मोबाइल कनेक्ट** पर क्लिक करें: iPhone के कैमरा से (**Open in Tether** पर टैप करें) या Tether में **Scan code** से QR कोड स्कैन करें, **Connect** पर टैप करें और **Approve** पर क्लिक करें। पहले Tether इंस्टॉल करें: इसके बिना कैमरा यह कोड नहीं खोल सकता। फ़ोन आपकी चैट दिखाता है, संदेश भेजता है, मंज़ूरियों और सवालों के जवाब देता है, और मॉडल व एजेंट बदलता है। आप जितने चाहें उतने Mac पेयर कर सकते हैं: ऐप में ऊपर बाईं ओर Mac का नाम उनके बीच बदलता है। | <a href="assets/features/mobileConnect.webp"><img src="assets/features/mobileConnect.webp" width="160" alt="स्क्रीनशॉट: मोबाइल कनेक्ट (iPhone)"></a> |
68
+ | **अपने-आप अपडेट** | <a id="feature-autoupdate"></a>dsh शुरू होने पर प्लगइन [GitHub की नवीनतम रिलीज़](https://github.com/furkancak1r/dsh-composer-plus/releases/latest) जांचता है। अगर वह नई है और npm पर पहले से है, तो प्लगइन वही वर्शन dsh के अपने प्लगइन मैनेजर से इंस्टॉल करता है (सेटिंग → प्लगइन वाला ही रास्ता) और आपको सूचित करता है। इसे लोड करने के लिए dsh रीस्टार्ट करें। **सेटिंग → Composer Plus → Composer Plus अपडेट** वर्शन दिखाता है और उसमें **अपडेट जांचें** / **अभी अपडेट करें** बटन हैं। नए वर्शन के साथ dsh पहली बार शुरू होने पर **Composer Plus N में नया क्या है** विंडो उस वर्शन के रिलीज़ नोट्स एक बार दिखाती है (उसी अपडेट जांच से, कोई अतिरिक्त नेटवर्क कॉल नहीं); **बंद करें** या `Esc` से यह बंद होती है। | <a href="assets/features/autoUpdate.webp"><img src="assets/features/autoUpdate.webp" width="160" alt="स्क्रीनशॉट: अपने-आप अपडेट"></a> |
69
+
70
+ <!-- END GENERATED FEATURES -->
66
71
 
67
72
  बटन, टूलटिप, नोटिस और सूचनाएं dsh की चुनी गई भाषा में दिखते हैं (नीचे ऐप्लिकेशन की भाषा देखें)।
68
73
 
69
74
  ## सेटिंग
70
75
 
71
- हर सुविधा को अलग से चालू या बंद किया जा सकता है: dsh **सेटिंग → Composer Plus**। हर पंक्ति में एक छोटा स्क्रीनशॉट है: बड़ा पूर्वावलोकन देखने के लिए उस पर पॉइंटर ले जाएं, पूरे आकार में खोलने के लिए उस पर क्लिक करें (`Esc` बंद करता है)। ऊपर का **सुविधाएं खोजें** बॉक्स पेज को नाम या विवरण से फ़िल्टर करता है (कोई भी भाषा; बड़े-छोटे अक्षरों और एक्सेंट से फ़र्क नहीं पड़ता); `Esc` उसे खाली करता है। हर पंक्ति में एक स्विच और छोटा विवरण है। बदलाव बिना रीस्टार्ट के तुरंत लागू होते हैं और उस डिवाइस पर याद रहते हैं। **मोबाइल कनेक्ट**, **रीस्टार्ट के बाद जारी रखें** और **टाइप करते समय पूरा करें** को छोड़कर सब कुछ डिफ़ॉल्ट रूप से चालू है। इन तीनों के और **कंटेंट में खोज**, **टर्न रोलबैक** व **अगले संदेश का अनुमान** के स्विच dsh का Host रखता है, इसलिए वे हर विंडो पर लागू होते हैं और रीस्टार्ट के बाद भी बने रहते हैं। **अगले संदेश का अनुमान** के लिए चुना गया **मॉडल** और **टाइप करते समय पूरा करें** के लिए चुना गया मॉडल (डिफ़ॉल्ट रूप से **अगले संदेश के अनुमान जैसा**) भी Host रखता है। **कंटेंट में खोज** सिर्फ़ dsh रीस्टार्ट करने के बाद बदलती है (dsh इसे शुरू होते समय पढ़ता है); तब तक उसकी पंक्ति में लिखा रहता है **यह बदलाव लागू करने के लिए dsh रीस्टार्ट करें।**
76
+ हर सुविधा को अलग से चालू या बंद किया जा सकता है: dsh **सेटिंग → Composer Plus**। हर पंक्ति में एक छोटा स्क्रीनशॉट है: बड़ा पूर्वावलोकन देखने के लिए उस पर पॉइंटर ले जाएं, पूरे आकार में खोलने के लिए उस पर क्लिक करें (`Esc` बंद करता है)। ऊपर का **सुविधाएं खोजें** बॉक्स पेज को नाम या विवरण से फ़िल्टर करता है (कोई भी भाषा; बड़े-छोटे अक्षरों और एक्सेंट से फ़र्क नहीं पड़ता); `Esc` उसे खाली करता है। हर पंक्ति में एक स्विच और छोटा विवरण है। पंक्ति के नाम के बाद का छोटा **?** README का वह हिस्सा खोलता है जो उस सुविधा के बारे में बताता है, dsh की इंटरफ़ेस भाषा वाली README में। बदलाव बिना रीस्टार्ट के तुरंत लागू होते हैं और उस डिवाइस पर याद रहते हैं। **मोबाइल कनेक्ट**, **रीस्टार्ट के बाद जारी रखें** और **टाइप करते समय पूरा करें** को छोड़कर सब कुछ डिफ़ॉल्ट रूप से चालू है। इन तीनों के और **कंटेंट में खोज**, **टर्न रोलबैक** व **अगले संदेश का अनुमान** के स्विच dsh का Host रखता है, इसलिए वे हर विंडो पर लागू होते हैं और रीस्टार्ट के बाद भी बने रहते हैं। **अगले संदेश का अनुमान** के लिए चुना गया **मॉडल**, **टाइप करते समय पूरा करें** के लिए चुना गया मॉडल (डिफ़ॉल्ट रूप से **अगले संदेश के अनुमान जैसा**) और **प्रॉम्प्ट बेहतर करें** के लिए चुना गया मॉडल (डिफ़ॉल्ट रूप से **चैट के मॉडल जैसा**) भी Host रखता है। **कंटेंट में खोज** सिर्फ़ dsh रीस्टार्ट करने के बाद बदलती है (dsh इसे शुरू होते समय पढ़ता है); तब तक उसकी पंक्ति में लिखा रहता है **यह बदलाव लागू करने के लिए dsh रीस्टार्ट करें।**
72
77
 
73
78
  <p align="center"><img src="docs/images/settings.webp" width="720" alt="सेटिंग → Composer Plus: सुविधाओं की खोज, भाषा चुनने का विकल्प, अपडेट की पंक्ति और हर सुविधा के लिए एक स्विच, होवर करने पर स्क्रीनशॉट का पूर्वावलोकन"></p>
74
79
 
@@ -120,16 +125,17 @@ dsh `0.2.0-rc.2` (डेस्कटॉप और वेब) और `0.2.1-rc.2`
120
125
  - **टर्न रोलबैक:** आपके हर संदेश से पहले Host चैट के फ़ोल्डर का git स्नैपशॉट अपने अलग स्टोर में लेता है: `$DSH_HOME/cache/composer-plus/rollback/<chat>.git` (सिर्फ़ मालिक का फ़ोल्डर)। इसमें उस फ़ोल्डर की उन फ़ाइलों की कॉपी होती है, जिन्हें git देखता है (ignore की गई फ़ाइलें नहीं), इसलिए यह उतना ही निजी है जितना प्रोजेक्ट। यह आपकी रिपॉज़िटरी के ऑब्जेक्ट पढ़ता है (जो git के पास पहले से है, उसकी कॉपी नहीं बनाता)। यह आपकी रिपॉज़िटरी का index, `HEAD`, ब्रांच, टैग, stash या config कभी नहीं लिखता। git वहां सिर्फ़ एक बदलाव करता है: दोबारा इस्तेमाल की गई ऑब्जेक्ट फ़ाइलों पर नया टाइम स्टैंप (इससे `git gc` उन्हें थोड़ी देर से साफ़ करता है)। फ़ाइलों के साथ रोलबैक सिर्फ़ चैट के फ़ोल्डर के अंदर की सामान्य फ़ाइलें लिखता है; यह symlink, पाइप और फ़ोल्डर के बाहर की हर चीज़ छोड़ देता है। कुछ भी आपकी मशीन से बाहर नहीं जाता। dsh बंद होने पर आप स्टोर हटा सकते हैं (तब नए संदेश आने तक रोलबैक सिर्फ़ चैट के लिए काम करता है)। **चैट हटाएं** चैट का स्टोर भी हटाता है। स्विच `$DSH_HOME/storages/dsh-composer-plus/rollback.json` में है।
121
126
  - **चैट को Markdown के रूप में एक्सपोर्ट करें:** Host हिस्सा सिर्फ़ चैट का अपना लॉग पढ़ता है (वही संदेश जो dsh दिखाता है) और उन्हें पेज को देता है; यह प्रोजेक्ट की कोई फ़ाइल नहीं पढ़ता और नेटवर्क पर कुछ नहीं भेजता। Markdown सिर्फ़ आपके क्लिपबोर्ड में या आपकी सेव की गई फ़ाइल में जाता है।
122
127
  - **चैट हटाएं:** चैट के अपने लॉग फ़ोल्डर (`$DSH_HOME/sessions/<project>/<chat>`) को ट्रैश में ले जाता है। यह प्रोजेक्ट फ़ोल्डर को नहीं छूता।
123
- - **इस चैट के लिए अनुमति दें:** अनुमतियां `$DSH_HOME/storages/dsh-composer-plus/grants.json` में रखी जाती हैं (सिर्फ़ मालिक की अनुमति)। एक अनुमति **एक चैट में एक तय टूल** पर लागू होती है। अगर वह टूल लिख सकता है, तो अनुमति हर तरह के लिखने पर भी लागू होती है। इसे हेडर की चिप से रद्द करें।
128
+ - **इस चैट के लिए अनुमति दें:** अनुमतियां `$DSH_HOME/storages/dsh-composer-plus/grants.json` में रखी जाती हैं (सिर्फ़ मालिक की अनुमति)। एक अनुमति एक चैट में एक तय टूल पर लागू होती है। अगर वह टूल लिख सकता है, तो अनुमति हर तरह के लिखने पर भी लागू होती है। इसे हेडर की चिप से रद्द करें।
124
129
  - ऑटो रिव्यू फिर भी हर कॉल पर चलता है; रिव्यू विफल होने पर कभी अपने-आप अनुमति नहीं मिलती।
125
- - **मोबाइल कनेक्ट:** जब तक आप इसे चालू नहीं करते, यह बंद रहता है। चालू रहने पर Host वाला हिस्सा Tether गेटवे चलाता है: पोर्ट 19390 पर HTTPS, जो सिर्फ़ आपके Wi-Fi सबनेट और आपके tailnet (100.64.0.0/10) से कनेक्शन स्वीकार करता है, और `127.0.0.1:19391` पर एक पेयरिंग पेज (सिर्फ़ यह Mac)। फ़ोन को QR कोड से मिला एक बार का कोड (5 मिनट) और Mac पर आपका **Approve** चाहिए। फ़ोन गेटवे का सर्टिफ़िकेट पिन करता है। Mac हर फ़ोन के टोकन का सिर्फ़ हैश रखता है (30 दिन, उपयोग होते रहने पर नवीनीकृत)। **Revoke** उस फ़ोन के कनेक्शन तुरंत बंद कर देता है। फ़ोन dsh के सिर्फ़ मंज़ूर सूची वाले मेथड कॉल कर सकते हैं (चैट, प्रॉम्प्ट, अटैचमेंट, स्लैश कमांड, मंज़ूरियां, सवाल, मॉडल, एजेंट, लक्ष्य); सेटिंग, क्रेडेंशियल, फ़ाइल ब्राउज़र या टर्मिनल नहीं। डेटा: `$DSH_HOME/storages/dsh-composer-plus/mobile/`। विवरण: [tether/README.md](tether/README.md)।
130
+ - **मोबाइल कनेक्ट:** जब तक आप इसे चालू नहीं करते, यह बंद रहता है। चालू रहने पर Host वाला हिस्सा Tether गेटवे चलाता है: पोर्ट 19390 पर HTTPS, जो सिर्फ़ आपके Wi-Fi सबनेट और आपके tailnet (100.64.0.0/10) से कनेक्शन स्वीकार करता है, और `127.0.0.1:19391` पर एक पेयरिंग पेज (सिर्फ़ यह Mac)। फ़ोन को QR कोड से मिला एक बार का कोड (5 मिनट) और Mac पर आपका **Approve** चाहिए। फ़ोन गेटवे का सर्टिफ़िकेट पिन करता है। Mac हर फ़ोन के टोकन का सिर्फ़ हैश रखता है (30 दिन, उपयोग होते रहने पर नवीनीकृत)। **Remove** उस फ़ोन के कनेक्शन तुरंत बंद कर देता है। फ़ोन dsh के सिर्फ़ मंज़ूर सूची वाले मेथड कॉल कर सकते हैं (चैट, प्रॉम्प्ट, अटैचमेंट, स्लैश कमांड, मंज़ूरियां, सवाल, मॉडल, एजेंट, लक्ष्य); सेटिंग, क्रेडेंशियल, फ़ाइल ब्राउज़र या टर्मिनल नहीं। डेटा: `$DSH_HOME/storages/dsh-composer-plus/mobile/`। विवरण: [tether/README.md](tether/README.md)।
126
131
  - **अपडेट:** Host वाला हिस्सा `api.github.com` से नवीनतम रिलीज़ और `registry.npmjs.org` से वही वर्शन पूछता है; आपके या आपकी चैट के बारे में कुछ नहीं भेजा जाता। इंस्टॉलेशन dsh के प्लगइन मैनेजर (`pnpm add dsh-composer-plus@<version>`; जब dsh 0.2.1 पहले से इंस्टॉल प्लगइन के लिए इसे मना करता है, तो `pnpm add https://registry.npmjs.org/dsh-composer-plus/-/dsh-composer-plus-<version>.tgz`, और फिर प्रोफ़ाइल उस URL को प्लगइन के स्रोत के रूप में सूचीबद्ध करती है) से होता है, इसलिए dsh की अपनी रजिस्ट्री, स्क्रिप्ट और वर्शन-संगतता जांच लागू होती हैं। प्री-रिलीज़ टैग और पुराने वर्शन कभी इंस्टॉल नहीं होते।
127
132
  - **अगले संदेश का अनुमान:** डिफ़ॉल्ट रूप से चालू है। ये मॉडल कॉल रोकने के लिए इसे **सेटिंग → Composer Plus** में बंद करें। हर पूरे हुए टर्न के बाद Host वाला हिस्सा चैट में आपके अपने संदेश और एजेंट के टेक्स्ट जवाब (टूल आउटपुट, छिपा संदर्भ और रीज़निंग नहीं), ज़्यादा से ज़्यादा लगभग 6,000 अक्षर (सबसे नया हिस्सा), चुने गए मॉडल (जब तक आप कोई दूसरा न चुनें, dsh का डिफ़ॉल्ट मॉडल) को भेजता है। यह dsh की अपनी प्रोवाइडर सेटिंग के ज़रिए एक अनुरोध के रूप में जाता है। चैट में कुछ सेव नहीं होता: अनुमान चैट के इतिहास में नहीं जुड़ता। स्विच और चुना गया मॉडल `$DSH_HOME/storages/dsh-composer-plus/predict.json` में रहते हैं (सिर्फ़ मालिक की फ़ाइल)।
128
133
  - **टाइप करते समय पूरा करें:** जब तक आप इसे चालू नहीं करते, यह बंद रहता है। चालू रहने पर, टाइप करते समय हर ठहराव पर Host वाला हिस्सा अब तक टाइप किया गया टेक्स्ट, साथ ही चैट में आपके अपने संदेश और एजेंट के टेक्स्ट जवाब (टूल आउटपुट, छिपा संदर्भ और रीज़निंग नहीं), चैट के ज़्यादा से ज़्यादा लगभग 3,000 अक्षर, **टाइप करते समय पूरा करें** में चुने गए मॉडल (डिफ़ॉल्ट रूप से **अगले संदेश का अनुमान** वाला मॉडल) को भेजता है। नया ठहराव पुराने अनुरोध को रोक देता है। चैट में कुछ सेव नहीं होता। स्विच `$DSH_HOME/storages/dsh-composer-plus/complete.json` में रहता है (सिर्फ़ मालिक की फ़ाइल)।
134
+ - **प्रॉम्प्ट बेहतर करें:** जब तक आप जादुई छड़ी पर क्लिक नहीं करते, कुछ नहीं चलता। फिर Host वाला हिस्सा आपका ड्राफ़्ट, चैट में आपके अपने संदेश और एजेंट के टेक्स्ट जवाब (टूल आउटपुट, छिपा संदर्भ, रीज़निंग और रोलबैक किए गए संदेश नहीं; ज़्यादा से ज़्यादा लगभग 6,000 अक्षर, सबसे नया हिस्सा), **सुविधाओं के आइडिया** वाला ही प्रोजेक्ट सारांश (फ़ाइलों के वही नियम: `.env*` या कुंजी फ़ाइलें नहीं, फ़ोल्डर से बाहर जाने वाला symlink नहीं, FIFO नहीं), वे पाथ जिन्हें `git status` बदले हुए के रूप में दिखाता है, और ज़्यादा से ज़्यादा 30 ट्रैक किए गए या ट्रैक न किए गए (ignore न किए गए) पाथ जिनके नामों में आपके ड्राफ़्ट वाले शब्द हैं, **प्रॉम्प्ट बेहतर करें** में चुने गए मॉडल (डिफ़ॉल्ट रूप से चैट का अपना मॉडल) को एक अनुरोध के रूप में भेजता है। उस सारांश के अलावा फ़ाइलों का कोई कंटेंट नहीं भेजा जाता। चैट या प्रोजेक्ट में कुछ नहीं लिखा जाता: जवाब सिर्फ़ कंपोज़र में आपके ड्राफ़्ट की जगह लेता है, और उसे भेजना है या नहीं, यह आप तय करते हैं। चुना गया मॉडल `$DSH_HOME/storages/dsh-composer-plus/improve.json` में रहता है (सिर्फ़ मालिक की फ़ाइल)।
129
135
 
130
136
  ## समस्या निवारण
131
137
 
132
- - **macOS पर सूचनाएं नहीं आतीं:** सिस्टम सेटिंग → सूचनाएं → DeepSeek Harness → अनुमति दें। सूचनाओं को स्क्रीन पर बनाए रखने के लिए **अलर्ट** चुनें।
138
+ - **macOS पर सूचनाएं नहीं आतीं:** सिस्टम सेटिंग → सूचनाएं → DeepSeek Harness → अनुमति दें। सूचनाओं को स्क्रीन पर बनाए रखने के लिए अलर्ट चुनें।
133
139
  - **dsh अपडेट के बाद ▶, कतार हैंडल, प्रोजेक्ट की स्थिति, हाल के प्रोजेक्ट का विकल्प, सभी प्रोजेक्ट छोटे करें, पाथ कॉपी करें, प्रोजेक्ट खोज बॉक्स, अगले संदेश का अनुमान, टाइप करते समय पूरा करने वाला टेक्स्ट, इस चैट के लिए अनुमति दें या राइट-क्लिक गायब है:** ये dsh के मौजूदा HTML से जुड़ते हैं, क्योंकि dsh में अभी इनके लिए कोई जगह (slot) नहीं है। अगर dsh वह मार्कअप बदलता है, तो ये खुद छिप जाते हैं; और कुछ नहीं टूटता। कृपया एक [issue](https://github.com/furkancak1r/dsh-composer-plus/issues) खोलें।
134
140
  - **"अपडेट विफल रहा" या "npm से इंस्टॉल नहीं की गई थी":** लोकल फ़ोल्डर से लिंक की गई या नाम बदली गई कॉपी खुद को अपडेट नहीं कर सकती; सेटिंग → प्लगइन से `dsh-composer-plus` फिर से इंस्टॉल करें। नहीं तो संदेश में pnpm की गड़बड़ी की पहली पंक्ति दिखती है; **अपडेट जांचें** फिर से कोशिश करता है।
135
141
  - **मोबाइल कनेक्ट कहता है कि गेटवे नहीं चल रहा है:** "no IPv4 address on en0" का मतलब है कि इस Mac का कोई Wi-Fi/Ethernet पता नहीं है। "EADDRINUSE" का मतलब है कि कोई दूसरा dsh (या ऐप) पोर्ट 19390 या 19391 इस्तेमाल कर रहा है। एक समय में सिर्फ़ एक dsh मोबाइल कनेक्ट चला सकता है।
@@ -139,7 +145,7 @@ dsh `0.2.0-rc.2` (डेस्कटॉप और वेब) और `0.2.1-rc.2`
139
145
  - **चैट और फ़ाइलें धूसर (बंद) दिखता है:** प्रोजेक्ट git रिपॉज़िटरी नहीं है, उस संदेश से पहले का कोई स्नैपशॉट नहीं है (संदेश प्लगइन से पुराना है, या 50 सबसे नए स्नैपशॉट ने उसकी जगह ले ली), या कोई फ़ाइल नहीं बदली।
140
146
  - **हटाएं कहता है कि किसी दूसरे dsh में यह चैट खुली है:** उसी dsh होम पर चल रहा दूसरा dsh चैट का लॉक रखता है। वह विंडो या dsh बंद करें, फिर से हटाएं। तब तक चैट आर्काइव में रहती है।
141
147
  - **रीस्टार्ट के बाद कोई चैट जारी नहीं रही:** dsh बंद होते समय रीस्टार्ट के बाद जारी रखें बंद था, आपने वह टर्न खुद रोका था, टर्न खत्म हो चुका था (पूरा या विफल), चैट आर्काइव थी, या 20 से ज़्यादा चैट चल रही थीं (सबसे नई 20 जारी रहती हैं)।
142
- - **रिलीज़ के तुरंत बाद इंस्टॉल विफल होता है:** वर्शन जोड़ें (`dsh-composer-plus@1.11.3`), ऊपर इंस्टॉल वाला नोट देखें।
148
+ - **रिलीज़ के तुरंत बाद इंस्टॉल विफल होता है:** वर्शन जोड़ें (`dsh-composer-plus@1.12.0`), ऊपर इंस्टॉल वाला नोट देखें।
143
149
 
144
150
  ## सीमाएं
145
151
 
@@ -156,7 +162,7 @@ dsh `0.2.0-rc.2` (डेस्कटॉप और वेब) और `0.2.1-rc.2`
156
162
  - dsh की कतार में `move` कार्रवाई नहीं है, इसलिए प्लगइन का Host वाला हिस्सा कतार वाले संदेश को ही dsh की कतार में खिसकाता है (एक बदलाव, वही संदेश)। इमेज या फ़ाइलों वाले संदेश भी खिसकते हैं। सिर्फ़ आपके अपने संदेश खिसकते हैं: कतार में कोई लक्ष्य राउंड या किसी सवाल का जवाब अपनी जगह पर रहता है। अगर आपके खींचते समय कोई संदेश भेजा जाना शुरू हो जाता है, तो कुछ नहीं खिसकता और एक सूचना यह बताती है।
157
163
  - अगर नया वर्शन dsh की कोई सेटिंग नहीं बदलता, तो dsh 0.2.1 अपडेट तुरंत लोड करता है; बाकी मामलों में, और dsh 0.2.0 पर, इसे लोड करने के लिए dsh रीस्टार्ट करें। प्लगइन आपके लिए dsh कभी रीस्टार्ट नहीं करता। जिन वेब/CLI प्रोफ़ाइल में dsh का प्लगइन मैनेजर नहीं है, वे सिर्फ़ नए वर्शन की जानकारी देती हैं।
158
164
  - **कंपोज़र में फ़ोकस बनाए रखें** सिर्फ़ `/` कमांड या स्किल के बाद फ़ोकस वापस देता है। जब तक dsh कमांड प्रोसेस करता है, कंपोज़र कुछ मिलीसेकंड तक सिर्फ़ पढ़ने लायक रहता है, इसलिए उस समय दबाई गई कुंजियां खो जाती हैं। अगर dsh का `/` मेन्यू अभी भी खुला है, तो `Enter` हाइलाइट की गई पंक्ति चुनता है और कुछ नहीं भेजता।
159
- - **मोबाइल कनेक्ट** सिर्फ़ macOS पर काम करता है (यह `en0`, `openssl`, `swift` और `dns-sd` इस्तेमाल करता है)। यह तय पोर्ट 19390 और 19391 इस्तेमाल करता है, इसलिए हर Mac पर एक समय में सिर्फ़ एक dsh इसे चला सकता है (फ़ोन की Mac सूची में हर Mac एक एंट्री है)। फ़ोन को सूचनाएं सिर्फ़ तब मिलती हैं, जब Tether खुला हो या अभी-अभी बैकग्राउंड में गया हो (कोई पुश सेवा नहीं)। iOS ऐप अभी App Store पर नहीं है: इसे Xcode से `tether/ios` से बनाएं।
165
+ - **मोबाइल कनेक्ट** सिर्फ़ macOS पर काम करता है (यह `en0`, `openssl`, `swift` और `dns-sd` इस्तेमाल करता है)। यह तय पोर्ट 19390 और 19391 इस्तेमाल करता है, इसलिए हर Mac पर एक समय में सिर्फ़ एक dsh इसे चला सकता है (फ़ोन की Mac सूची में हर Mac एक एंट्री है)। फ़ोन को सूचनाएं सिर्फ़ तब मिलती हैं, जब Tether खुला हो या अभी-अभी बैकग्राउंड में गया हो (कोई पुश सेवा नहीं)। iOS ऐप अभी App Store पर नहीं है: इसे Xcode से `tether/ios` से बनाएं। Tether के हरे बिंदु Mac के हिसाब से चलते हैं: जिस चैट को आप dsh में खोलते हैं, उसका बिंदु फ़ोन पर भी हट जाता है। जिस चैट को आप Tether में खोलते हैं, उसका बिंदु सिर्फ़ फ़ोन पर हटता है। Mac पर dsh का अपना बिंदु तब तक रहता है, जब तक आप चैट को वहां नहीं खोलते।
160
166
  - सेशन लिंक चैट के अंदर काम करता है; उस पर क्लिक करने से चैट नहीं खुलती।
161
167
  - रीस्टार्ट से पहले भेजी गई सूचना पर क्लिक करने से सिर्फ़ dsh सामने आता है।
162
168
  - सक्रिय प्रोजेक्ट dsh के सेव किए गए प्रोजेक्ट क्रम के ज़रिए खिसकाए जाते हैं, इसलिए नया क्रम रीस्टार्ट के बाद भी बना रहता है। किसी प्रोजेक्ट से बाहर की चैट ("बिना समूह") नहीं खिसकाई जा सकतीं; dsh उन्हें हमेशा आखिर में दिखाता है।
@@ -165,6 +171,7 @@ dsh `0.2.0-rc.2` (डेस्कटॉप और वेब) और `0.2.1-rc.2`
165
171
  - dsh में नई चैट के प्रोजेक्ट मेन्यू में भी कोई एक्सटेंशन पॉइंट नहीं है, इसलिए **प्रोजेक्ट खोजें** बॉक्स और A–Z क्रम dsh के मेन्यू मार्कअप से जुड़ते हैं। अगर dsh का कोई अपडेट वह मार्कअप बदलता है, तो मेन्यू वैसा ही दिखता है जैसा dsh उसे बनाता है: सेव किए गए क्रम में और बिना खोज बॉक्स के। A–Z क्रम सिर्फ़ एक व्यू है: यह dsh का सेव किया गया प्रोजेक्ट क्रम नहीं बदलता।
166
172
  - dsh में कंपोज़र के संकेत के लिए भी कोई एक्सटेंशन पॉइंट नहीं है, इसलिए **अगले संदेश का अनुमान** का टेक्स्ट dsh के अपने प्लेसहोल्डर (`[data-composer-placeholder]`) के ऊपर दिखता है। अगर dsh का कोई अपडेट वह मार्कअप बदलता है, तो कोई अनुमान नहीं दिखता। इसके चालू रहते, हर पूरे हुए टर्न पर एक छोटी मॉडल कॉल होती है।
167
173
  - **टाइप करते समय पूरा करें** अपना टेक्स्ट dsh के अपने कंपोज़र संकेत से दिखाता है (`--dsh-composer-hint` स्टाइल, जिसे dsh स्लैश कमांड के आर्ग्युमेंट संकेत के लिए इस्तेमाल करता है)। यह स्लैश कमांड पर, फ़ाइल या सिंबल चिप वाले संदेश पर, या कर्सर के संदेश के आख़िर में न होने पर नहीं चलता। अगर dsh का कोई अपडेट वह स्टाइल बदलता है, तो पूरा करने का कोई सुझाव नहीं दिखता। टाइप करते समय हर ठहराव पर एक मॉडल कॉल होती है।
174
+ - **प्रॉम्प्ट बेहतर करें** सिर्फ़ प्रोजेक्ट का छोटा सारांश, बदले गए पाथ और वे पाथ देखता है जिनके नाम आपके शब्दों से मिलते हैं: खुद कोड नहीं। इसलिए यह सही फ़ाइल चूक सकता है, और सिर्फ़ वही पाथ बताता है जो उसे दिए गए थे। भेजने से पहले नया टेक्स्ट पढ़ें। यह स्लैश कमांड पर या फ़ाइल या सिंबल चिप वाले संदेश पर नहीं चलता (नया टेक्स्ट सादा टेक्स्ट होता है, इसलिए चिप खो जाती), और एक संदेश में ज़्यादा से ज़्यादा 8,000 अक्षर हो सकते हैं। इमेज जुड़ी रहती हैं: सिर्फ़ टेक्स्ट बदलता है। हर क्लिक पर एक मॉडल कॉल होती है; किसी शक्तिशाली मॉडल को एक मिनट लग सकता है (`Esc` रद्द करता है)।
168
175
  - बिल्ट-इन सपोर्ट का अनुरोध upstream में किया गया है: कतार के `move` के लिए [#773](https://github.com/deepseek-ai/deepseek-harness/discussions/773), जारी रखें वाली स्थिति के लिए [#9269](https://github.com/deepseek-ai/deepseek-harness/discussions/9269)।
169
176
 
170
177
  ## अक्सर पूछे जाने वाले सवाल
@@ -189,6 +196,8 @@ dsh `0.2.0-rc.2` (डेस्कटॉप और वेब) और `0.2.1-rc.2`
189
196
 
190
197
  **अनुमान कौन-सा मॉडल लिखता है?** वह मॉडल, जिसे आप **सेटिंग → Composer Plus → अगले संदेश का अनुमान → मॉडल** में चुनते हैं। यह सूची dsh की अपनी मॉडल सूची है। **dsh डिफ़ॉल्ट** dsh के डिफ़ॉल्ट मॉडल के अनुसार चलता है। अगर dsh चुने गए मॉडल को अब सूची में नहीं दिखाता, तो अनुमान डिफ़ॉल्ट मॉडल इस्तेमाल करता है। **टाइप करते समय पूरा करें** का अपना **मॉडल** मेन्यू है: **अगले संदेश के अनुमान जैसा** (डिफ़ॉल्ट) अनुमान वाले मॉडल के अनुसार चलता है; कोई दूसरा चुनाव सिर्फ़ पूरा करने के सुझावों के लिए इस्तेमाल होता है। अगर dsh वह मॉडल अब सूची में नहीं दिखाता, तो पूरा करने के सुझाव अनुमान वाला मॉडल इस्तेमाल करते हैं।
191
198
 
199
+ **क्या dsh मेरा प्रॉम्प्ट भेजने से पहले उसे बेहतर कर सकता है, जैसे Roo Code या Augment का Enhance prompt बटन?** हां, **प्रॉम्प्ट बेहतर करें** के साथ (डिफ़ॉल्ट रूप से चालू): कोई मोटा-मोटा अनुरोध टाइप करें और मॉडल मेन्यू के पास जादुई छड़ी पर क्लिक करें। यह इस चैट और प्रोजेक्ट को संदर्भ के रूप में इस्तेमाल करके, आपकी भाषा में टेक्स्ट दोबारा लिखता है, और उसे भेजता नहीं। `Cmd/Ctrl+Z` या **सुधार वापस लें** आपका टेक्स्ट वापस लाता है। इसका मॉडल **सेटिंग → Composer Plus → प्रॉम्प्ट बेहतर करें → मॉडल** में चुनें।
200
+
192
201
  **dsh में कतार वाले संदेशों का क्रम कैसे बदलें?** कतार वाले संदेश पर ⠿ हैंडल खींचें, या उस पर फ़ोकस करके `↑` / `↓` दबाएं।
193
202
 
194
203
  **एक चैट में ऑटो रिव्यू को एक ही टूल के बारे में बार-बार पूछने से कैसे रोकें?** मंज़ूरी कार्ड पर **इस चैट के लिए अनुमति दें** पर क्लिक करें। यह सिर्फ़ उसी चैट में उसी तय टूल पर लागू होता है; इसे हेडर की चिप से रद्द करें।
@@ -219,8 +228,12 @@ SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-sidebar-projects.mjs /pa
219
228
  PLAYWRIGHT=/path/to/playwright node test/browser-recent-finished.mjs /path/to/dsh/lib/bin.js
220
229
  # Order by status (fake model + Schedule): real-app test + its thumbnail
221
230
  SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-status-order.mjs /path/to/dsh/lib/bin.js
222
- # every Settings feature row shows a loading screenshot
231
+ # every Settings feature row shows a loading screenshot and a ? link to its README row
223
232
  PLAYWRIGHT=/path/to/playwright node test/browser-settings-shots.mjs /path/to/dsh/lib/bin.js
233
+ # What's new after an update: the release notes show once, Esc and Close close them
234
+ PLAYWRIGHT=/path/to/playwright node test/browser-whats-new.mjs /path/to/dsh/lib/bin.js
235
+ # README feature anchors (the ? links) on github.com, headless: each #feature-… shows the start of its row
236
+ PLAYWRIGHT=/path/to/playwright node test/browser-readme-anchors.mjs
224
237
  # Keep composer focus (fake model + demo skill): typing goes on after a / command + its thumbnail
225
238
  SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-keep-focus.mjs /path/to/dsh/lib/bin.js
226
239
  # Mobile connect: switch on, QR popover, a fake iPhone pairs and calls dsh through the gateway, switch off + its thumbnail
@@ -235,14 +248,17 @@ SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-export-markdown.mjs /pat
235
248
  SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-content-search.mjs /path/to/dsh/lib/bin.js
236
249
  # Turn rollback + Delete chat (fake model, made-up git project): bash edit → ↶ Chat and files → files back, .git unchanged; Delete… → Trash + its thumbnails
237
250
  SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-turn-rollback.mjs /path/to/dsh/lib/bin.js
251
+ # Improve prompt (fake model, made-up git project): the wand sends the draft with the chat and the project, the answer replaces the draft, Cmd+Z and Undo bring it back + its thumbnail
252
+ SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-prompt-improve.mjs /path/to/dsh/lib/bin.js
238
253
  ```
239
254
 
240
255
  ```sh
241
256
  npm run build:locales # after editing locales/<id>.json
257
+ npm run build:readme # after editing docs/features.json
242
258
  npm test
243
259
  ```
244
260
 
245
- **नई सुविधाओं का नियम:** सेटिंग → Composer Plus में हर सुविधा की पंक्ति एक स्क्रीनशॉट दिखाती है। सुविधा का id `client.js` में `SHOT_OF` और `index.js` में `SHOTS` में जोड़ें, और `assets/features/<id>.webp` शिप करें (अस्थायी डेमो dsh से लिया गया, अंग्रेज़ी UI, लगभग 60 kB या कम)। सुविधा को उसी इमेज के साथ README टेबल में जोड़ें: `README.md` में और हर अनुवादित `README.<id>.md` में। जब किसी सुविधा का स्क्रीनशॉट नहीं होता, तो `test/shots.test.mjs` विफल होता है, और `test/browser-settings-shots.mjs` असली सेटिंग पेज जांचता है। हर बदलाव की पूरी चेकलिस्ट [AGENTS.md](AGENTS.md) में है।
261
+ **नई सुविधाओं का नियम:** सेटिंग → Composer Plus में हर सुविधा की पंक्ति एक स्क्रीनशॉट दिखाती है। सुविधा का id `client.js` में `SHOT_OF` और `index.js` में `SHOTS` में जोड़ें, और `assets/features/<id>.webp` शिप करें (अस्थायी डेमो dsh से लिया गया, अंग्रेज़ी UI, लगभग 60 kB या कम)। सुविधा को उसी इमेज के साथ `docs/features.json` में जोड़ें और `npm run build:readme` चलाएं: यह `README.md` और हर अनुवादित `README.<id>.md` की सुविधा टेबल और `llms.txt` की सूची लिखता है। जब किसी सुविधा का स्क्रीनशॉट नहीं होता, तो `test/shots.test.mjs` विफल होता है, और `test/browser-settings-shots.mjs` असली सेटिंग पेज जांचता है। हर बदलाव की पूरी चेकलिस्ट [AGENTS.md](AGENTS.md) में है।
246
262
 
247
263
  टेस्ट असली `client.js` को नकली React/DOM पर और असली `index.js` (Host वाला हिस्सा) को एक अस्थायी git रिपॉज़िटरी पर चलाते हैं। Tether गेटवे के टेस्ट (`test/tether-gateway.test.mjs`) एक मॉक dsh होस्ट और असली TLS गेटवे इस्तेमाल करते हैं। iPhone ऐप `tether/ios` में है (देखें [tether/README.md](tether/README.md) और [tether/AGENTS.md](tether/AGENTS.md))। `node test/browser-history.mjs '<dsh web URL with ?token=…>'` एक अस्थायी `dsh web` पर, जिसका अपना `DSH_HOME` है, असली ब्राउज़र में इनपुट इतिहास जांचता है।
248
264