feat(posts): publish 4-part windows-mcp series across historical dates with full EN+ZH assets
Deploy / build (push) Successful in 22s

This commit is contained in:
hoelee committed 2026-10-25 18:45:43 +08:00
1 parent 4cfbc33a6f
commit d5ab7dec81
36 files changed
+1537 -127

No files matched your search

+20
View File
@@ -258,5 +258,25 @@
},
"php2shell-patching-every-php-runtime-i-manage": {
"evidence": "8 public sites in 2 min · 7 on 8.5.12 · 8 dead rules"
},
"giving-ai-your-mouse-and-keyboard-safely": {
"evidence": "PowerShell & Registry stripped · 0.5x downscale · 0 flash",
"ogTitle_en": "Safe Guardrails for Windows Desktop MCP",
"ogTitle_zh": "给 AI 鼠标键盘前的四道安全防线"
},
"plugging-windows-desktop-control-into-four-ai-agents": {
"evidence": "1 Python 3.14 server · 4 agent configs · 19 native tools",
"ogTitle_en": "Plugging Windows Desktop Control into 4 Agents",
"ogTitle_zh": "把 Windows 桌面控制接进 4 款 AI Agent"
},
"why-your-windows-mcp-calls-silently-fail": {
"evidence": "CONTROL_PREEMPTED killed · 10s idle gate bypassed",
"ogTitle_en": "Why Windows MCP Calls Silently Fail",
"ogTitle_zh": "攻破 Windows 桌面 MCP 10 秒空闲门禁"
},
"when-to-give-your-agent-physical-clicks": {
"evidence": "API > CLI > CUA > Physical clicks · 4-tier matrix",
"ogTitle_en": "When to Give Your Agent Physical Clicks",
"ogTitle_zh": "什么时候该让 AI 操控物理鼠标"
}
}
+20
View File
@@ -420,6 +420,26 @@ TERMINALS['why-500000-lines-of-commit-churn-only-left-230000-in-production'] = `
<div class="line"><span class="prompt">$</span><span class="cmd">pytest && phpunit && ./verify-gates.sh</span></div>
<div class="line"><span class="prompt">></span><span class="fix">All test gates passed: 0 regressions</span></div>`;
TERMINALS['giving-ai-your-mouse-and-keyboard-safely'] = `
<div class="line"><span class="prompt">$</span><span class="cmd">uvx windows-mcp serve --exclude-tools PowerShell,Registry</span></div>
<div class="line"><span class="prompt">&nbsp;</span><span class="fix">19 safe UI tools · PowerShell/Registry stripped</span></div>
<div class="line"><span class="prompt">$</span><span class="cmd">export WINDOWS_MCP_SCREENSHOT_SCALE=0.5 DISABLE_FLASH=1</span><span class="fix">→ secured ✓</span></div>`;
TERMINALS['plugging-windows-desktop-control-into-four-ai-agents'] = `
<div class="line"><span class="prompt">$</span><span class="cmd">hermes mcp add windows-mcp && opencode mcp list</span></div>
<div class="line"><span class="prompt">&nbsp;</span><span class="fix">Hermes · OpenCode · Claw Code · Claude Code</span></div>
<div class="line"><span class="prompt">$</span><span class="cmd">probe DisplayInventory + Screenshot</span><span class="fix">→ 4/4 connected ✓</span></div>`;
TERMINALS['why-your-windows-mcp-calls-silently-fail'] = `
<div class="line"><span class="prompt">$</span><span class="cmd">call_tool Notification -> {"code": "CONTROL_PREEMPTED"}</span></div>
<div class="line"><span class="prompt">&nbsp;</span><span class="err">user active < 10s · AI control indicator stopping</span></div>
<div class="line"><span class="prompt">$</span><span class="cmd">export WINDOWS_MCP_CONTROL=false</span><span class="fix">→ immediate execute ✓</span></div>`;
TERMINALS['when-to-give-your-agent-physical-clicks'] = `
<div class="line"><span class="prompt">$</span><span class="cmd">automation ladder: API -> CLI -> CUA -> Physical</span></div>
<div class="line"><span class="prompt">&nbsp;</span><span class="fix">Tier 1-3 exhausted -> fallback to windows-mcp</span></div>
<div class="line"><span class="prompt">$</span><span class="cmd">legacy Win32 + OS file save dialogs</span><span class="fix">→ 100% reliable ✓</span></div>`;
// ---------- read frontmatter ----------
const postPath = join(ROOT, 'src', 'content', 'posts', `${slug}.md`);
if (!existsSync(postPath)) {