# ⬆️ dsh-plugin-upgrade-rc1
- **1024 स्टोर चैनल**: एक बार `npm i -g dsh1024` चलाएँ, फिर `dsh1024 plugin --profile web add dsh-plugin-upgrade-rc1` (यह [deepseek1024.com](https://deepseek1024.com) की इंस्टॉल रैंकिंग में गिना जाता है)।
[](https://gitee.com/perrylink/dsh-plugin-upgrade-rc1)
**DeepSeek Harness के लिए संस्करण-लॉक्ड प्लगइन अपग्रेड स्किल — `0.1.5-alpha.1` → `0.1.5-rc.1`।**
*एक कॉरिडोर कार्ड और एक शून्य-निर्भरता सीम स्कैनर, ताकि चुपचाप माउंट होना बंद कर चुका क्लाइंट आधा हिस्सा कभी «typecheck हरा है» न समझा जाए।*
> **आधिकारिक रिपॉज़िटरी।** यह dsh-plugin-upgrade-rc1 की एकमात्र आधिकारिक रिपॉज़िटरी है, जिसे PerryLink संभालता है। अन्य खातों की समान-नाम वाली रिपॉज़िटरियाँ इससे संबद्ध नहीं हैं।
[](LICENSE)
[](https://github.com/topics/dsh-plugin)
[](https://github.com/PerryLink/dsh-plugin-doctor#verified-徽章)
[](#)
[](https://github.com/PerryLink/dsh-plugin-upgrade-rc1/actions)
[](https://github.com/PerryLink/dsh-plugin-upgrade-rc1/releases)
[](https://www.npmjs.com/package/dsh-plugin-upgrade-rc1)
[](https://www.npmjs.com/package/dsh-plugin-upgrade-rc1)
[English](README.md) · [简体中文](README.zh.md) · [Español](README.es.md) · [Português](README.pt.md) · [हिन्दी](README.hi.md)
---
## संगतता
| सतह | स्थिति |
|---|---|
| हार्नेस | DeepSeek Harness `0.1.5-rc.1` (tag `dsh-v0.1.5-rc.1` = `183f08e9c6dd`; कॉरिडोर की शुरुआत `dsh-v0.1.5-alpha.1` = `5dda764ed3aa`)। पीयर बैंड `@deepseek-ai/dsh-skill >=0.1.2-rc.1 <0.2.0 \|\| >=0.1.5-alpha.1 <0.2.0`, `@deepseek-ai/cordis ^4.0.2`, `@deepseek-ai/schemastery ^3.18.2`। |
| Node | `^22.19.0 \|\| >=24.0.0` |
| प्लेटफ़ॉर्म | जहाँ Node चले; स्कैनर केवल फ़ाइल सिस्टम पढ़ता है और प्लेटफ़ॉर्म-निरपेक्ष है |
| मॉडल | केवल-पाठ मॉडल पूरी तरह समर्थित; स्किल एक Markdown है, किसी टूल या विज़न की आवश्यकता नहीं |
| दायरा | **केवल एक कॉरिडोर**: `0.1.5-alpha.1` → `0.1.5-rc.1`। यह सामान्य माइग्रेशन फ़्रेमवर्क नहीं है। |
| सहोदर कॉरिडोर | `0.1.3-alpha.1` → `0.1.5-alpha.1` वह [`dsh-plugin-upgrade`](https://github.com/PerryLink/dsh-plugin-upgrade) है। यदि आपका पीयर बैंड `0.1.5-alpha.1` से नीचे है तो पहले वह कार्ड पढ़ें; यह पैकेज उन सीमों को दोबारा कवर नहीं करता। |
## आपको क्या मिलता है
दो हिस्से, एक ही सीम कैटलॉग:
- **पैकेज में शामिल एजेंट स्किल (`plugin-upgrade-015rc1`)** — कॉरिडोर कार्ड और ठीक-करो-और-सत्यापित-करो चक्र। मॉडल इसे केवल तब लोड करता है जब कार्य को वास्तव में आवश्यकता हो; यह पैकेज सिस्टम प्रॉम्प्ट का कोई अनुच्छेद नहीं जोड़ता और कोई टूल पंजीकृत नहीं करता।
- **शून्य-निर्भरता CLI (`dsh-plugin-upgrade-rc1-scan`)** — दस सीमों (`C1`–`C5`, `H1`–`H4`, `P1`) के `file:line` तथ्य बताता है, जो 2026-09-10 को tag रेंज से दोबारा पढ़े गए। किसी भी error-स्तर की हिट पर `1` लौटाता है, इसलिए सीधे CI में लगता है।
यह उस विफलता-विधा के लिए है जिसे खत्म करने के लिए यह कॉरिडोर बना है: **इस छलांग की टूटन चुपचाप होती है।** नंगा क्लाइंट स्लॉट `conversation` बिना किसी alias के हटा दिया गया, और `ctx.slots.inject()` कॉलबैक केवल तब चलाता है जब declaration मौजूद हो — इसलिए उसे लक्षित करता क्लाइंट आधा हिस्सा **चुपचाप माउंट होना बंद** कर देता है: कोई त्रुटि नहीं, कोई लॉग पंक्ति नहीं, कोई बिल्ड विफलता नहीं। `typecheck` + `test` को दो वर्ग की टूटन पार कर जाती हैं:
1. टाइप लाइन पुरानी है, इसलिए रेपो **पुराने स्लॉट कैटलॉग** के विरुद्ध कंपाइल होता है (सीम `C3`);
2. परीक्षण पुरानी आकृति के विरुद्ध mock किए गए हैं, इसलिए वे पास हो जाते हैं जबकि होस्ट आपका योगदान गिरा देता है।
ईमानदार आकलन: इस पैकेज की स्वयं की वर्कस्पेस स्कैन में परिवार के क्लाइंट हिस्सों ने केवल **8** स्लॉट कुंजियाँ इस्तेमाल कीं, और सभी 8 rc.1 में जीवित हैं — उनके लिए यह टूटन **अव्यक्त है, वास्तविक नहीं**। जो टूटते हैं वे तीसरे पक्ष के क्लाइंट प्लगइन हैं जो नंगी `conversation` कुंजी को लक्षित करते थे, और वे चुपचाप टूटते हैं।
## त्वरित शुरुआत
```sh
# 1. बंडल को अपने प्रोफ़ाइल में इंस्टॉल करें
dsh plugin --profile web add dsh-plugin-upgrade-rc1
# 2. पुष्टि करें कि पंक्ति माउंट हुई
dsh --profile web --dump-config | grep -A3 'id: dsh-plugin-upgrade-rc1'
# 3. जिस प्लगइन को अपग्रेड करना है उसे स्कैन करें
npx dsh-plugin-upgrade-rc1-scan --repo ../my-plugin
```
फिर एजेंट से `plugin-upgrade-015rc1` स्किल इस्तेमाल करने को कहें, या कार्ड के साथ स्वयं चक्र चलाएँ:
`skills/plugin-upgrade-015rc1/references/v0.1.5-alpha.1-to-v0.1.5-rc.1.md`।
## इंस्टॉल और अनइंस्टॉल
```sh
dsh plugin --profile web add dsh-plugin-upgrade-rc1 # npm से
dsh plugin --profile web add "github:PerryLink/dsh-plugin-upgrade-rc1#main" # स्रोत से
dsh plugin --profile web remove dsh-plugin-upgrade-rc1 # अनइंस्टॉल (प्रतिवर्ती)
```
बंडल इंस्टॉल करने से केवल एक स्किल पंजीकृत होती है; पंक्ति हटाने से स्किल हट जाती है। CLI एक सामान्य `npx` लक्ष्य है और उसे प्रोफ़ाइल की आवश्यकता नहीं।
## कॉन्फ़िगरेशन
हर कुंजी वैकल्पिक है और प्रोफ़ाइल पैच में रहती है:
| कुंजी | डिफ़ॉल्ट | अर्थ |
|---|---|---|
| `enabled` | `true` | पैकेज में शामिल स्किल पंजीकृत करें। निर्भरता माउंट रखते हुए चुप रहने के लिए `false`। |
| `skillName` | `plugin-upgrade-015rc1` | `skillsRoot` के अंतर्गत पंजीकृत होने वाली डायरेक्टरी, और कैटलॉग में दिखने वाला नाम। |
| `skillsRoot` | पैकेज का अपना `./skills` | जहाँ `/SKILL.md` है। इसी ढाँचे का पुनरुपयोग करने के लिए इसे अपने कार्ड पर इंगित करें। |
| `userInvocable` | `true` | मॉडल के अतिरिक्त कोई व्यक्ति भी नाम से स्किल बुला सके या नहीं। |
```yaml
- insert:
- id: dsh-plugin-upgrade-rc1
name: dsh-plugin-upgrade-rc1
config:
skillName: plugin-upgrade-015rc1
```
प्लगइन ज़ोर से माउंट होता है: `SKILL.md` गायब होना, खाली बॉडी, या `name` रहित frontmatter — तीनों खाली स्किल पंजीकृत करने के बजाय माउंट विफल कर देते हैं।
## सतहें
**स्किल** — `plugin-upgrade-015rc1` (डिफ़ॉल्ट रूप से मॉडल और व्यक्ति दोनों द्वारा आमंत्रित). बॉडी: 6-चरणीय चक्र। संदर्भ: कॉरिडोर कार्ड। स्क्रिप्ट: डिटेक्टर, स्किल डायरेक्टरी के भीतर, ताकि सापेक्ष पथ हल हों।
**CLI** — `dsh-plugin-upgrade-rc1-scan`:
```sh
dsh-plugin-upgrade-rc1-scan [--repo ] [--json ] [--seams C1,P1] [--quiet]
```
| फ़्लैग | अर्थ |
|---|---|
| `--repo ` | स्कैन करने वाली रिपॉज़िटरी (डिफ़ॉल्ट: वर्तमान डायरेक्टरी)। |
| `--json ` | मशीन-पठनीय रिपोर्ट भी लिखें (`repo`, `scannedAt`, `files`, `hits[]`, `bySeam`)। |
| `--seams C1,P1` | केवल निर्दिष्ट सीमों तक सीमित करें। |
| `--quiet` | मानव-पठनीय आउटपुट बंद करें (`--json` के साथ उपयोगी)। |
एग्ज़िट कोड: `0` कोई error-स्तर हिट नहीं · `1` कम से कम एक error-स्तर हिट · `2` उपयोग या स्कैन विफलता। स्वच्छ स्कैन आवश्यक है पर पर्याप्त नहीं — इस कॉरिडोर का निर्गम मानदंड असली होस्ट स्मोक **और** क्लाइंट आधे हिस्से के लिए असली ब्राउज़र अभिकथन है।
## दस सीमें
| Id | स्तर | `0.1.5-rc.1` लाइन में क्या बदला |
|---|---|---|
| `C1` | error | नंगा क्लाइंट स्लॉट `conversation` हटाया गया और उसकी जगह `main` + `main.conversation` आया, **कोई alias नहीं**। `ctx.slots.inject()` केवल तब चलता है जब declaration मौजूद हो, इसलिए उसे लक्षित करने वाला प्लगइन **चुपचाप** माउंट होना बंद कर देता है। |
| `C2` | error | `@deepseek-ai/dsh-client-ui-sidebar-textpreview` का नाम `…-sidebar-documentpreview` हो गया; पुराना नाम गायब है और कोई shim पैकेज नहीं। |
| `C3` | error | क्लाइंट पक्ष का झूठा हरा: dev/test टाइप `0.1.5-alpha.*` लाइन पर pinned, या `tsconfig` `paths` alias किसी अनुपस्थित checkout डायरेक्टरी की ओर इंगित → TypeScript चुपचाप पुराने कैटलॉग पर लौट जाता है। |
| `C4` | warn | rc.1 ने वैश्विक मुख्य-पैनल मॉडल जोड़ा (`main`, `sidebar.panellist`, `ctx.layout.selectPanel(MainPanelId \| null)`) और लगभग हर स्लॉट में `usePanelInfo` मानक prop जोड़ा। |
| `C5` | warn | दस्तावेज़ पूर्वावलोकन keyed स्लॉट `sidebar.right.tab.document` (`DocumentContent`) पर चला गया; `sidebar.right.pane.tab` बचा है पर उसका पैरेंट प्रवेश `rightbar.session` हो गया। |
| `H1` | warn | `KNOWN_SESSION_EVENT_TYPES` में `deliverables/presented` और `subagent/catalog` जुड़े — fail-closed शब्दावली बढ़ी। |
| `H2` | warn | नए `present` टूल की पंक्ति `tool.call.toolview` की कुंजी `'present'` लेती है, जो alpha.1 में खाली थी। |
| `H3` | info | नई वैकल्पिक क्षमताएँ: `ctx.sessionFeedback`, `ctx.layout.beginNavigation()`, `ctx.workspaces.openSession()` / `openWorkspace()` / `forkSession()`। कार्ड पर सूचीबद्ध; जानबूझकर कोई स्वचालित पहचान नहीं। |
| `H4` | info | DeepSeek अडैप्टर का डिफ़ॉल्ट सलाहकारी मॉडल कैटलॉग अब `deepseek-flash` (DeepSeek-V41-Flash) से शुरू होता है। |
| `P1` | error | पीयर बैंड का दूसरा खंड बना रहना चाहिए: अकेला `>=0.1.2-rc.1 <0.2.0`, npm semver के prerelease-tuple नियम के तहत `0.1.5-rc.1` को **अस्वीकार** करता है (semver 7.8.5 पर मापा गया `false`)। |
`C4`, `C5`, `H1`, `H2`, `H4` जानबूझकर सलाहकारी हैं: उनके वैध मेल हैं (पहले से नई API इस्तेमाल करता रेपो, दस्तावेज़ snapshot, प्लगइन की अपनी मॉडल-id तालिका), इसलिए स्कैनर उन्हें विफलता नहीं बल्कि मानवीय समीक्षा के सुराग के रूप में बताता है।
## यह क्या कवर नहीं करता
- **पिछला कॉरिडोर।** `0.1.3-alpha.1` → `0.1.5-alpha.1` वह `dsh-plugin-upgrade` है। यदि आपका पीयर बैंड `0.1.5-alpha.1` से नीचे है तो पहले उसका कार्ड पढ़ें; यह पैकेज उन सीमों को दोबारा कवर नहीं करता।
- **सत्र-प्रारूप सीमें।** `assistant/message.stream`, `SessionHandleReadResult`, `EpochHeader.system`, `ctx.agent`, `Inbox` और `SystemPrompt.persona` इस छलांग में **नहीं बदलते** (`packages/core/session/src` का पूरा diff दो जुड़े event-type literals और एक टिप्पणी पंक्ति है), इसलिए उन्हें यहाँ दोहराना विचलन होगा। वे सहोदर कार्ड पर हैं।
- **भविष्य की लाइनें।** `0.1.5-rc.1` → अंतिम और उसके बाद सब कुछ दायरे से बाहर; कार्ड जानबूझकर संस्करण-लॉक्ड है, क्योंकि बहकता कार्ड किसी कार्ड से बुरा है।
- **DSH की उपयोगकर्ता-मुखी अपग्रेड राह।** यह पैकेज *प्लगइन स्रोत कोड* अपग्रेड करता है, उपयोगकर्ता की harness इंस्टॉलेशन नहीं।
- **थीम टोकन।** `docs/web-styling.md` में इस रेंज में शून्य परिवर्तन है।
- **प्रमाण।** स्वच्छ स्कैन एक परिकल्पना है। निर्गम मानदंड असली होस्ट स्मोक (अस्थायी `DSH_HOME`, rc.1 CLI, `plugin add `, `--dump-config`) और हर क्लाइंट-पक्ष हिट के लिए असली ब्राउज़र अभिकथन है।
## सुरक्षा सीमाएँ
- **केवल-पठन स्कैन।** CLI स्कैन की जा रही रिपॉज़िटरी के भीतर कभी नहीं लिखता; `--json` केवल आपके दिए पथ पर लिखता है।
- **कोई नेटवर्क नहीं, कोई shell नहीं।** स्कैनर Node की मानक लाइब्रेरी के अलावा कुछ import नहीं करता और कोई प्रक्रिया नहीं चलाता।
- **कोई रहस्य नहीं।** पैकेज में कुछ भी क्रेडेंशियल, एनवायरनमेंट टोकन या सत्र डेटा नहीं पढ़ता।
- **सैंडबॉक्स स्मोक विधि।** कार्ड की असली-होस्ट जाँच `mkdtemp` वाला `DSH_HOME` इस्तेमाल करती है; आपका असली `~/.dsh` कभी नहीं छूती।
## विकास
```sh
npm install # या: pnpm install (रेपो में pnpm-lock.yaml है)
npm test # node --test: स्कैनर, कार्ड<->कैटलॉग समानता, असली Cordis + SkillRegistry
npm run verify:self-contained # हर import पैकेज के भीतर हल होता है
npm run verify:artifacts # tarball में स्किल, CLI और patch हैं, और परीक्षण शामिल नहीं
npm run check:readmes # पाँच-भाषा README स्थिरता
npm pack
```
स्कैनर के अपने संश्लेषित fixtures हैं — `fixtures/bad-repo` (जानबूझकर सभी error सीमें मौजूद) और `fixtures/good-repo` (अनुकूलित) — साथ ही पहले से `0.1.5-rc.1` पर pinned एक परिवार रेपो पर live negative, ताकि कैटलॉग में रिग्रेशन उपयोगकर्ता के बजाय इस सूट में विफल हो। `test/card.test.mjs` दावा करता है कि कार्ड और `lib/scan.mjs` **ठीक वही** सीम id और समान स्तर बताते हैं — साक्ष्य-बद्धता नियम एक मशीन गेट के रूप में।
## विषय टैग
`dsh`, `dsh-plugin`, `deepseek-harness`, `deepseek`, `cordis`, `plugin-upgrade`, `migration`, `skill`, `version-card`, `scanner`, `client-slots` (`package.json` के keywords के समान; `dsh-plugin` पारिस्थितिकी का दृश्यता चैनल है)।
## PerryLink DSH प्लगइन परिवार
PerryLink DSH प्लगइन परिवार का हिस्सा — 40+ रिपॉज़िटरियाँ, जो सत्र, स्मृति, अनुमतियाँ, डिलीवरी, प्रेक्षणीयता और डेवलपर टूलिंग को कवर करती हैं। कैटलॉग देखें [perrylink-dsh-catalog.perrylink.workers.dev](https://perrylink-dsh-catalog.perrylink.workers.dev) या [`dsh-plugin` विषय](https://github.com/topics/dsh-plugin) पर।
## लाइसेंस
Apache-2.0 — देखें [LICENSE](LICENSE)। इंस्टॉल-समय निर्भरताएँ और उनके लाइसेंस [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md) में सूचीबद्ध हैं; कुछ भी बंडल नहीं किया गया।