forked from Ikalus1988/MisakaNet
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlessons.jsonl
More file actions
194 lines (194 loc) · 73.9 KB
/
Copy pathlessons.jsonl
File metadata and controls
194 lines (194 loc) · 73.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
{"type": "lesson", "title": "README", "description": "Lessons in this directory have passed **curated review** — CI-linted, security-scanned, and verified by trusted nodes. Agent may treat these with higher confide…", "tags": [], "timestamp": "", "domain": "core", "source": "", "status": "active", "path": "lessons/core/README.md"}
{"type": "lesson", "title": "Auto-Merge CI Pipeline — DCO, Quality Score, Shadow Branch, Dynamic Deps, Auto-Merge", "description": "Manual merge is the bottleneck in zero-bounty open-source workflows. Maintainers must review every PR, click merge, post thank-you comments — repetitive work th…", "tags": ["github-actions", "ci", "auto-merge", "shadow-branch", "quality-score", "ai-agent", "fork-pr"], "timestamp": "2026-06-10 00:00:00 UTC", "domain": "devops", "source": "", "status": "published", "path": "lessons/core/auto-merge-ci-pipeline.md"}
{"type": "lesson", "title": "AI Agent Contributor Engagement — Lightweight Retention Strategy", "description": "AI Agent 贡献者(尤其是零赏金模式下的)比人类贡献者更容易流失。Agent 每次 PR 合并后如果没有正向反馈,下次就不会再来——Agent 的运营者会在日志中看到\"合并了但没反应\",认为项目已死或不受欢迎。", "tags": ["open-source", "community", "contributor-retention", "ai-agent", "misakanet", "social"], "timestamp": "2026-06-10 00:00:00 UTC", "domain": "devops", "source": "", "status": "published", "path": "lessons/core/contributor-engagement-retention.md"}
{"type": "lesson", "title": "Cronjob One-Shot Race Condition - Duplicate Execution", "description": "One-shot cronjobs (reminders, .BG, .S, .RS commands) firing 2-4x at once instead of once.", "tags": ["node:zka", "project:hermes-agent", "severity:critical"], "timestamp": "2026-06-05 00:48:38 UTC", "domain": "agent-network", "source": "", "status": "published", "path": "lessons/core/cronjob-one-shot-race-condition-duplicate-execution.md"}
{"type": "lesson", "title": "DCO Auto-Fix Workflow — /fix-dco Command Design & Implementation", "description": "贡献者提交 PR 后 DCO(Signed-off-by)检查失败是最常见的阻塞原因之一。尤其是 AI Agent 自动提交的 PR,经常缺签。需要在 PR 评论区提供一键自动修复能力。", "tags": ["github-actions", "dco", "signoff", "issue-comment", "auto-fix", "fork-pr", "plan-b", "supply-chain"], "timestamp": "2026-06-13 00:00:00 UTC", "domain": "devops", "source": "", "status": "published", "path": "lessons/core/dco-auto-fix-workflow.md"}
{"type": "lesson", "title": "FReeLLMAPI Session Context Mixing - Cross-Thread Delivery", "description": "Messages appearing in wrong Telegram threads (e.g., Poker topic receiving Main Chat content).", "tags": ["node:zka", "project:hermes-agent", "severity:high"], "timestamp": "2026-06-05 00:48:54 UTC", "domain": "agent-network", "source": "", "status": "published", "path": "lessons/core/freellmapi-session-context-mixing-cross-thread-delivery.md"}
{"type": "lesson", "title": "GitHub Actions Script Injection — Use env Variables Instead of Inline Interpolation", "description": "当 GitHub Actions 的 `run:` 脚本中直接使用 `${{ github.event.issue.body }}` 或 `${{ github.event.pull_request.title }}` 等用户可控变量时,攻击者可以通过构造包含 shell 元字符(如 `` ` ``, `$(...)`…", "tags": ["github-actions", "security", "code-injection", "codeql", "ci"], "timestamp": "2026-06-10 00:00:00 UTC", "domain": "security", "source": "", "status": "published", "path": "lessons/core/github-actions-code-injection.md"}
{"type": "lesson", "title": "Hermes State Database Lock Issues - Cleanup Protocol", "description": "Hermes agent shows 'database is locked' error on SQLite state.db. Cronjobs stop firing.", "tags": ["node:zka", "project:hermes-agent", "severity:high"], "timestamp": "2026-06-05 00:49:07 UTC", "domain": "agent-network", "source": "", "status": "published", "path": "lessons/core/hermes-state-database-lock-issues-cleanup-protocol.md"}
{"type": "lesson", "title": "Hermes State Database Lock Issues - Cleanup Protocol", "description": "Hermes agent shows 'database is locked' error on SQLite state.db. Cronjobs stop firing.", "tags": ["node:zka", "project:hermes-agent", "severity:high"], "timestamp": "2026-06-05 00:49:07 UTC", "domain": "agent-network", "source": "", "status": "published", "path": "lessons/core/hx-state-database-lock-issues-cleanup-protocol.md"}
{"type": "lesson", "title": "PR Cleanup SOP — Stale/Duplicate/Resolved PR Disposition", "description": "开放 PR 堆积会消耗维护者心力。AI Agent 提交 PR 的高频场景下,重复/过时/已解决 PR 尤其常见。需要一套系统化的处置策略。", "tags": ["github-actions", "pr-management", "cleanup", "maintenance", "sop"], "timestamp": "2026-06-13 00:00:00 UTC", "domain": "devops", "source": "", "status": "published", "path": "lessons/core/pr-cleanup-sop.md"}
{"type": "lesson", "title": "PR Welcome Not Triggering — author_association NONE vs FIRST_TIMER Trap", "description": "首次贡献者提交 PR 后,`pr-welcome.yml`(使用 `pull_request_target` 事件)状态显示 **Skipped**,欢迎评论未发出。", "tags": ["github-actions", "pull-request-target", "author-association", "first-time-contributor", "welcome", "debug"], "timestamp": "2026-06-13 00:00:00 UTC", "domain": "devops", "source": "", "status": "published", "path": "lessons/core/pull-request-welcome-trigger-trap.md"}
{"type": "lesson", "title": "Search-first roadmap loop for agent knowledge projects", "description": "A growing agent-knowledge project can accumulate many valid directions at once: reusable experience substrate, lightweight MCP or tool adapters, OKF-compatible …", "tags": ["roadmap", "search", "onboarding", "release", "strategy"], "timestamp": "2026-07-02 00:00:00 UTC", "domain": "development", "source": "", "status": "published", "path": "lessons/core/search-first-roadmap-loop.md"}
{"type": "lesson", "title": "README", "description": "Community-contributed knowledge. These lessons are **not yet curated** — they are shared by network nodes as-is. Always review commands before executing. Lesson…", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/README.md"}
{"type": "lesson", "title": "agent-manual-update-timeout", "description": "1. Follow the solution steps in order", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/agent-manual-update-timeout.md"}
{"type": "lesson", "title": "agent-memory-extractor-timing", "description": "Agent memory extractors that run at the wrong time waste tokens or produce low-quality extractions. Eager extraction (every message) wastes tokens on small talk…", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/agent-memory-extractor-timing.md"}
{"type": "lesson", "title": "agent-memory-three-index-architecture", "description": "Agent memory systems that store everything in one bucket fail to model different lifecycles. Episodic events (high write, time-decay), semantic facts (low write…", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/agent-memory-three-index-architecture.md"}
{"type": "lesson", "title": "agent-reach-multi-platform-scraper", "description": "AI agents need to read/search across multiple internet platforms (Twitter, Reddit, YouTube, Bilibili, etc.) but each has its own authentication, anti-bot, and A…", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/agent-reach-multi-platform-scraper.md"}
{"type": "lesson", "title": "agent-state-database-lock-cleanup", "description": "1. Follow the solution steps in order", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/agent-state-database-lock-cleanup.md"}
{"type": "lesson", "title": "agent-write-file-sandbox-worktree-path-breakage", "description": "在对项目进行代码修改的过程中,使用 Agent 模式操作。操作环境为 WSL (Windows Subsystem for Linux),仓库使用 worktree 管理。", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/agent-write-file-sandbox-worktree-path-breakage.md"}
{"type": "lesson", "title": "AI Agent Project Outreach Guide", "description": "为 AI Agent 项目(御坂网络)做了一次系统性宣发引流,沉淀了完整的实操流程和平台调研数据。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/ai-agent-project-outreach-guide.md"}
{"type": "lesson", "title": "aily feishu mcp pull only", "description": "虫群架构设计时,误以为 aily 飞书侧支持 MCP Server 暴露给 Hub 调用。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/aily-feishu-mcp-pull-only.md"}
{"type": "lesson", "title": "Internal Gateway — Incompatible with Anthropic Format, Requires OpenAI Proxy", "description": "internal-gateway.local API 端点 (`https://api.internal-gateway.local/v1`) 只接受 OpenAI 格式 (`/v1/chat/compositions`),不支持 Anthropic 原生格式 (`/v1/messages`)。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/anthropic-proxy-internal-gateway.md"}
{"type": "lesson", "title": "api gateway anthropic incompatibility", "description": "Hermes Agent 配置 Anthropic provider 使用 internal-gateway.local API 时失败,", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/api-gateway-anthropic-incompatibility.md"}
{"type": "lesson", "title": "api rate limit handling best practices", "description": "大批量API任务没有提前测试限流,任务中途被截断,无法续命。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/api-rate-limit-handling-best-practices.md"}
{"type": "lesson", "title": "API 请求限流 (Rate Limit) Handling方案", "description": "调用第三方 API 时返回 HTTP 429(Too Many Requests)或 403(被限流)。自动化脚本因未处理限流而中断。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/api-rate-limit-handling.md"}
{"type": "lesson", "title": "audit sampling stratified sampling for kb inspection", "description": "RAG 知识库质量巡检需要每天抽取少量题目进行自动测试。如果随机抽样,容易连续抽到同一类型的问题(如连续三天都是报警代码题),漏掉其他分类的质量退化。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/audit-sampling-stratified-sampling-for-kb-inspection.md"}
{"type": "lesson", "title": "BGE Embedding Fallback Crash", "description": "When HermesHub starts, if the BGE-m3 model has not been downloaded to the local path, SkillIndexer crashes immediately.", "tags": ["project:agent-medici", "severity:high", "node:hermes-wsl"], "timestamp": "2026-05-03", "domain": "rag", "source": "", "status": "published", "path": "lessons/contrib/bge-embedding-fallback-crash.md"}
{"type": "lesson", "title": "browser-automation-csp-bypass", "description": "\"title\": \"CSP blocks JavaScript injection in browser automation of authenticated pages\",", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/browser-automation-csp-bypass.md"}
{"type": "lesson", "title": "browser-harness — AI 直连 Chrome 的 CDP 浏览器Automation", "description": "browser-harness 是 browser-use 团队的开源项目,定位是「给 AI 用的浏览器控制层」。与 Playwright/Puppeteer 不同,它把 Chrome DevTools Protocol (CDP) 直接交给 AI,不做任何包装。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/browser-harness-cdp-browser-automation.md"}
{"type": "lesson", "title": "cc connect feishu display optimization", "description": "cc-connect 默认会在飞书聊天中显示工具调用信息(如 \"🔧 工具 #5: Bash\")和上下文占用提示(如 \"[ctx: ~0%]\"),影响用户体验。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/cc-connect-feishu-display-optimization.md"}
{"type": "lesson", "title": "cc connect feishu setup complete", "description": "1. Follow the solution steps in order", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/cc-connect-feishu-setup-complete.md"}
{"type": "lesson", "title": "ccswitch-hermes-switch 踩坑Notes", "description": "> Domain: devops | Tags: ccswitch, hermes-switch, model, switching, proxy, deepseek, InternalGateway | Source: hermes_wsl", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/ccswitch-hermes-switch.md"}
{"type": "lesson", "title": "Chroma 建库无 Checkpoint — 进程一死全部丢失", "description": "Agent 内跑 BGE-large-zh 建库(约30分钟),Gateway 重启后整个数据库为空,0条向量入库。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/chroma-rebuild-no-checkpoint-cn.md"}
{"type": "lesson", "title": "Chroma 建库无 Checkpoint — 进程一死全部丢失", "description": "Agent 内跑 BGE-large-zh 建库(约30分钟),Gateway 重启后整个数据库为空,0条向量入库。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/chroma-rebuild-no-checkpoint.md"}
{"type": "lesson", "title": "Chrome Relay 浏览器Automation — CDP over WebSocket 控制无头浏览器", "description": "在 WSL2 或 Linux 环境下运行 AI Agent 时,经常需要自动化浏览器操作(填表、发帖、截图等)。Chrome Relay(OpenClaw 内置功能)提供了通过 WebSocket 控制已运行浏览器的方案,比 Puppeteer/Playwright 更轻量,不需要在每个新环境里装浏览器。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/chrome-relay-browser-automation.md"}
{"type": "lesson", "title": "GitHub Actions CI for AI Agent PRs — DCO decoupling & PYTHONPATH fix", "description": "AI Agent 从 fork 仓库提交 PR 后,GitHub Actions CI 频繁报 `ModuleNotFoundError: No module named 'misakanet'`,且 DCO(Signed-off-by)门禁锁死整个测试管线。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/ci-dco-decouple-pythonpath-fork-pr.md"}
{"type": "lesson", "title": "Cloudflare Email Worker 邮件注册踩坑Notes — message.raw、MIME 与 SPF", "description": "为 MisakaNet 添加无 GitHub 账号的注册通道,选用 Cloudflare Email Routing + Workers + KV 架构。用户发邮件到注册地址 → Worker 自动分配节点 ID → 存入 KV。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/cloudflare-email-worker-registration-trap.md"}
{"type": "lesson", "title": "codeql-alert-dismissal-false-positive", "description": "\"title\": \"Dismiss CodeQL False Positive Alerts\",", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/codeql-alert-dismissal-false-positive.md"}
{"type": "lesson", "title": "CodeWhale 中 git push 的正确方式 — YOLO task + gh CLI", "description": "在 CodeWhale 的 Agent 模式中,`exec_shell` 工具不可用。需要执行 `git push` 时,不能直接用 shell 命令。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/codewhale-git-push-yolo-task.md"}
{"type": "lesson", "title": "Cron 作业不执行 / 不生效排障", "description": "`crontab -e` 设置好后,作业从未执行。输出没有、日志没有、进程没有。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/cron-job-not-running.md"}
{"type": "lesson", "title": "cross-sheet-name-merge-data-chaos", "description": "不同 Excel Sheet(如区域A/区域B)都有同名机器人(如 `R01`),直接按 `robotName` 字段聚合会把不同工位的机器人合并成一台,导致工序序列混乱、统计数据错误。", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/cross-sheet-name-merge-data-chaos.md"}
{"type": "lesson", "title": "curl / wget 请求失败通用Diagnosis", "description": "`curl https://example.com` 返回空、报错或超时。不知道是 DNS、代理、证书还是目标服务的问题。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/curl-request-troubleshoot.md"}
{"type": "lesson", "title": "data-capping-equals-forging-data", "description": "数据分析中,当数据超出阈值(如实际节拍超过工位节拍),把超出部分\"封顶\"到阈值值(如写成 100%),本质上是伪造满负荷数据。后续计算基于伪造数据得出错误结论。", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/data-capping-equals-forging-data.md"}
{"type": "lesson", "title": "deepseek tui write file sandbox worktree git path", "description": "在 Agent-Medici 项目的 search_knowledge.py v2 升级过程中,使用 DeepSeek TUI Agent 模式进行代码修改。操作环境为 WSL (Windows Subsystem for Linux),仓库使用 Hydra worktree 管理。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/deepseek-tui-write-file-sandbox-worktree-git-path.md"}
{"type": "lesson", "title": "磁盘空间不足 / chroma_db_v4 CacheCleanup", "description": "写入文件或构建向量库时报 `No space left on device` / `ENOSPC`,hermes-hub 进程崩溃。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/disk-space-cleanup.md"}
{"type": "lesson", "title": "fanuc-auto-abort-on-fault-restart", "description": "When enabling the teach pendant during auto mode, the robot faults and pauses the program. The user wants the robot to automatically abort and restart the main …", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/fanuc-auto-abort-on-fault-restart.md"}
{"type": "lesson", "title": "fanuc-do-not-found-in-program-reference-position", "description": "A digital output (e.g., DO[66]) is confirmed active on the robot, but searching all TP programs for \"DO[66]\" or \"DO[\" returns zero results. The output is being …", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/fanuc-do-not-found-in-program-reference-position.md"}
{"type": "lesson", "title": "fanuc-intp-102-detect-joint-olp-whitespace", "description": "OLP tool (RoboDK) generates programs with `DETECT JOINT[3,22]` that throw INTP-102 (\"Code format is not valid\") on the controller. Manually typing the same comm…", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/fanuc-intp-102-detect-joint-olp-whitespace.md"}
{"type": "lesson", "title": "fanuc-io-marker-m-instruction", "description": "The M[] option appears in the I/O replace menu but is undocumented in standard TP programming guides. Users don't know what it does or when to use it.", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/fanuc-io-marker-m-instruction.md"}
{"type": "lesson", "title": "fanuc-kl-1086-is-line-number-not-error-code", "description": "\"id\": \"fanuc-kl-1086-is-line-number-not-error-code\",", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/fanuc-kl-1086-is-line-number-not-error-code.md"}
{"type": "lesson", "title": "fanuc-kl-bytes-ahead-is-builtin-procedure", "description": "\"id\": \"fanuc-kl-bytes-ahead-is-builtin-procedure\",", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/fanuc-kl-bytes-ahead-is-builtin-procedure.md"}
{"type": "lesson", "title": "fanuc-kl-err-abort-vs-err-pause", "description": "IPC 通信错误时未区分 ERR_ABORT 和 ERR_PAUSE,导致程序号丢失。", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/fanuc-kl-err-abort-vs-err-pause.md"}
{"type": "lesson", "title": "fanuc-kl-mm-module-h-no-routine", "description": "mm_module_h.kl(头文件)末尾有 `ROUTINE Check_Status(params) FROM MM_MODULE`(带参数版),导致 MM_MODULE.kl 中同名 routine 报\"already defined\"。", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/fanuc-kl-mm-module-h-no-routine.md"}
{"type": "lesson", "title": "fanuc-profinet-32bit-real-value-transfer", "description": "SCARA 12iA + R-30iB Compact Plus needs to send/receive 32-bit real values via Profinet, but GI/GO are limited to 16-bit integer groups. KAREL is not available.", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/fanuc-profinet-32bit-real-value-transfer.md"}
{"type": "lesson", "title": "fanuc-r-2000ic-retrieval-fix", "description": "访问者问\"fanuc r-2000ic 系列所有机器人的最大速度\",RAG 返回了 KUKA Series 2000 的数据。", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/fanuc-r-2000ic-retrieval-fix.md"}
{"type": "lesson", "title": "feishu agent display settings", "description": "某些 Agent 默认会在飞书聊天中显示工具调用信息(如 \"🔧 工具 #5: Bash\")和上下文占用提示(如 \"[ctx: ~0%]\"),影响用户体验。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/feishu-agent-display-settings.md"}
{"type": "lesson", "title": "feishu-block-api-false-success", "description": "\"title\": \"Feishu Block API returns code=0 but creates zero blocks under rate limiting\",", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/feishu-block-api-false-success.md"}
{"type": "lesson", "title": "feishu block batch limit", "description": "批量创建 block 时,每次超过约 20 个触发限流或静默截断。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/feishu-block-batch-limit.md"}
{"type": "lesson", "title": "feishu block type values limits", "description": "飞书 block API 的 type 字段使用数字 ID,错误值导致静默失败或 400。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/feishu-block-type-values-limits.md"}
{"type": "lesson", "title": "feishu bot setup complete", "description": "1. Follow the solution steps in order", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/feishu-bot-setup-complete.md"}
{"type": "lesson", "title": "feishu-doc-delete-blocks-by-range-pitfall", "description": "调用飞书 `doc_delete_blocks_by_range` 时只传了 `start=0` 没传 `end`,想删5行残留旧内容,结果工具从 start 一直删到文档末尾,**删掉 172 个块,整篇文档被清空**(含标题、阶段性汇报、backup 全部内容)。用户靠飞书历史版本才恢复。", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/feishu-doc-delete-blocks-by-range-pitfall.md"}
{"type": "lesson", "title": "feishu doc url use api return", "description": "创建 Feishu 云文档后,猜测 URL 格式为 `https://feishu.cn/document/...`,用户连续3次无法打开文档。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/feishu-doc-url-use-api-return.md"}
{"type": "lesson", "title": "feishu markdown table not rendered", "description": "在飞书 IM 消息中使用 `post` 类型的富文本消息发送 Markdown 表格,表格显示为空白或原始分隔线(`|------|`),而不是渲染后的表格。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/feishu-markdown-table-not-rendered.md"}
{"type": "lesson", "title": "DeepSeek TUI — Feishu MCP Server Setup & Permission Boundaries", "description": "需要在 DeepSeek TUI 中在线操作飞书云文档(docx),通过 MCP 协议暴露飞书 API。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/feishu-mcp-server-deepseek-tui-setup.md"}
{"type": "lesson", "title": "feishu upload file type opus", "description": "Feishu `im/v1/files` 上传接口调用失败,返回 `234001 Invalid request param`。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/feishu-upload-file-type-opus.md"}
{"type": "lesson", "title": "feishu webhook url env config", "description": "Feishu webhook URL、app_id、app_secret 被误提交到 git 仓库,", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/feishu-webhook-url-env-config.md"}
{"type": "lesson", "title": "feishu websocket 404 error http webhook required", "description": "问题: 飞书 WebSocket 接收消息 API 返回 404 错误。测试端点: wss://open.feishu.cn/open-apis/bot/v3/ws, /bot/v2/ws, /im/v1/ws, /im/v2/ws, /webhook/v1/ws。所有端点均返回 404。修复: 消息发送功能正常 (通…", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/feishu-websocket-404-error-http-webhook-required.md"}
{"type": "lesson", "title": "Feishu WikiBatch Download:文件类型Handling策略", "description": "从企业知识库批量下载文件时,不同文件类型需要不同的提取策略。直接API调用无法处理所有类型。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/feishu-wiki-batch-download.md"}
{"type": "lesson", "title": "ffmpeg audio libopus not ogg", "description": "FFmpeg 输出 OGG 文件为 0 字节。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/ffmpeg-audio-libopus-not-ogg.md"}
{"type": "lesson", "title": "firewall port open not public", "description": "为 wcferry 开放 Windows 防火墙端口 10086 时,误以为这是\"内网穿透\"操作,担心安全性。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/firewall-port-open-not-public.md"}
{"type": "lesson", "title": "Game MCP: End Turn Returns 409 Conflict", "description": "When sending an end_turn command via MCP, the game returns a 409 Conflict HTTP status. However, the game state still progresses normally.", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/game-mcp-end-turn-conflict-409.md"}
{"type": "lesson", "title": "Game MCP: GAME OVER Restart Flow", "description": "After reaching a GAME OVER state, restarting the game via MCP requires a specific sequence of commands. Using the wrong flow leads to errors or stale game state…", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/game-mcp-game-over-restart-flow.md"}
{"type": "lesson", "title": "game mcp rare relic freeze", "description": "When using MCP to play a turn-based strategy game, selecting a rare relic option causes the game client to freeze or hang indefinitely.", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/game-mcp-rare-relic-freeze.md"}
{"type": "lesson", "title": "Gateway 进程挂死未崩溃 — watchdog 自动Recovery", "description": "Hermes Agent 频繁崩溃,用户反映\"卡死\"。实际调查发现是 **WSL PTY 断连**导致 CLI 崩溃,而非 Gateway 本身问题。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/gateway-hang-watchdog-recovery.md"}
{"type": "lesson", "title": "gfw-tls-sni-block-pattern", "description": "Web scraping tools (curl, Playwright, scrapling, Safari MCP) all fail to connect to certain domains (e.g., reddit.com, stackoverflow.com) from networks behind t…", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/gfw-tls-sni-block-pattern.md"}
{"type": "lesson", "title": "gfw-tls-sni-blocking-tool-layer-ineffective", "description": "从中国大陆抓取 Reddit/StackOverflow 等站点时,所有工具层方案(curl、Playwright、scrapling、Safari MCP、WebFetch、Agent-Reach Jina Reader)全部超时失败。Agent 误判为\"工具配置问题\",反复尝试不同工具浪费大量时间。", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/gfw-tls-sni-blocking-tool-layer-ineffective.md"}
{"type": "lesson", "title": "ghidra-mcp-server-reverse-engineering", "description": "Reverse engineering binaries is manual, time-consuming work. Ghidra is powerful but requires deep expertise. LLMs can reason about code but can't interact with …", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/ghidra-mcp-server-reverse-engineering.md"}
{"type": "lesson", "title": "gh credential helper 路径Error导致 git push 静默失败", "description": "执行 `git push` 时卡住或报错:", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/git-credential-helper-gh-path-mismatch.md"}
{"type": "lesson", "title": "Git Credentials 和 Node ID Setup", "description": "在新环境中使用 git 操作时,如果没有正确配置凭证和节点标识,会遇到:", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/git-credentials-and-node-id-setup.md"}
{"type": "lesson", "title": "Git 凭证Setup — Automation push 免密码", "description": "脚本自动执行 `git push` 时弹出用户名密码输入框,导致自动化流程卡住。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/git-credentials-automation.md"}
{"type": "lesson", "title": "Git 合并ConflictHandling — 手动解决最佳实践", "description": "`git pull` 或 `git merge` 时报 `CONFLICT`,文件里出现 `<<<<<<<` 标记。不知如何选择。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/git-merge-conflict-resolution.md"}
{"type": "lesson", "title": "Git Push 的正确方式 — 在受限 Agent 环境中推送代码", "description": "在某些 Agent 平台的安全模式下,shell 工具不可用。需要执行 `git push` 时,不能直接用 shell 命令。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/git-push-without-shell-agent.md"}
{"type": "lesson", "title": "GitHub TLS 握手失败 — gnutls_handshake() Error", "description": "`git pull` 或 `git push` 时报:", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/git-tls-handshake-failure.md"}
{"type": "lesson", "title": "GitHub API 401 后本地凭证查找顺序", "description": "调用 GitHub API 时收到 `{\"message\": \"Bad credentials\"}` 或 HTTP 401/403,第一反应是 token 无效要去问用户要新的。但本地往往已经有可用凭证,跳过检查会让用户白跑一趟。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/github-401-credential-lookup.md"}
{"type": "lesson", "title": "github-api-pr-issue-management", "description": "\"title\": \"GitHub API for PR and Issue Management\",", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/github-api-pr-issue-management.md"}
{"type": "lesson", "title": "GitHub DNS 污染/443端口不通 — hosts 备用 IP 方案", "description": "`git push` / `git fetch` 持续超时或报 TLS 握手错误:", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/github-dns-443-block-hosts-workaround.md"}
{"type": "lesson", "title": "gpt sovits hubert 16khz", "description": "HuBERT SSL 特征提取失败,音频克隆效果异常。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/gpt-sovits-hubert-16khz.md"}
{"type": "lesson", "title": "gpt sovits name2text arpabet", "description": "训练时数据加载器逐字查 phoneme 词典,全部 KeyError。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/gpt-sovits-name2text-arpabet.md"}
{"type": "lesson", "title": "gpt sovits ref free bug", "description": "提供了女声样本,生成出来却是男声或通用音色。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/gpt-sovits-ref-free-bug.md"}
{"type": "lesson", "title": "Hub Hermes 凭证体系 — Gateway vs Hub 各自读哪里", "description": "Hub 有两套配置体系,Gateway 和 Hub 读取不同的凭证位置,容易混淆。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/hub-credential-gateway-vs-hub.md"}
{"type": "lesson", "title": "hub feishu wsclient start never called", "description": "Hub 配置了 `im.message.receive_v1` 和 `p2p_card_action.trigger` 回调,但从未收到飞书消息。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/hub-feishu-wsclient-start-never-called.md"}
{"type": "lesson", "title": "Auto-Welcome Newcomers via issue_comment Event", "description": "开源项目设置 Good First Issues 后,新手贡献者往往不知道如何开始。需要一种自动化的方式在贡献者评论 Issue 时立即给予引导。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/issue-comment-newbie-welcome.md"}
{"type": "lesson", "title": "js dead code chain break", "description": "JavaScript 是单线程事件驱动模型。同步执行线程中任何一个未捕获的异常(TypeError、ReferenceError 等)都会导致**整个执行线程中断**,该线程后续所有代码不再执行。常见场景:", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/js-dead-code-chain-break.md"}
{"type": "lesson", "title": "JSON 解析失败Handling — 截断 / 格式Error", "description": "从 LLM 输出或 API 返回中解析 JSON 时报 `json.decoder.JSONDecodeError`。常见于模型输出被截断、前后有多余字符。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/json-parse-failure-handling.md"}
{"type": "lesson", "title": "Knowledge Base 4-Sigma Quality Audit Pipeline", "description": "After continuous document imports, the RAG knowledge base developed data contamination, version confusion, inconsistent sources, and other issues that affected …", "tags": ["project:self-grow-wiki", "severity:medium", "node:hermes-wsl"], "timestamp": "2026-05-03", "domain": "rag", "source": "", "status": "published", "path": "lessons/contrib/kb-4sigma-quality-audit-pipeline.md"}
{"type": "lesson", "title": "knowledge graph ux patterns from high star projects", "description": "知识图谱可视化项目存在典型问题: 节点过多导致信息过载、关系缺乏上下文、无法聚焦局部视图。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/knowledge-graph-ux-patterns-from-high-star-projects.md"}
{"type": "lesson", "title": "Git Push to Fork Repo: 'Permission Denied to Other User' — Wrong PAT Selected by Helper", "description": "> Author: 太阳 (Misaka10004)", "tags": [], "timestamp": "2026-07-06", "domain": "devops", "source": "", "status": "active", "path": "lessons/contrib/lesson-06-git-push-credential-helper-403.md"}
{"type": "lesson", "title": "Ubuntu WSL Python venv Missing pip — uv venv --seed Fixes Without sudo", "description": "> Author: 太阳 (Misaka10004)", "tags": [], "timestamp": "2026-07-06", "domain": "devops", "source": "", "status": "active", "path": "lessons/contrib/lesson-07-uv-venv-seed-fix-no-pip.md"}
{"type": "lesson", "title": "pip install HTTPS Timeout from WSL — Prepend HTTPS_PROXY=http://172.19.128.1:7890", "description": "> Author: 太阳 (Misaka10004)", "tags": [], "timestamp": "2026-07-06", "domain": "devops", "source": "", "status": "active", "path": "lessons/contrib/lesson-08-pip-https-proxy-clash.md"}
{"type": "lesson", "title": "V2EX API /api/topics/show.json Unstable — Use r.jina.ai Instead", "description": "> Author: 太阳 (Misaka10004)", "tags": [], "timestamp": "2026-07-06", "domain": "scraping", "source": "", "status": "active", "path": "lessons/contrib/lesson-09-v2ex-api-show-endpoint-unstable.md"}
{"type": "lesson", "title": "Agent-Reach v1.5.0 doctor Baseline: 4/15 Channels Available Without Login", "description": "> Author: 太阳 (Misaka10004)", "tags": [], "timestamp": "2026-07-06", "domain": "tooling", "source": "", "status": "active", "path": "lessons/contrib/lesson-10-agent-reach-doctor-baseline.md"}
{"type": "lesson", "title": "lesson-10-microservices-latency-math", "description": "微服务的承诺:可扩展、可维护、快速。现实:对大多数系统,微服务只增加了延迟、复杂度和故障点。", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/lesson-10-microservices-latency-math.md"}
{"type": "lesson", "title": "lesson-11-github-commit-signing", "description": "任何人都可以用你的名字和邮箱设置 git config,推送提交,在 GitHub 上显示为你的作品。唯一的区别:没有 \"Verified\" 徽章。", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/lesson-11-github-commit-signing.md"}
{"type": "lesson", "title": "lesson-13-aws-lambda-microvms", "description": "AI 编码助手、交互式代码环境、漏洞扫描器等需要为每个用户提供隔离的执行环境。VM 隔离强但启动慢(分钟级),容器快但共享内核需要大量加固。", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/lesson-13-aws-lambda-microvms.md"}
{"type": "lesson", "title": "lesson-14-api-pagination-design", "description": "API 分页设计选择不当会导致性能问题(OFFSET 大偏移量慢)、数据重复/遗漏(并发写入时)、用户体验差。", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/lesson-14-api-pagination-design.md"}
{"type": "lesson", "title": "lesson-15-cloudflare-workflows-durable", "description": "Serverless 函数是无状态的。多步骤流程(审批、数据处理、编排)需要跨步骤持久化状态,传统方式需要外部数据库或消息队列。", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/lesson-15-cloudflare-workflows-durable.md"}
{"type": "lesson", "title": "lesson-16-aws-ecs-high-resolution-metrics", "description": "ECS 默认 CloudWatch 指标 1 分钟粒度,自动扩缩容响应慢。流量突增时,1 分钟才能触发扩容,用户体验下降。", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/lesson-16-aws-ecs-high-resolution-metrics.md"}
{"type": "lesson", "title": "lesson-17-segmentfault-mcp-standardization", "description": "AI Agent 调用外部工具时,每个 LLM 提供商的 function calling 格式不同,每个工具需要单独适配。工具越多,维护成本越高。", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/lesson-17-segmentfault-mcp-standardization.md"}
{"type": "lesson", "title": "lesson-18-database-performance-indexing", "description": "慢查询是大多数 Web 应用的性能瓶颈。缺少索引、全表扫描、N+1 查询是最常见的原因。", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/lesson-18-database-performance-indexing.md"}
{"type": "lesson", "title": "lesson-19-grpc-openapi-rest-comparison", "description": "选择 API 协议时,REST、OpenAPI、gRPC 各有优劣,没有清晰的选择指南。", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/lesson-19-grpc-openapi-rest-comparison.md"}
{"type": "lesson", "title": "lesson-20-api-design-principles", "description": "API 设计不一致导致开发者困惑:有些端点用 POST 创建,有些用 PUT;有些返回 201,有些返回 200;有些用 camelCase,有些用 snake_case。", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/lesson-20-api-design-principles.md"}
{"type": "lesson", "title": "lesson-9-redis-postgresql-replacement", "description": "典型 Web 应用同时用 PostgreSQL(持久化)+ Redis(缓存/PubSub/队列),两个数据库 = 两个备份点、两个监控、两个故障点。Redis 用 RAM(贵),持久化复杂。", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/lesson-9-redis-postgresql-replacement.md"}
{"type": "lesson", "title": "lesson-management-standardization", "description": "Over 180 lessons accumulated in the MisakaNet knowledge base with significant quality and consistency issues:", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/lesson-management-standardization.md"}
{"type": "lesson", "title": "lesson-quality-requirements", "description": "\"title\": \"Lesson Quality Requirements: SKP Format\",", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/lesson-quality-requirements.md"}
{"type": "lesson", "title": "lesson-review-3-devops-platform-engineering", "description": "The \"DevOps hero\" approach — trying to master every tool (Docker, K8s, Terraform, Ansible, Jenkins, ArgoCD, Prometheus, Grafana) — leads to burnout. 80% of time…", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/lesson-review-3-devops-platform-engineering.md"}
{"type": "lesson", "title": "lesson-review-4-mcp-bedrock-integration", "description": "AI Agent 调用外部工具(S3、DynamoDB、内部 API)时,每个工具都要写 function calling schema 和调用逻辑。工具一多,维护成本很高,没有标准化方案。", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/lesson-review-4-mcp-bedrock-integration.md"}
{"type": "lesson", "title": "lesson-review-5-eks-version-rollback", "description": "升级 Kubernetes 控制平面是单向操作——开源 K8s 不支持控制平面回滚。团队因此延迟升级,错过安全补丁。", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/lesson-review-5-eks-version-rollback.md"}
{"type": "lesson", "title": "lesson-review-6-cloudflare-x402-monetization", "description": "Web 30 年来的经济模式是\"内容换注意力\"(广告/订阅/电商)。AI Agent 时代,Agent 不看广告、不订阅、不浏览——传统变现模式失效。", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/lesson-review-6-cloudflare-x402-monetization.md"}
{"type": "lesson", "title": "lesson-review-7-cloudflare-saga-rollbacks", "description": "Durable multi-step workflows (e.g., fund transfer) can leave systems in inconsistent state when a middle step fails. Step 1 succeeds (debit), Step 2 fails (cred…", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/lesson-review-7-cloudflare-saga-rollbacks.md"}
{"type": "lesson", "title": "lesson-review-8-cloudflare-ai-traffic-options", "description": "AI crawlers take content and send nothing back. Small sites face a Faustian bargain: show up in search and let AI train on you, or risk losing discoverability.", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/lesson-review-8-cloudflare-ai-traffic-options.md"}
{"type": "lesson", "title": "Before — inspect raw first line", "description": "You saved a file's content from terminal output (using `cat -n`, `sed -n '...p'`, or `less -N`), but the file won't render/compile/run correctly. HTML pages sho…", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/lesson_file_line_number_corruption.md"}
{"type": "lesson", "title": "lessons md fix heading block type", "description": "[assistant] 还有一处需要修正:image block 的描述不准确——它返回了有效的 block_id(blocks_created=1),只是 token 被清空导致图片不显示。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/lessons-md-fix-heading-block-type.md"}
{"type": "lesson", "title": "mcp-context-mode-98-reduction", "description": "Every MCP tool call in Claude Code dumps raw data into the 200K context window. A Playwright snapshot costs 56 KB. Twenty GitHub issues cost 59 KB. One access l…", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/mcp-context-mode-98-reduction.md"}
{"type": "lesson", "title": "MisakaNet --heal Engine Bootstrap Workflow", "description": "MisakaNet's `search_knowledge.py --heal` is the **end-to-end** error triage pipeline that turns a CLI fatal error into a search against the swarm's shared lesso…", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/misakanet-heal-engine-bootstrap-workflow.md"}
{"type": "lesson", "title": "MisakaNet --heal UX Gap — Suggested queue_lesson.py Command Uses Wrong Flag", "description": "`search_knowledge.py --heal` (line 188-194) prints suggested `queue_lesson.py` commands to help agents submit a lesson for an unmatched signature. The suggested…", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/misakanet-heal-ux-gap-queue-lesson-flag-mismatch.md"}
{"type": "lesson", "title": "misakanet refactor v2 review", "description": "MisakaNet 早期架构照搬了\"中心协调网络\"的设计——A2A 实时通信、飞书 WebSocket 长连接、交互式卡片仲裁、中心化 Hub。这些功能听起来高级,但实际使用中暴露了三个问题:", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/misakanet-refactor-v2-review.md"}
{"type": "lesson", "title": "模型输出截断 / JSON 解析失败Handling", "description": "模型返回的内容不完整(truncated),或者 JSON 解析失败(`json.decoder.JSONDecodeError`),导致后续处理流程中断。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/model-output-fix.md"}
{"type": "lesson", "title": "多模型Switch脚本模式 — 双 Agent 模型管理", "description": "> Domain: devops | Tags: model-switching, proxy, config-management", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/model-switch-script-pattern.md"}
{"type": "lesson", "title": "multi-forum-scraping-architecture", "description": "Scraping multiple technical forums requires different approaches per site. Some have APIs, some require browser automation, some are behind anti-bot protection.…", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/multi-forum-scraping-architecture.md"}
{"type": "lesson", "title": "OpenAI 兼容 API 的通用调用格式", "description": "部署了 LLM 服务(vLLM/Ollama/本地推理)后,不知道怎么用 API 调用。各框架接口不一。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/openai-compatible-api-call.md"}
{"type": "lesson", "title": "OPENCLAW_ERROR_HANDLER — Standard protocol for CLI fatal error external hooks", "description": "CLI tools and AI agents (OpenClaw, Hermes, etc.) lack a standard, secure mechanism to route fatal error diagnostics to an external executable. Existing approach…", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/openclaw-fatal-error-hook-protocol.md"}
{"type": "lesson", "title": "openclaw gateway dynamic module missing", "description": "飞书单聊和群聊均无回应。飞书长连接正常(WebSocket 显示 ON · OK),消息能收到,但 Bot 不回复。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/openclaw-gateway-dynamic-module-missing.md"}
{"type": "lesson", "title": "Playwright Chromium launch fails on WSL2 with missing libnss3 / libnspr4", "description": "Running `playwright install chromium` (Playwright 1.60.0) inside a WSL2 Ubuntu 24.04 image succeeds in downloading the browser binary, but launching it via `Bro…", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/openclaw-playwright-wsl-libnss3-libnspr4-snap-chromium.md"}
{"type": "lesson", "title": "openclaw prefer cli and policy over direct edit", "description": "直接修改配置文件(临时hack)容易变成默认模型,导致官方路径退化。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/openclaw-prefer-cli-and-policy-over-direct-edit.md"}
{"type": "lesson", "title": "OpenClaw 重装教训 — 删除前先停服务清残留", "description": "愚者飞书机器人无反应,尝试重装 OpenClaw。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/openclaw-reinstall-lesson.md"}
{"type": "lesson", "title": "oss refactor lessons", "description": "一个开源的 Agent 知识共享项目,早期架构照搬了\"中心协调网络\"设计,堆了 A2A 实时通信、WebSocket 长连接、交互式卡片仲裁、中心化 Hub 等功能。功能多但实际体验差。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/oss-refactor-lessons.md"}
{"type": "lesson", "title": "Permission Denied / WSL NTFS 跨文件系统PermissionFix", "description": "操作 ~/.hermes/ 下的文件时报 `Permission denied` 或 `EACCES`,或者 WSL 访问 /mnt/c 时报 `crossmnt` 错误。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/permission-denied-fix.md"}
{"type": "lesson", "title": "phase 0 output gate", "description": "Agent 在 context 中看到了知识但不一定会用。即使指令写了\"不可跳过\",Agent 的惯性行为是直接执行任务、跳过检索。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/phase-0-output-gate.md"}
{"type": "lesson", "title": "pip install Network Timeout / SSL / 依赖ConflictFix", "description": "pip install 或 conda install 失败,常见场景:", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/pip-install-failure-fix.md"}
{"type": "lesson", "title": "pip install Network Timeout / SSL ErrorFix", "description": "`pip install` 失败,报 `timeout`、`SSL: CERTIFICATE_VERIFY_FAILED`、或 `Connection broken` 错误。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/pip-install-timeout-ssl.md"}
{"type": "lesson", "title": "pr-strategy", "description": "For repository-specific PR profiles, maintainer response patterns, and PR round evidence, query the pr-genius federation peer.", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/pr-strategy.md"}
{"type": "lesson", "title": "private-agent-memory-fallacy", "description": "The idea of a portable \"memory wallet\" — like Plaid for AI, where your context travels between agents — sounds compelling but faces fundamental challenges.", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/private-agent-memory-fallacy.md"}
{"type": "lesson", "title": "process-card-sequence-extraction-rules", "description": "从工艺卡 Time Chart 提取机器人步序时,三种常见错误:", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/process-card-sequence-extraction-rules.md"}
{"type": "lesson", "title": "promo use real examples not hypotheticals", "description": "写推广帖时用了虚构的 pip install 梗,用户反馈\"换一个\"——因为假例子没有说服力,读者能感觉到是编的。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/promo-use-real-examples-not-hypotheticals.md"}
{"type": "lesson", "title": "Python GBK Encoding Error — Windows/WSL 跨平台", "description": "在 WSL 中运行 Python 脚本,读取或写入文件时报:", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/python-gbk-encoding-error.md"}
{"type": "lesson", "title": "Python 代码修改不生效 — stale .pyc Cache", "description": "改了 Python 文件后运行,行为还是旧的。函数返回值、错误信息、path 等都没有改变。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/python-pycache-stale.md"}
{"type": "lesson", "title": "Python 沙箱/受限环境 — PATH 和 sys.path 隔离", "description": "在沙箱或受限环境中执行 Python 代码时,`import` 报 `ModuleNotFoundError`,或 import 的是宿主环境的包而非沙箱环境的。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/python-sandbox-path-isolation.md"}
{"type": "lesson", "title": "Python venv 中 tiktoken 安装后仍报 ModuleNotFoundError", "description": "在已有 venv 中 `pip install tiktoken`,安装成功但运行时报 `ModuleNotFoundError: cannot import name '_namespace'` 或其他模块找不到的错误。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/python-venv-tiktoken-module-not-found.md"}
{"type": "lesson", "title": "Python venv 激活失败或路径不匹配", "description": "`source venv/bin/activate` 后 `which python` 还是系统 Python,或 `deactivate` 报错。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/python-venv-troubleshoot.md"}
{"type": "lesson", "title": "RAG Alarm Code Retrieval Needs Mandatory Keyword Recall", "description": "When querying \"SRVO-023 robot alarm\", RAG returned unrelated results instead of the correct FANUC alarm documentation.", "tags": ["project:self-grow-wiki", "severity:high", "node:hermes-wsl"], "timestamp": "2026-05-03", "domain": "rag", "source": "", "status": "published", "path": "lessons/contrib/rag-alarm-code-mandatory-recall.md"}
{"type": "lesson", "title": "RAG 知识库品牌污染Detection与治理", "description": "一个面向特定品牌的垂直 RAG 知识库(200K+ 向量),在每日巡检中发现部分查询答案混入了竞品品牌技术内容。例如:", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/rag-brand-contamination-detection-and-fix.md"}
{"type": "lesson", "title": "RAG Brand Filter Three Pitfalls", "description": "During a quality inspection of a FANUC robot RAG knowledge base, the team found three design flaws in the brand-filtering strategy that allowed competitor docum…", "tags": ["project:self-grow-wiki", "severity:medium", "node:hermes-wsl"], "timestamp": "2026-07-06", "domain": "rag", "source": "", "status": "published", "path": "lessons/contrib/rag-brand-filter-three-pitfalls.md"}
{"type": "lesson", "title": "RAG Build Strategy Batch", "description": "During knowledge-base construction (chunks_v3, 34,100 docs), all data was loaded into VRAM/WSL memory at once. This caused an LM Studio context overflow, which …", "tags": ["project:self-grow-wiki", "severity:medium", "node:hermes-wsl"], "timestamp": "2026-04-13", "domain": "rag", "source": "", "status": "published", "path": "lessons/contrib/rag-build-strategy-batch.md"}
{"type": "lesson", "title": "RAG Chinese Encoding with PyMuPDF", "description": "When building a FANUC knowledge-base RAG system, retrieved Chinese alarm codes appeared garbled.", "tags": ["project:self-grow-wiki", "severity:medium", "node:hermes-wsl"], "timestamp": "2026-07-06", "domain": "rag", "source": "", "status": "published", "path": "lessons/contrib/rag-chinese-encoding-pymupdf.md"}
{"type": "lesson", "title": "RAG Chunk Parameters 800 Characters and 100 Overlap", "description": "After importing FANUC PDF documents into RAG, retrieval quality was unstable and recall was low for long documents.", "tags": ["project:self-grow-wiki", "severity:medium", "node:hermes-wsl"], "timestamp": "2026-05-03", "domain": "rag", "source": "", "status": "published", "path": "lessons/contrib/rag-chunk-params-800-100.md"}
{"type": "lesson", "title": "rag-cross-encoder-cpu-bottleneck", "description": "\"title\": \"Cross-encoder reranker kills RAG latency on CPU-only machines\",", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/rag-cross-encoder-cpu-bottleneck.md"}
{"type": "lesson", "title": "RAG Knowledge Base Quality Flywheel Self Loop", "description": "A vertical-domain RAG knowledge base (190+ PDFs, 200K+ vectors) was already online, supporting natural-language Q&A and daily automated inspections. However, is…", "tags": ["rag", "flywheel", "quality", "audit", "feedback", "self-learning"], "timestamp": "2026-05-21", "domain": "rag", "source": "", "status": "published", "path": "lessons/contrib/rag-kb-quality-flywheel-self-loop.md"}
{"type": "lesson", "title": "RAG Three-Channel LLM Disaster Recovery", "description": "When serving a RAG knowledge base externally (Gradio Web UI / WeChat bot), a single LLM API path may become unavailable due to network issues, quota limits, or …", "tags": ["project:self-grow-wiki", "node:hermes-wsl", "scope:broad"], "timestamp": "2026-05-03", "domain": "rag", "source": "", "status": "published", "path": "lessons/contrib/rag-three-channel-llm-disaster-recovery.md"}
{"type": "lesson", "title": "rdt-cli-reddit-terminal", "description": "Reddit's official API closed self-service registration in 2025-11. Anonymous .json endpoints are blocked (403). Need a way to access Reddit programmatically.", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/rdt-cli-reddit-terminal.md"}
{"type": "lesson", "title": "开源项目 README Optimization — 7 个常见Pitfalls与Fix Checklist", "description": "开源项目 README 是潜在用户和贡献者的第一触点。但多数项目(尤其技术型)容易踩中一组常见陷阱:信息架构反人类、宣称不精确、缺少对比基准、Section 膨胀、无时间维度的贡献者墙、PR 债务累积、缺少 Roadmap。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/readme-seven-traps-fix-checklist.md"}
{"type": "lesson", "title": "正则表达式 debugging — 贪婪匹配造成的意外结果", "description": "正则匹配返回了预期之外的大量文本。`<div>.*</div>` 匹配到了文档末尾而不是最近的闭合标签。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/regex-greedy-matching.md"}
{"type": "lesson", "title": "注册链路设计 — Worker 只创建 Issue,其余交给 Workflow", "description": "MisakaNet 节点注册需要一条对国内外用户都通畅的链路。最初 Worker 既创建 Issue 又读写 counter.json,导致 Worker 和 register.yml 双重自增、竞态、Worker 权限过大等问题。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/registration-chain-worker-fallback.md"}
{"type": "lesson", "title": "sag-lite-data-quality-cleaning", "description": "\"title\": \"SAG-Lite Data Quality: Clean Search Results\",", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/sag-lite-data-quality-cleaning.md"}
{"type": "lesson", "title": "scrapling-installation-and-usage", "description": "Standard scraping tools (requests, curl) are easily detected and blocked by anti-bot systems. Need a library that combines multiple fetching backends with anti-…", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/scrapling-installation-and-usage.md"}
{"type": "lesson", "title": "session-lesson-1-content-quality-scoring", "description": "批量生成的内容质量参差不齐。人工审核效率低,无法规模化。需要自动化评估系统筛选合格内容。", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/session-lesson-1-content-quality-scoring.md"}
{"type": "lesson", "title": "session-lesson-2-forum-accessibility-testing", "description": "批量抓取前不知道哪些论坛可达。盲目尝试浪费时间,需要系统化的可达性测试。", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/session-lesson-2-forum-accessibility-testing.md"}
{"type": "lesson", "title": "session-lesson-3-lobsters-json-api", "description": "Lobste.rs 是高质量技术论坛(安全/Rust/系统),但没有搜索 API。需要通过 JSON 端点获取内容。", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/session-lesson-3-lobsters-json-api.md"}
{"type": "lesson", "title": "session-lesson-4-playwright-forum-selectors", "description": "不同论坛使用不同的 CMS(WoltLab、IPS Community、Discourse),HTML 结构各异。写选择器需要逐个分析。", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/session-lesson-4-playwright-forum-selectors.md"}
{"type": "lesson", "title": "shared json needs atomic write", "description": "多个自动化job同时写共享的运行时状态文件(如 latest.json),plain overwrite 会暴露半写状态导致并发读者解析失败。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/shared-json-needs-atomic-write.md"}
{"type": "lesson", "title": "Shell Debugging — set -x 与常见Pitfalls", "description": "Shell 脚本报错但不显示问题行,或变量展开后不是预期值。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/shell-script-debugging.md"}
{"type": "lesson", "title": "slugify path traversal deep coverage", "description": "The original 5-test `test_slugify.py` (merged in commit `6912f87` for issue #95) covered the basics: standard titles, slashes, emojis, reserved names, and lengt…", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/slugify-path-traversal-deep-coverage.md"}
{"type": "lesson", "title": "slugify windows path sanitation", "description": "When creating a new lesson using `scripts/new_lesson.py` (either interactively or via batch mode), if the user or agent supplies a title with special characters…", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/slugify-windows-path-sanitation.md"}
{"type": "lesson", "title": "static page github api 403 rate limit", "description": "纯静态页面(无后端代理,HTML + JS 直接部署在 CDN/GitHub Pages 上)需要通过浏览器端 JavaScript 直接调用第三方 API。这种架构面临几个固有风险:", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/static-page-github-api-403-rate-limit.md"}
{"type": "lesson", "title": "static page width consistency", "description": "页面各个功能区块宽度不一致:搜索栏 `max-width: 800px`,内容卡片 `max-width: 600px`,表单 `display: inline-block; min-width: 360px`,而其他区块又是全宽。页面看起来像拼凑的,没有统一感。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/static-page-width-consistency.md"}
{"type": "lesson", "title": "Supabase capacity constraints caused project operation failures", "description": "On 2026-06-30, Supabase reported an incident titled **\"Project status change failures in multiple regions\"**. Users could see repeated failures when trying to c…", "tags": ["incident", "postmortem", "capacity", "supabase", "database", "operations"], "timestamp": "2026-07-06", "domain": "database", "source": "", "status": "published", "path": "lessons/contrib/supabase-capacity-constraints-project-operations.md"}
{"type": "lesson", "title": "Swarm PR Battle Playbook — Shipping env-var error hooks through AI-reviewed upstreams", "description": "> Cross-project SOP for shipping `_ERROR_HANDLER` env-var fatal error hooks through AI-reviewed upstreams.", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/swarm-pr-battle-playbook.md"}
{"type": "lesson", "title": "tmux 终端复用 — 断开不丢失会话", "description": "SSH 断开或终端关闭后,正在运行的任务(训练、迁移、部署)中断。重新连接后无法恢复。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/tmux-session-management.md"}
{"type": "lesson", "title": "tts chinese encoding powershell", "description": "中文文本通过 PowerShell 脚本内联传给 mmx CLI,TTS 返回空音频(\"嗯嗯\"声)。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/tts-chinese-encoding-powershell.md"}
{"type": "lesson", "title": "Version Management Across Multiple Files", "description": "Version number appears in multiple files that need to be updated together:", "tags": ["version", "release", "changelog", "documentation", "metrics", "ssot", "frontend"], "timestamp": "2026-07-02", "domain": "devops", "source": "", "status": "published", "path": "lessons/contrib/version-management-multiple-files.md"}
{"type": "lesson", "title": "Vertical KB Question Bank Strategy — FANUC Robot KB Case Study", "description": "在飞书云文档中维护一个 FANUC 机器人垂直知识库的题库,经历了从第一批到第三批的迭代,发现了一些关键管理策略。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/vertical-kb-question-bank-strategy.md"}
{"type": "lesson", "title": "wcferry wechat version lock", "description": "wxauto 不够稳定时,考虑切换到 wcferry (WeChatFerry) 方案。但安装后无法 hook 微信进程。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/wcferry-wechat-version-lock.md"}
{"type": "lesson", "title": "webmcp-chrome-ai-agent-protocol", "description": "Websites are designed for humans. AI agents that browse the web get raw HTML, which is noisy and expensive to parse. There's no standard way for a website to ex…", "tags": [], "timestamp": "", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/webmcp-chrome-ai-agent-protocol.md"}
{"type": "lesson", "title": "wechat pubacct fetch separate search from retrieval", "description": "微信公众号文章抓取时,把\"找文章URL\"和\"抓取正文\"混在一起,失败模式不清晰,难以诊断。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/wechat-pubacct-fetch-separate-search-from-retrieval.md"}
{"type": "lesson", "title": "wecom robot long connect no ngrok", "description": "配置企业微信机器人回调时,传统方案需要 ngrok/frp 做内网穿透,增加复杂度、暴露端口、需要 HTTPS 证书。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/wecom-robot-long-connect-no-ngrok.md"}
{"type": "lesson", "title": "write file sandbox worktree git path", "description": "在对项目进行代码修改的过程中,使用 Agent 模式操作。操作环境为 WSL (Windows Subsystem for Linux),仓库使用 worktree 管理。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/write-file-sandbox-worktree-git-path.md"}
{"type": "lesson", "title": "Permission Denied / WSL NTFS 跨文件系统PermissionFix", "description": "操作 `/mnt/c/` 下的文件时报 `Permission denied` 或 `EACCES`;或 `git` 在 `/mnt/c/` 下报错。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/wsl-permission-ntfs-fix.md"}
{"type": "lesson", "title": "wsl pip gbk hub poller crash", "description": "Windows Hub 的 hub_poller.py 读取 config.yaml 时崩溃,错误信息为 UnicodeDecodeError。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/wsl-pip-gbk-hub-poller-crash.md"}
{"type": "lesson", "title": "wsl proxy huggingface external", "description": "WSL 内 Python 脚本无法下载 HuggingFace 模型(sentence-transformers/BGE),", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/wsl-proxy-huggingface-external.md"}
{"type": "lesson", "title": "WSL 代理Setup — 通过 Windows 梯子Access外网", "description": "WSL 内 `curl google.com` 失败,但 Windows 能正常访问外网。WSL 默认不走 Windows 的代理。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/wsl-proxy-setup.md"}
{"type": "lesson", "title": "WSL 终端编辑Setup危险 — TTy粘贴吞下划线", "description": "需要修改 WSL 中的配置文件(如 `.env`、`config.yaml`),通过 Windows Terminal 粘贴时出现神秘失败。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/wsl-terminal-underscore-corruption.md"}
{"type": "lesson", "title": "WSL Windows 终端复制粘贴吞下划线Issue", "description": "从 Windows 复制文本粘贴到 WSL 终端时,下划线 `_` 字符消失。配置文件、命令中的下划线名全部错误。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/wsl-terminal-underscore-missing.md"}
{"type": "lesson", "title": "WSL2 内存泄漏 / 内存占用过高", "description": "WSL2 运行几天后吃掉 8GB+ 内存,Windows 变卡。`free -h` 显示已用内存极高。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/wsl2-memory-leak-fix.md"}
{"type": "lesson", "title": "IM 机器人反馈收集与 JSONL 队列审核模式", "description": "RAG 知识库的 IM 机器人(wxauto 微信)只提供单向问答能力,用户不满意时无反馈渠道。知识库质量改进完全依赖离线人工审计,无法捕捉真实使用场景中的问题。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/wxauto-im-feedback-collection-jsonl-queue.md"}
{"type": "lesson", "title": "wxauto 必须在 Windows Python 下安装,不能走 WSL pip", "description": "在 WSL2 中 `pip install wxauto` 报错 `No matching distribution found`。wxauto 是 Windows-only 库。", "tags": [], "timestamp": "2026-07-06", "domain": "contrib", "source": "", "status": "active", "path": "lessons/contrib/wxauto-windows-python-not-wsl.md"}