dsh-github-flow 0.1.8 → 0.2.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.
Files changed (60) hide show
  1. package/README.en.md +139 -54
  2. package/README.md +142 -54
  3. package/docs/architecture.md +19 -4
  4. package/docs/images/1.png +0 -0
  5. package/docs/images/3.png +0 -0
  6. package/docs/images/4.png +0 -0
  7. package/docs/npm-publish-guide.md +12 -0
  8. package/lib/api/route-helpers.d.ts +47 -0
  9. package/lib/api/route-helpers.js +134 -0
  10. package/lib/api/routes-actions.d.ts +9 -0
  11. package/lib/api/routes-actions.js +115 -0
  12. package/lib/api/routes-lifecycle.d.ts +9 -0
  13. package/lib/api/routes-lifecycle.js +75 -0
  14. package/lib/api/routes-overview.d.ts +11 -0
  15. package/lib/api/routes-overview.js +227 -0
  16. package/lib/api/routes-proxy.d.ts +18 -0
  17. package/lib/api/routes-proxy.js +63 -0
  18. package/lib/api/routes.d.ts +16 -6
  19. package/lib/api/routes.js +14 -504
  20. package/lib/client.js +383 -55
  21. package/lib/executor.d.ts +17 -0
  22. package/lib/executor.js +28 -0
  23. package/lib/main.d.ts +1 -0
  24. package/lib/main.js +40 -9
  25. package/lib/proxy.d.ts +87 -0
  26. package/lib/proxy.js +275 -0
  27. package/lib/renderers/markdown.d.ts +24 -0
  28. package/lib/renderers/markdown.js +493 -0
  29. package/lib/tools/api.d.ts +4 -0
  30. package/lib/tools/api.js +14 -4
  31. package/lib/tools/help.d.ts +31 -0
  32. package/lib/tools/help.js +212 -0
  33. package/lib/tools/issue.d.ts +32 -1
  34. package/lib/tools/issue.js +94 -17
  35. package/lib/tools/pr.d.ts +22 -1
  36. package/lib/tools/pr.js +67 -15
  37. package/lib/tools/release.d.ts +89 -0
  38. package/lib/tools/release.js +219 -0
  39. package/lib/tools/repo.d.ts +13 -1
  40. package/lib/tools/repo.js +46 -14
  41. package/lib/tools/run.d.ts +22 -1
  42. package/lib/tools/run.js +74 -14
  43. package/lib/tools/secret.d.ts +60 -0
  44. package/lib/tools/secret.js +175 -0
  45. package/lib/tools/skill.d.ts +63 -0
  46. package/lib/tools/skill.js +146 -0
  47. package/lib/types.d.ts +12 -0
  48. package/lib/updater.d.ts +8 -0
  49. package/lib/updater.js +9 -0
  50. package/lib/upgrade-manager.d.ts +4 -0
  51. package/lib/upgrade-manager.js +11 -1
  52. package/package.json +3 -2
  53. package/lib/client/icons.d.ts +0 -13
  54. package/lib/client/icons.js +0 -41
  55. package/lib/client/index.d.ts +0 -3
  56. package/lib/client/index.js +0 -36
  57. package/lib/client/panel.d.ts +0 -1
  58. package/lib/client/panel.js +0 -102
  59. package/lib/client/style.d.ts +0 -1
  60. package/lib/client/style.js +0 -555
package/README.en.md CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
  <p align="center">
12
12
  <b>Give DeepSeek Harness Agents native hands and feet to operate GitHub, crafting an immersive collaboration cockpit for developers.</b><br>
13
- Natively reuses host <code>gh</code> CLI login credentials to eliminate Personal Access Token (PAT) leaks; deeply bridges local Git workspaces with remote GitHub collaboration, equipped with <b>5 core domain Agent tools</b>, <b>human slash commands</b>, <b>Web UI visual cockpits</b>, and <b>cross-platform one-click seamless upgrades</b>.
13
+ Natively reuses host <code>gh</code> CLI login credentials to eliminate Personal Access Token (PAT) leaks; deeply bridges local Git workspaces with remote GitHub collaboration, equipped with <b>9 core domain Agent tools</b>, <b>human slash commands</b>, <b>Web UI visual cockpits</b>, and <b>cross-platform one-click seamless upgrades</b>.
14
14
  </p>
15
15
 
16
16
  <p align="center">
@@ -29,14 +29,50 @@ When using AI Agents for collaborative coding, developers frequently hit these f
29
29
  | **CI / Actions Failure Debugging** | Sifting through pages of Actions logs in a browser, copying stack traces to chat for debugging. | **Pinpoint Error Extraction**: Tell the Agent *"Why did CI fail?"*; Agent calls `github_run(log_failed)` to grab failed step logs and patch code instantly. |
30
30
  | **Security & Token Management** | Pasting plain-text Personal Access Tokens (PATs) in plugin configs, risking token leaks and permission sprawl. | **Zero Token Exposure**: Directly reuses local `gh auth login` credentials via native OS Keychains/Keyrings securely. |
31
31
  | **Context Switching Overhead** | Jumping back and forth between VS Code, browser GitHub tabs, and DSH chat windows. | **Immersive Dual Cockpit**: Live PR status, Actions pipelines, and 3D issue matrices right inside DSH. |
32
- | **First-Screen Latency & Loading** | Staring at full-screen spinners for 8~15s while waiting for heavy background `gh` processes. | **SWR 0ms Instant Render**: Instantly displays local persistent snapshots; dedicated settings modal to customize sync intervals and manual mode. |
32
+ | **First-Screen Latency & Loading** | Staring at full-screen spinners for 8~15s while waiting for heavy background `gh` processes. | **SWR 0ms Instant Render**: Instantly displays local persistent snapshots; dedicated settings modal to switch between SWR auto-sync and manual mode. |
33
33
  | **Plugin Upgrades & Maintenance** | Manually checking npm registry versions, complicated commands, fear of breaking configs. | **Idle Silent Detection + One-Click Upgrade**: Dual-registry acceleration, auto macOS/Windows adaptation, upgrade with one click. |
34
34
 
35
35
  ---
36
36
 
37
+ ## 🚀 Installation Guide
38
+
39
+ ### Step 1: Prerequisites
40
+ Ensure GitHub CLI (`gh`) is installed and authenticated:
41
+ ```bash
42
+ # Windows
43
+ winget install --id GitHub.cli
44
+
45
+ # macOS
46
+ brew install gh
47
+
48
+ # Login (one-time setup)
49
+ gh auth login
50
+ ```
51
+
52
+ ### Step 2: Install into DSH
53
+
54
+ Run in your DSH environment:
55
+
56
+ ```bash
57
+ # Scenario A: DSH Desktop Edition (Desktop Profile)
58
+ dsh plugin --profile desktop add dsh-github-flow
59
+
60
+ # Scenario B: DSH Web / CLI Environment
61
+ pnpm dsh plugin add dsh-github-flow
62
+ ```
63
+
64
+ > 💡 **Notice (24-Hour Supply-Chain Security Lock Window)**:
65
+ > DSH's bundled package manager enforces a supply-chain safety policy (`minimum-release-age = 24h`) by default to mitigate malicious package takeovers. Within **24 hours** of a new version release, running bare-name install commands without a version suffix will automatically fall back to the preceding stable version that has matured past 24 hours. To **install a newly released version immediately**, append the explicit version tag:
66
+ > ```bash
67
+ > dsh plugin --profile desktop add dsh-github-flow@<latest-version>
68
+ > ```
69
+ > Once 24 hours have passed since release, the standard bare-name command will resolve to the latest version automatically.
70
+
71
+ ---
72
+
37
73
  ## 🤖 Core Agent Tools: Equipping Agents with Native GitHub Powers
38
74
 
39
- Consolidates scattered GitHub endpoints into **5 core domain tools**, featuring **Token Budget Protection (default 24KB intelligent truncation)** and **Zero-argument CWD auto-binding**.
75
+ Consolidates scattered GitHub endpoints into **9 core domain tools**, featuring **Token Budget Protection (default 24KB intelligent truncation)**, **High-density Native Markdown Rendering (70%+ list output token reduction)** and **Zero-argument CWD auto-binding**.
40
76
 
41
77
  ### 1. `github_pr`: Pull Request Lifecycle & Automated Code Review
42
78
  > **Example Agent Prompts**:
@@ -46,13 +82,15 @@ Consolidates scattered GitHub endpoints into **5 core domain tools**, featuring
46
82
  > - *"Did CI checks pass for PR #8? If so, squash merge it and delete the source branch."*
47
83
 
48
84
  * **Supported Actions**:
49
- * `list`: List open PRs with author, review decisions, and CI status;
85
+ * `list`: List open PRs with author, review decisions, and CI status (`state` / `author` / `limit` filters);
50
86
  * `view`: Inspect PR description, metadata, and mergeability;
51
- * `diff`: Retrieve complete code diffs (safely truncated against token limits);
87
+ * `diff`: Retrieve complete code diffs (`stat_only` for file-change overview, safely truncated against token limits);
52
88
  * `checks`: Audit CI status check rollups and test suites;
53
89
  * `create`: Auto-create PRs (supports draft mode & `--dry-run`);
90
+ * `checkout`: 🆕 Check out PR code to a local branch for sandboxed testing;
91
+ * `status`: 🆕 Inspect merge conflict status (`CLEAN` / `CONFLICT`) for the current branch's PR;
54
92
  * `review`: Submit code reviews (`APPROVE`, `REQUEST_CHANGES`, `COMMENT`);
55
- * `merge`: Merge pull requests (`squash` / `merge` / `rebase`, optional `delete_branch`).
93
+ * `merge`: Merge pull requests (`squash` / `merge` / `rebase`, optional `delete_branch`; requires `confirm: true`).
56
94
 
57
95
  ---
58
96
 
@@ -64,8 +102,9 @@ Consolidates scattered GitHub endpoints into **5 core domain tools**, featuring
64
102
 
65
103
  * **Supported Actions**:
66
104
  * `log_failed` (🔥 **Killer Feature**): **Optimized for Agents**; automatically extracts isolated error logs from failed steps for instant root-cause analysis;
67
- * `list`: View recent workflow runs and conclusions;
105
+ * `list`: View recent workflow runs and conclusions (`branch` / `status: failure` filters to pin down broken builds);
68
106
  * `view`: Inspect jobs and steps for a specific run ID;
107
+ * `trigger`: 🆕 Manually dispatch `workflow_dispatch` workflows to verify fixes immediately;
69
108
  * `rerun`: Re-trigger failed CI runs;
70
109
  * `cancel`: Cancel in-progress workflows.
71
110
 
@@ -79,11 +118,13 @@ Consolidates scattered GitHub endpoints into **5 core domain tools**, featuring
79
118
  > - *"Close Issue #45."*
80
119
 
81
120
  * **Supported Actions**:
82
- * `list`: Query issues with flexible filters;
121
+ * `list`: Query issues with flexible filters (`state` / `labels` / `assignees` / `limit`);
83
122
  * `view`: Read issue body and discussion history;
84
123
  * `create`: Create new issues (title, body, labels, assignees);
124
+ * `edit`: 🆕 Update title, body, and add/remove labels;
125
+ * `develop`: 🆕 Create a linked development branch from an issue and check it out locally;
85
126
  * `comment`: Append debugging updates or notes;
86
- * `close` / `reopen`: Manage issue lifecycle states.
127
+ * `close` (requires `confirm: true`) / `reopen`: Manage issue lifecycle states.
87
128
 
88
129
  ---
89
130
 
@@ -94,7 +135,8 @@ Consolidates scattered GitHub endpoints into **5 core domain tools**, featuring
94
135
  > - *"Show repository metadata and star count for cli/cli."*
95
136
 
96
137
  * **Supported Actions**:
97
- * `view`: View repository metadata (default branch, stars, description, visibility);
138
+ * `view`: View repository metadata (default branch, stars, description, topics & license);
139
+ * `sync`: 🆕 One-click fork sync with upstream to fix stale-fork CI gate failures;
98
140
  * `search_code`: Search code symbols in current or specified repositories;
99
141
  * `search_repos`: Search open-source GitHub repositories globally.
100
142
 
@@ -104,11 +146,72 @@ Consolidates scattered GitHub endpoints into **5 core domain tools**, featuring
104
146
  > **Example Agent Prompts**:
105
147
  > - *"Call GitHub API to fetch latest releases of current repository and parse tag names with jq."*
106
148
 
107
- * **Core Strength**: Call any GitHub REST or GraphQL API using local credentials with `--jq` filtering and `raw` text mode.
149
+ * **Core Strength**: Call any GitHub REST or GraphQL API using local credentials with `--jq` filtering, `raw` text mode, and `paginate` auto-aggregation.
150
+
151
+ ---
152
+
153
+ ### 6. `github_release`: Version Releases & Build Asset Delivery 🆕
154
+ > **Example Agent Prompts**:
155
+ > - *"Publish v0.2.0 for this repository with auto-generated release notes."*
156
+ > - *"Upload dsh-github-flow-0.2.0.tgz to the v0.2.0 release."*
157
+
158
+ * **Supported Actions**:
159
+ * `list` / `view`: Browse release history and per-version details (assets, notes);
160
+ * `create`: Create releases (`generate_notes` auto-notes, `draft` / `prerelease` flags, attach assets directly);
161
+ * `upload` / `download`: Upload `.tgz` build artifacts or download assets by glob pattern;
162
+ * `delete` (requires `confirm: true`): Delete a release, optionally cleaning up its tag.
108
163
 
109
164
  ---
110
165
 
111
- ## 🖥️ Native Web UI Workspace & Sync Preferences
166
+ ### 7. `github_secret`: CI/CD Secrets Management 🆕
167
+ > **Example Agent Prompts**:
168
+ > - *"Update the NPM_TOKEN secret for this repository."*
169
+ > - *"Show which secrets are configured for this repo."*
170
+
171
+ * **Supported Actions**:
172
+ * `list`: Show secret names and update times (the GitHub API never exposes secret values);
173
+ * `set`: Set/update secret values — **passed via subprocess stdin, never on the command line (ps-safe), never echoed in output**;
174
+ * `delete` (requires `confirm: true`): Remove a secret.
175
+ * Supports repository / organization (`org`) / environment (`env`) scopes across `actions` / `codespaces` / `dependabot` / `agents` apps.
176
+
177
+ ---
178
+
179
+ ### 8. `github_skill`: Cross-Agent Open-Source Skills Discovery 🆕
180
+ > **Example Agent Prompts**:
181
+ > - *"Search GitHub for an Agent Skill about code review."*
182
+ > - *"Preview that skill's content, then install it to this project if it looks good."*
183
+
184
+ * **Supported Actions**:
185
+ * `search`: Search open-source `SKILL.md` skills across GitHub (Code Search based, ranked by stars);
186
+ * `preview`: Read-only preview of skill content before installing — nothing touches disk;
187
+ * `install` (requires `confirm: true`): Install to local agent hosts (Claude Code / Cursor / Copilot and 50+ others), `project` or `user` scope;
188
+ * `list`: List all skills installed on this machine.
189
+ * Requires the official `gh skill` preview feature in GitHub CLI 2.9x+.
190
+
191
+ ---
192
+
193
+ ### 9. `github_help`: Meta Guide & Troubleshooting Hub 🆕
194
+ > **Example Agent Prompts**:
195
+ > - *"I'm not sure which GitHub tool to use for this task."*
196
+ > - *"How do I write advanced GitHub search syntax?"*
197
+
198
+ * **Core Capabilities**:
199
+ * Task-routing navigation across all 9 tools;
200
+ * Official advanced search syntax cheat sheet (date ranges, status qualifiers, code search scopes);
201
+ * Self-healing recipes for common errors (403 rate limits, 422 missing params, stale forks, outdated CLI);
202
+ * Direct passthrough to the official `gh help <command>` offline manual.
203
+
204
+ ---
205
+
206
+ ## 🛡️ Safety Guardrails
207
+
208
+ * **Destructive-action double confirmation**: `merge`, `close`, `release delete`, clobber uploads, `secret delete`, and `skill install` require an explicit `confirm: true` parameter; without it, only an impact assessment is returned — nothing executes. This prevents accidental merges or deletions from model hallucinations.
209
+ * **Secret stdin channel**: Secret values travel via subprocess stdin — never on the command line (ps / task-manager safe), never persisted, never echoed; gh encrypts locally with the repository public key before uploading.
210
+ * **Command-injection immunity**: All gh invocations use `execFile` array-argument isolation with zero shell string concatenation.
211
+
212
+ ---
213
+
214
+ ## 🖥️ Native Web UI Workspace & Settings Center
112
215
 
113
216
  No more window switching! Seamlessly integrated into DSH with DSW design tokens and instant light/dark theme adaptation.
114
217
 
@@ -138,47 +241,26 @@ Located in the right drawer of every chat workspace:
138
241
  <img src="./docs/images/2.png" alt="Session Right Sidebar Panel" width="100%" />
139
242
  </p>
140
243
 
141
- ### 3. Data Sync & Cache Settings (Sync Preferences Modal)
142
- Click **`[⚙️ Sync Settings]`** in the top right of the Cockpit to adjust synchronization:
143
- * **Three Flexible Sync Strategies**:
144
- * **⚡ Instant Render (SWR, Recommended)**: Instantly displays local cache (0ms), silently syncing latest state in background;
145
- * **📋 Manual Only (Energy Saver)**: Browse local cache only; zero background `gh` processes triggered;
146
- * **⏱️ Periodic Auto Poll**: Background polling according to custom intervals while cockpit is open.
147
- * **Custom Polling Intervals**: Choose from 1 min / 5 mins (Default) / 15 mins / 30 mins (Energy Saver) / 1 hour / Never;
148
- * **Visual Cache Management**: Real-time snapshot size and timestamp visibility with one-click `[🗑️ Clear Cache]`.
149
-
150
- <p align="center">
151
- <img src="./docs/images/3.png" alt="Data Sync Settings Modal" width="85%" />
152
- </p>
153
-
154
- ---
155
-
156
- ## 🚀 Installation Guide
157
-
158
- ### Step 1: Prerequisites
159
- Ensure GitHub CLI (`gh`) is installed and authenticated:
160
- ```bash
161
- # Windows
162
- winget install --id GitHub.cli
163
-
164
- # macOS
165
- brew install gh
166
-
167
- # Login (one-time setup)
168
- gh auth login
169
- ```
170
-
171
- ### Step 2: Install into DSH
244
+ ### 3. Settings Center (Settings Modal)
245
+ Click **`[⚙️ Settings]`** in the top right of the Cockpit to open the sectioned settings modal (left-side navigation, independently scrolling content; collapses to horizontal tabs on narrow screens):
172
246
 
173
- Run in your DSH environment:
247
+ **🔄 Data Sync Section** — tune data fetching rhythm:
248
+ * **Two Sync Strategies**:
249
+ * **⚡ Instant Render (SWR, Recommended)**: Instantly displays local cache (0ms), then silently syncs the latest state within 300ms — no matter how stale the cache is, opening the panel self-heals to fresh data;
250
+ * **📋 Manual Only (Energy Saver)**: Browse local cache only; zero background `gh` processes triggered; click `[🔄 Refresh]` whenever you want updates.
251
+ * **Visual Cache Management**: Real-time snapshot size and timestamp visibility with one-click `[🗑️ Clear Cache]`.
174
252
 
175
- ```bash
176
- # Scenario A: DSH Desktop Edition (Desktop Profile)
177
- dsh plugin --profile desktop add dsh-github-flow
253
+ **🌐 Network Proxy Section** — route all plugin traffic through your proxy:
254
+ * **Global Scope**: Once configured, the cockpit, right-sidebar panel, all 9 Agent tool invocations, and one-click upgrades route through the proxy; when disabled, system environment proxies (`HTTPS_PROXY` etc.) or direct connections apply;
255
+ * **Protocol Support**: `http://` / `https://` / `socks5://` / `socks5h://` (gh and npm chains natively support SOCKS5; `socks5h` delegates DNS resolution to the proxy for stronger pollution resistance; the npm version probe uses Node fetch which does not support SOCKS — it stays direct and the UI states this honestly);
256
+ * **`[🧪 Test Connectivity]`**: One-click latency probe against the GitHub API through the current proxy;
257
+ * **Instant Effect**: Persisted to `~/.dsh/data/dsh-github-flow/proxy.json` (auto-restored on DSH restart) — no restart, no plugin reload;
258
+ * **Visibility**: A `🌐 Proxy` badge appears in the cockpit title bar while active; hover to inspect the current proxy URL;
259
+ * **NO_PROXY Exclusions**: `localhost` and `127.0.0.1` are forcibly included — loopback Web API requests are never hijacked by the proxy.
178
260
 
179
- # Scenario B: DSH Web / CLI Environment
180
- pnpm dsh plugin add dsh-github-flow
181
- ```
261
+ | 🔄 Data Sync Section | 🌐 Network Proxy Section |
262
+ | :---: | :---: |
263
+ | ![Settings Center · Data Sync](./docs/images/3.png) | ![Settings Center · Network Proxy](./docs/images/4.png) |
182
264
 
183
265
  ---
184
266
 
@@ -207,17 +289,15 @@ Why did the Global Cockpit take several seconds to load in earlier releases? Bec
207
289
  Initial Mount (0ms) ──────────> Instantly render local persistent snapshot
208
290
  │
209
291
  ├── SWR Mode: Idle 300ms delay, silently revalidate in background
210
- ├── Manual Mode: Browse offline snapshot, only fetch on click [🔄 Refresh]
211
- └── Auto Poll: Periodically update according to chosen interval (e.g., 5m/30m)
292
+ └── Manual Mode: Browse offline snapshot, only fetch on click [🔄 Refresh]
212
293
  ```
213
294
 
214
295
  ### Strategy Comparison & Recommendations:
215
296
 
216
297
  | Sync Strategy | Mechanism | Recommended Use Case |
217
298
  | :--- | :--- | :--- |
218
- | **⚡ Instant Render (SWR, Default)** | **0ms instantaneous mount** from local cache, silently revalidating in background. | **Recommended for all developers**. Eliminates spinner freezes, delivering seamless UX. |
299
+ | **⚡ Instant Render (SWR, Default)** | **0ms instantaneous mount** from local cache, silently revalidating in background within 300ms — however stale the snapshot, opening the panel self-heals to fresh data. | **Recommended for all developers**. Eliminates spinner freezes, delivering seamless UX. |
219
300
  | **📋 Manual Only (Energy Saver)** | Browse local cache only; zero automated background `gh` processes. | **Battery-powered laptops, low-spec hardware, or metered networks**. Zero background waste. |
220
- | **⏱️ Periodic Auto Poll** | Background polls status at user-specified intervals (1m to 1h). | **Maintainer workstations & dedicated monitoring setups**. Keep tasks strictly up to date. |
221
301
 
222
302
  * **Offline Resilience (Fail-Safe)**: Even when disconnected or hitting network timeouts, **your dashboard preserves the complete snapshot for searching, navigation, and review—zero blank screens or crash popups!**
223
303
 
@@ -246,10 +326,12 @@ Works out of the box, with optional tweaks in `cordis.patch.yml` or your profile
246
326
  defaultTimeoutMs: 30000 # Command timeout in milliseconds (default 30s)
247
327
  maxOutputChars: 24000 # Safe output character ceiling (Token protection)
248
328
  maxOutputBytes: 96000 # Safe UTF-8 byte ceiling (default maxOutputChars * 4)
329
+ defaultListLimit: 20 # Default list size for pr/issue/run/release/skill queries
249
330
  cacheTtlMs: 15000 # Repository overview cache TTL (default 15s)
250
331
  checkUpdate: true # Enable automatic update checks (default true)
251
332
  updateCheckIntervalMs: 86400000 # Check interval in ms (default 24h)
252
333
  registryUrl: '' # Custom private npm registry URL
334
+ proxyUrl: '' # Preset proxy default (e.g. 'http://127.0.0.1:7890'; only applies before the cockpit setting is saved — UI setting takes precedence)
253
335
  ```
254
336
 
255
337
  ---
@@ -279,6 +361,9 @@ export function apply(ctx: Context) {
279
361
 
280
362
  ---
281
363
 
364
+ ## Friendship links
365
+ - [LINUX DO - A new ideal community](https://linux.do/)
366
+
282
367
  ## 📄 License
283
368
 
284
369
  Open-sourced under the [MIT License](./LICENSE). Contributions, PRs, and Issues are welcome!
package/README.md CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
  <p align="center">
12
12
  <b>让 DeepSeek Harness Agent 拥有操作 GitHub 的原生手和脚,为人机协作打造沉浸式 GitHub 工作台。</b><br>
13
- 原生复用宿主机 <code>gh</code> CLI 安全登录凭据,告别 Personal Access Token 泄露;深度打通本地 Git 工作区与云端仓库协作,兼具 <b>5 大领域 Agent 核心工具</b>、<b>人类 Slash 快捷指令</b>、<b>Web UI 全景工作台</b> 与 <b>一键自动跨平台无缝升级</b>。
13
+ 原生复用宿主机 <code>gh</code> CLI 安全登录凭据,告别 Personal Access Token 泄露;深度打通本地 Git 工作区与云端仓库协作,兼具 <b>9 大领域 Agent 核心工具</b>、<b>人类 Slash 快捷指令</b>、<b>Web UI 全景工作台</b> 与 <b>一键自动跨平台无缝升级</b>。
14
14
  </p>
15
15
 
16
16
  <p align="center">
@@ -34,9 +34,45 @@
34
34
 
35
35
  ---
36
36
 
37
+ ## 🚀 安装指南
38
+
39
+ ### 步骤 1:前置准备(若已安装可跳过)
40
+ 确保你的机器上已安装 GitHub CLI (`gh`) 并已登录:
41
+ ```bash
42
+ # Windows 安装
43
+ winget install --id GitHub.cli
44
+
45
+ # macOS 安装
46
+ brew install gh
47
+
48
+ # 登录认证(仅需执行一次)
49
+ gh auth login
50
+ ```
51
+
52
+ ### 步骤 2:安装插件到 DSH
53
+
54
+ 在 DSH 终端根据你的使用环境执行对应命令:
55
+
56
+ ```bash
57
+ # 场景 A:DSH 桌面版 (Desktop Profile)
58
+ dsh plugin --profile desktop add dsh-github-flow
59
+
60
+ # 场景 B:DSH Web / CLI 工程环境
61
+ pnpm dsh plugin add dsh-github-flow
62
+ ```
63
+
64
+ > 💡 **提示(新版本发布后 24 小时内的安全锁定期说明)**:
65
+ > DSH 内置包管理器默认启用了防投毒的供应链安全策略(`minimum-release-age = 24h`)。新版本发布后的 **24 小时内**,若执行不带版本号的裸名安装命令,底层会自动回退为发布满 24 小时的上一稳定版本。如需**立即尝鲜刚发布的新版本**,请在命令末尾显式追加 `@版本号`(替换为 npm 页面显示的最新版本):
66
+ > ```bash
67
+ > dsh plugin --profile desktop add dsh-github-flow@<最新版本号>
68
+ > ```
69
+ > 版本发布满 24 小时后,执行原本的裸名命令即可默认解析安装最新版。
70
+
71
+ ---
72
+
37
73
  ## 🤖 核心工具集 (Agent Tools):给 Agent 装上 GitHub 的手和脚
38
74
 
39
- 本插件精选聚合为 **5 大领域核心工具**,拒绝几十个无用微型工具撑爆 Agent 上下文,原生搭载 **Token 防溢出保护(默认 24KB 智能二分截断)** 与 **零参数 CWD 智能绑定**。
75
+ 本插件精选聚合为 **9 大领域核心工具**,拒绝几十个无用微型工具撑爆 Agent 上下文,原生搭载 **Token 防溢出保护(默认 24KB 智能二分截断)**、**高密度 Markdown 原生渲染(列表输出压缩 70%+ Token)** 与 **零参数 CWD 智能绑定**。
40
76
 
41
77
  ### 1. `github_pr`:PR 全生命周期管理与自动化代码审查
42
78
  > **典型对话指令**:
@@ -46,13 +82,15 @@
46
82
  > - *"检查 PR #8 的 CI 检查通过了吗?通过的话帮我 Squash 合并并删除源分支"*
47
83
 
48
84
  * **支持操作 (`action`)**:
49
- * `list`:列出当前仓库开放的 PR(带作者、审查判定、CI 门禁状态);
85
+ * `list`:列出当前仓库开放的 PR(带作者、审查判定、CI 门禁状态,支持 `state` / `author` / `limit` 过滤);
50
86
  * `view`:查看指定 PR 详情、描述与元数据;
51
- * `diff`:获取 PR 的完整代码差异(内置智能防溢出截断保护);
87
+ * `diff`:获取 PR 的完整代码差异(`stat_only` 仅看文件变更概览,防大 PR 溢出);
52
88
  * `checks`:审查指定 PR 的 CI 门禁状态与检查套件结果;
53
89
  * `create`:一键自动创建 PR(支持 draft 草稿模式与 `--dry-run` 预演);
90
+ * `checkout`:🆕 把 PR 代码检出到本地分支,Agent 可直接在沙箱跑测试验证改动;
91
+ * `status`:🆕 查看当前分支关联 PR 的合并冲突状态(`CLEAN` / `CONFLICT`);
54
92
  * `review`:提交代码审查意见(`APPROVE`, `REQUEST_CHANGES`, `COMMENT`);
55
- * `merge`:自动执行合并(支持 `squash` / `merge` / `rebase`,可指定 `delete_branch`)。
93
+ * `merge`:自动执行合并(支持 `squash` / `merge` / `rebase`,可指定 `delete_branch`;需 `confirm: true` 二次确认)。
56
94
 
57
95
  ---
58
96
 
@@ -64,8 +102,9 @@
64
102
 
65
103
  * **支持操作 (`action`)**:
66
104
  * `log_failed`(🔥 **核心杀手锏**):**专供 Agent 快速诊断**,自动抓取并剥离无关日志,精准提取失败 Step 的关键错误堆栈,供 Agent 直击问题修复代码;
67
- * `list`:查看当前仓库的 Workflow 运行历史与结论;
105
+ * `list`:查看当前仓库的 Workflow 运行历史与结论(支持 `branch` / `status: failure` 快速锁定失败构建);
68
106
  * `view`:查看指定 run_id 的详细阶段(Jobs & Steps);
107
+ * `trigger`:🆕 主动触发 `workflow_dispatch` 工作流(提交修复后立即验证远端 CI);
69
108
  * `rerun`:重新触发失败的 CI 运行;
70
109
  * `cancel`:取消在途的工作流。
71
110
 
@@ -79,11 +118,13 @@
79
118
  > - *"把 Issue #45 关闭"*
80
119
 
81
120
  * **支持操作 (`action`)**:
82
- * `list`:多条件检索 Issue 列表;
121
+ * `list`:多条件检索 Issue 列表(`state` / `labels` / `assignees` / `limit`);
83
122
  * `view`:查看 Issue 正文与评论历史;
84
123
  * `create`:创建新 Issue(支持标题、正文、标签、指派人);
124
+ * `edit`:🆕 修改标题、正文与增删标签;
125
+ * `develop`:🆕 从 Issue 一键切出关联开发分支并本地检出,打通「读需求 → 写代码」闭环;
85
126
  * `comment`:在指定 Issue 中追加排查进展或评论;
86
- * `close` / `reopen`:开启或关闭 Issue。
127
+ * `close`(需 `confirm: true`)/ `reopen`:开启或关闭 Issue。
87
128
 
88
129
  ---
89
130
 
@@ -94,7 +135,8 @@
94
135
  > - *"查看仓库 cli/cli 的基本信息与星标数"*
95
136
 
96
137
  * **支持操作 (`action`)**:
97
- * `view`:查看当前或目标仓库的元数据(默认分支、星标、描述、Visibility);
138
+ * `view`:查看当前或目标仓库的元数据(默认分支、星标、描述、Topics 与开源协议);
139
+ * `sync`:🆕 一键拉平 Fork 仓库与上游主干,解决贡献开源项目时 Fork 落后导致 CI 门禁失败;
98
140
  * `search_code`:跨仓库或当前仓库检索特定代码符号;
99
141
  * `search_repos`:跨全站检索 GitHub 开源仓库。
100
142
 
@@ -104,11 +146,72 @@
104
146
  > **典型对话指令**:
105
147
  > - *"调用 GitHub API 获取当前仓库最新的 Release 列表,用 jq 提取 tag 名称"*
106
148
 
107
- * **核心优势**:直接复用本地认证环境调用任意 REST / GraphQL API,支持 `--jq` 预过滤与 `raw` 原始响应模式,绝不因插件未封装特定接口而受限。
149
+ * **核心优势**:直接复用本地认证环境调用任意 REST / GraphQL API,支持 `--jq` 预过滤、`raw` 原始响应模式与 `paginate` 自动翻页聚合,绝不因插件未封装特定接口而受限。
150
+
151
+ ---
152
+
153
+ ### 6. `github_release`:版本发布与构建资产交付 🆕
154
+ > **典型对话指令**:
155
+ > - *"给当前仓库发布 v0.2.0 版本,自动根据提交记录生成发版说明"*
156
+ > - *"把刚打好的 dsh-github-flow-0.2.0.tgz 上传到 v0.2.0 Release"*
157
+
158
+ * **支持操作 (`action`)**:
159
+ * `list` / `view`:查看发版历史与任意版本详情(资产清单、发版说明);
160
+ * `create`:创建 Release(`generate_notes` 自动生成说明、`draft` / `prerelease` 标记、可直接附带资产);
161
+ * `upload` / `download`:上传 `.tgz` 等构建产物或按 glob 下载资产;
162
+ * `delete`(需 `confirm: true`):删除 Release,可选连 Tag 一起清理。
163
+
164
+ ---
165
+
166
+ ### 7. `github_secret`:CI/CD 部署密钥安全管理 🆕
167
+ > **典型对话指令**:
168
+ > - *"帮我把新的 NPM_TOKEN 更新到当前仓库的 Secrets 里"*
169
+ > - *"看一下这个仓库配了哪些密钥"*
170
+
171
+ * **支持操作 (`action`)**:
172
+ * `list`:查看密钥名称清单(仅名称与更新时间,GitHub API 设计上不允许读取密文);
173
+ * `set`:设置/更新密钥值——**密文经子进程标准输入传递,绝不出现在命令行参数(防 `ps` 窃取),输出永不回显**;
174
+ * `delete`(需 `confirm: true`):删除密钥。
175
+ * 支持仓库 / 组织 (`org`) / 环境 (`env`) 三级作用域与 `actions` / `codespaces` / `dependabot` / `agents` 应用归属。
176
+
177
+ ---
178
+
179
+ ### 8. `github_skill`:跨 Agent 开源 Skills 生态发现 🆕
180
+ > **典型对话指令**:
181
+ > - *"在 GitHub 上搜一下有没有关于 code-review 的 Agent Skill"*
182
+ > - *"预览一下那个 Skill 的内容,合适就装到当前项目"*
183
+
184
+ * **支持操作 (`action`)**:
185
+ * `search`:基于 GitHub Code Search 跨仓库检索开源 `SKILL.md` 技能(带 Stars 排序);
186
+ * `preview`:只读预览 Skill 内容,安装前审阅行为约束,不落盘;
187
+ * `install`(需 `confirm: true`):安装到本地 Agent 宿主(Claude Code / Cursor / Copilot 等 50+),支持 `project` / `user` 两种范围;
188
+ * `list`:查看本机已安装的全部 Skills。
189
+ * 依赖 GitHub CLI 2.9x+ 的 `gh skill` 官方 preview 特性。
190
+
191
+ ---
192
+
193
+ ### 9. `github_help`:元指南与故障自愈中枢 🆕
194
+ > **典型对话指令**:
195
+ > - *"我不确定该用哪个 GitHub 工具做这件事"*
196
+ > - *"GitHub 搜索的高级语法怎么写?"*
197
+
198
+ * **核心能力**:
199
+ * 9 大工具任务路由导航(「什么任务调什么工具」一查便知);
200
+ * 官方高级检索语法速查(日期区间、状态修饰符、代码搜索范围限定);
201
+ * 常见故障自愈配方(403 限流、422 参数缺失、Fork 落后拉平、CLI 版本过低);
202
+ * 直接透传 `gh help <command>` 官方离线手册。
203
+
204
+ ---
205
+
206
+ ## 🛡️ 安全防线设计
207
+
208
+ * **高危操作双重确认**:`merge`、`close`、`release delete`、覆盖上传 (`clobber`)、`secret delete`、`skill install` 等不可逆或写盘操作强制要求 `confirm: true` 参数;未确认时只返回影响评估报告,绝不执行。杜绝模型幻觉导致的意外合并或删除。
209
+ * **密文标准输入通道**:`github_secret` 的密钥值经子进程 stdin 传递,全程不出现在命令行参数(防 `ps` / 任务管理器窃取)、不落盘、不在输出中回显;gh 在本地用仓库公钥加密后才上传。
210
+ * **命令注入免疫**:所有 gh 调用采用 `execFile` 数组参数隔离执行,零 Shell 字符串拼接。
108
211
 
109
212
  ---
110
213
 
111
- ## 🖥️ 原生 Web UI 沉浸式工作台与同步设置
214
+ ## 🖥️ 原生 Web UI 沉浸式工作台与设置中心
112
215
 
113
216
  ### 1. 全局全景驾驶舱 (Global Cockpit)
114
217
 
@@ -137,47 +240,26 @@
137
240
  <img src="./docs/images/2.png" alt="右侧栏工作区面板" width="100%" />
138
241
  </p>
139
242
 
140
- ### 3. 数据同步与缓存偏好设置 (Sync Settings Modal)
141
- 点击全景驾驶舱右上角 **`[⚙️ 同步设置]`** 即可随时调优数据拉取节奏:
142
- * **三种刷新策略随心选**:
143
- * **⚡ 秒开模式 (SWR, 推荐)**:打开驾驶舱立即展示上次本地缓存(0ms秒开),后台静默同步最新状态;
144
- * **📋 仅在手动点击时拉取 (Manual Only)**:打开只浏览本地缓存,绝不自动触发后台 gh 进程,最省电、最省资源;
145
- * **⏱️ 定时自动轮询 (Auto Poll)**:驾驶舱打开期间,按照设定间隔在后台自动轮询。
146
- * **自定义后台拉取间隔**:支持选择 1 分钟 / 5 分钟 (默认) / 15 分钟 / 30 分钟 (推荐节能) / 1 小时 / 从不自动刷新;
147
- * **本地缓存可视化管理**:透明查看本地快照体积与保存时间戳,支持一键 `[🗑️ 清空缓存]` 重置。
148
-
149
- <p align="center">
150
- <img src="./docs/images/3.png" alt="数据同步与缓存设置弹窗" width="85%" />
151
- </p>
152
-
153
- ---
154
-
155
- ## 🚀 安装指南
156
-
157
- ### 步骤 1:前置准备(若已安装可跳过)
158
- 确保你的机器上已安装 GitHub CLI (`gh`) 并已登录:
159
- ```bash
160
- # Windows 安装
161
- winget install --id GitHub.cli
162
-
163
- # macOS 安装
164
- brew install gh
165
-
166
- # 登录认证(仅需执行一次)
167
- gh auth login
168
- ```
243
+ ### 3. 设置中心 (Settings Modal)
244
+ 点击全景驾驶舱右上角 **`[⚙️ 设置]`** 打开分区式设置弹窗,左侧分区导航、右侧内容独立滚动(窄屏自动折叠为横向页签):
169
245
 
170
- ### 步骤 2:安装插件到 DSH
171
-
172
- 在 DSH 终端根据你的使用环境执行对应命令:
246
+ **🔄 数据同步分区**——调优数据拉取节奏:
247
+ * **两种同步策略**:
248
+ * **⚡ 秒开模式 (SWR, 推荐)**:打开驾驶舱立即展示上次本地缓存(0ms秒开),并在 300ms 内后台静默同步最新状态——无论缓存多旧,打开即可自愈为最新;
249
+ * **📋 仅在手动点击时拉取 (Manual Only)**:打开只浏览本地缓存,绝不自动触发后台 gh 进程,最省电、最省资源;想更新时点击「🔄 刷新」即可。
250
+ * **本地缓存可视化管理**:透明查看本地快照体积与保存时间戳,支持一键 `[🗑️ 清空缓存]` 重置。
173
251
 
174
- ```bash
175
- # 场景 A:DSH 桌面版 (Desktop Profile)
176
- dsh plugin --profile desktop add dsh-github-flow
252
+ **🌐 网络代理分区**——让插件全部外联流量走你的代理:
253
+ * **全局生效范围**:设置后驾驶舱、右侧栏面板、9 大 Agent 工具调用与一键升级链路全部经代理访问;未启用时默认使用系统环境代理(`HTTPS_PROXY` 等)或直连;
254
+ * **协议支持**:`http://` / `https://` / `socks5://` / `socks5h://`(gh 与 npm 链路原生支持 SOCKS5;`socks5h` 会把域名解析也交给代理端,抗 DNS 污染更强;npm 版本探测走 Node fetch 暂不支持 SOCKS,将保持直连并在界面如实标注);
255
+ * **`[🧪 测试连通性]`**:一键探测经当前代理访问 GitHub API 的延迟;
256
+ * **保存即生效**:写入 `~/.dsh/data/dsh-github-flow/proxy.json` 持久化(DSH 重启自动恢复),无需重启、不重载插件;
257
+ * **生效可视化**:代理启用时驾驶舱标题栏显示 `🌐 代理` 徽章,悬停查看当前代理地址;
258
+ * **NO_PROXY 排除列表**:`localhost` 与 `127.0.0.1` 强制包含,本机 Web API 回环请求永不被代理劫持。
177
259
 
178
- # 场景 B:DSH Web / CLI 工程环境
179
- pnpm dsh plugin add dsh-github-flow
180
- ```
260
+ | 🔄 数据同步分区 | 🌐 网络代理分区 |
261
+ | :---: | :---: |
262
+ | ![设置中心·数据同步分区](./docs/images/3.png) | ![设置中心·网络代理分区](./docs/images/4.png) |
181
263
 
182
264
  ---
183
265
 
@@ -206,17 +288,15 @@ pnpm dsh plugin add dsh-github-flow
206
288
  首次渲染 (0ms) ──────────> 恢复本地持久化快照,瞬间完整上屏
207
289
  │
208
290
  ├── SWR 模式: 延迟 300ms 后台静默拉取,平滑对齐最新数据
209
- ├── 手动模式: 仅浏览本地快照,点击「🔄 刷新」才发起拉取
210
- └── 轮询模式: 按设定间隔 (如 5m/30m) 自动后台轮询
291
+ └── 手动模式: 仅浏览本地快照,点击「🔄 刷新」才发起拉取
211
292
  ```
212
293
 
213
- ### 三种刷新策略对比与选用建议:
294
+ ### 两种刷新策略对比与选用建议:
214
295
 
215
296
  | 刷新模式 | 运行机制 | 适用人群与场景 |
216
297
  | :--- | :--- | :--- |
217
- | **⚡ 秒开模式 (SWR, 默认)** | 打开驾驶舱 **0ms 立即呈现** 上次保存的本地离线快照,随后后台静默更新。 | **强烈推荐所有开发者**。消灭白屏转圈,体验最顺畅丝滑。 |
298
+ | **⚡ 秒开模式 (SWR, 默认)** | 打开驾驶舱 **0ms 立即呈现** 上次保存的本地离线快照,并在 300ms 内后台静默更新——无论快照多旧,打开即自愈为最新。 | **强烈推荐所有开发者**。消灭白屏转圈,体验最顺畅丝滑。 |
218
299
  | **📋 仅手动刷新 (Manual Only)** | 仅浏览本地已有数据,绝对不自动发起任何后台 `gh` 网络拉取。 | **笔记本电池供电、低配设备或弱网环境**。极致节能,杜绝无谓后台开销。 |
219
- | **⏱️ 定时自动轮询 (Auto Poll)** | 打开驾驶舱后,按照选定的时间间隔(1m~1h)在后台自动轮询。 | **维护者工作站、实时监控大屏**。始终保持第一手待办同步。 |
220
300
 
221
301
  * **离线韧性保障 (Fail-Safe)**:即使完全断网或后台请求超时,**界面依然完整保留本地快照供您浏览与检索,绝不发生白屏或红字崩溃报错!**
222
302
 
@@ -245,10 +325,12 @@ pnpm dsh plugin add dsh-github-flow
245
325
  defaultTimeoutMs: 30000 # 命令执行超时时间(毫秒,默认 30 秒)
246
326
  maxOutputChars: 24000 # 单次命令安全返回字符数上限(Token 防溢出保护)
247
327
  maxOutputBytes: 96000 # 单次命令 UTF-8 字节数硬上限,默认 maxOutputChars × 4
328
+ defaultListLimit: 20 # 列表类查询默认返回条数(pr/issue/run/release/skill 通用)
248
329
  cacheTtlMs: 15000 # 单仓库概览缓存时长(毫秒,默认 15 秒)
249
330
  checkUpdate: true # 是否开启新版本自动检查提示(默认开启)
250
331
  updateCheckIntervalMs: 86400000 # 检查更新间隔(毫秒,默认 24 小时)
251
332
  registryUrl: '' # 自定义私有 npm 镜像地址(留空则自动选用 npmmirror 与 npmjs)
333
+ proxyUrl: '' # 代理地址预置默认值(如 'http://127.0.0.1:7890';仅未在驾驶舱设置过时生效,界面设置优先)
252
334
  ```
253
335
 
254
336
  ---
@@ -277,6 +359,12 @@ export function apply(ctx: Context) {
277
359
  - [npm 发布与自动化 CI 发版指南](./docs/npm-publish-guide.md)
278
360
  - [架构设计与技术规范](./docs/architecture.md)
279
361
 
362
+
363
+ ---
364
+ ## 友情链接
365
+
366
+ - [LINUX DO - 新的理想型社区](https://linux.do/)
367
+
280
368
  ---
281
369
 
282
370
  ## 📄 开源协议 (License)
@@ -27,16 +27,26 @@
27
27
  │ │ │ │ │
28
28
  │ ▼ ▼ ▼ │
29
29
  │ ┌──────────────────┐ ┌──────────────────┐ ┌───────────────────────┐ │
30
- │ │ 5 大 Agent 工具 │ │ 人类 Slash 指令 │ │ Host HTTP WebServer │ │
30
+ │ │ 9 大 Agent 工具 │ │ 人类 Slash 指令 │ │ Host HTTP WebServer │ │
31
31
  │ │ (defineTool DSL)│ │ /gh status │ │ (Effect Disposer 清理)│ │
32
32
  │ │ - pr │ │ /gh upgrade │ │ - /api/github/overview│ │
33
33
  │ │ - issue │ │ /gh help │ │ - /api/github/action │ │
34
34
  │ │ - run │ └──────────────────┘ │ - /api/github/refresh │ │
35
35
  │ │ - repo │ │ - /check-update (闲时)│ │
36
36
  │ │ - api (逃生门) │ │ - /upgrade (一键自动) │ │
37
- │ └──────────────────┘ └──────────┬────────────┘ │
38
- │ │ │
39
- │ │ HTTP API │
37
+ │ │ - release │ └──────────┬────────────┘ │
38
+ │ │ - secret (stdin)│ │ │
39
+ │ │ - skill │ │ HTTP API │
40
+ │ │ - help (元指南) │ │ │
41
+ │ └────────┬─────────┘ │ │
42
+ │ │ │ │
43
+ │ ▼ │ │
44
+ │ ┌──────────────────────────────────┐ │ │
45
+ │ │ Markdown 渲染引擎 (renderers/) │ │ │
46
+ │ │ - 列表表格化压缩 70%+ Token │ │ │
47
+ │ │ - 状态徽章/超链接/转义防破损 │ │ │
48
+ │ │ - 高危确认卡片/敏感字段隔离 │ │ │
49
+ │ └──────────────────────────────────┘ │ │
40
50
  └─────────────────────────────────────────────────────────────┼───────────────┘
41
51
  │
42
52
  ┌─────────────────────────────────────────────────────────────┼───────────────┐
@@ -72,8 +82,13 @@
72
82
  ### 2.3 上下文 Token 保护与防御性输出包装 (Token Budget Guard)
73
83
  - 所有的 `gh` 查询原生采用 `--json <fields>` 结构化投影;
74
84
  - 对长文本输出(如大型 PR 的完整 `diff`、CI 失败步骤日志)设置安全截断阈值(默认 24KB),采用码点安全切割与二分查找字节截断,保留头尾关键上下文并添加显式截断标记,杜绝撑爆模型上下文;
85
+ - 列表与详情输出经独立 Markdown 渲染引擎(`src/renderers/markdown.ts`)转化为高密度表格与卡片(带状态徽章、可点击超链接与竖线转义防护),实测 20 条 PR 列表输出压缩 70%+ Token;
75
86
  - 所有 Agent 工具的输出统一经过归一化,列表自动打包为 `{ items, count }`,标量打包为 `{ result }`,100% 严丝合缝契合 DSH 工具网关模式约束。
76
87
 
88
+ ### 2.3.1 高危操作确认与敏感值安全通道 (Safety Confirmation & Secret stdin Channel)
89
+ - 不可逆写操作(`merge` / `close` / `release delete` / clobber 覆盖上传 / `secret delete` / `skill install`)强制要求 `confirm: true` 显式参数,未确认时仅返回影响评估卡片,不产生任何远端或本地副作用;
90
+ - 密钥明文仅经子进程标准输入传递(`execFile` 的 `input` 选项),全程不出现在命令行参数、进程列表与工具输出中;渲染层对 secret 输出采用独立实现,从结构上隔离「绝不渲染 value 字段」这条安全红线。
91
+
77
92
  ### 2.4 原生浅色/深色主题自适应与快捷操作网格
78
93
  - 全面对齐 DSH 官方 DSW 语义设计变量,基于 `body[data-ds-dark-theme]` 驱动无闪烁双模式切换;
79
94
  - 右侧栏快捷操作栏彻底废弃失效的阻塞弹窗,全面采用官方直达模式(查看所有 Issues、查看 PRs、Compare / New Issue),享有 100% 官方富文本体验。
package/docs/images/1.png CHANGED
Binary file