misakanet 2.30.0 → 2.30.2

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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "misakanet",
3
- "version": "2.30.0",
3
+ "version": "2.30.2",
4
4
  "description": "Failure-memory network for AI coding agents: search evidence-rated failure lessons, submit new failures, and turn crashes into reusable knowledge.",
5
5
  "author": {
6
6
  "name": "Ikalus1988",
package/README.md CHANGED
@@ -23,7 +23,7 @@ mcp-name: io.github.Ikalus1988/misakanet
23
23
  npx @misaka-net/misakanet-setup
24
24
  ```
25
25
 
26
- 装完**把助手窗口关掉再打开一次**,然后随便问一句带报错的(例如「docker exit code 137 是什么原因」),
26
+ 装完**把助手窗口关掉再打开一次**,然后随便问一句带报错的(例如「pip install timeout 是什么原因」),
27
27
  它应该先去查经验库再回答。状态自检 `npx @misaka-net/misakanet-setup --verify`,卸载 `--uninstall`。
28
28
 
29
29
  **不想用命令行、不知道配置文件在哪?** 把下面这句话**复制粘贴给助手**,它会自己装好、自己验证、用大白话回报:
@@ -147,11 +147,12 @@ for r in results:
147
147
 
148
148
  **Option 5 — DeepSeek Harness (DSH plugin):**
149
149
  ```bash
150
- # Install from npm (recommended — published as misakanet@2.30.0)
151
- dsh plugin add misakanet
150
+ # Install from npm (recommended — published as misakanet@2.30.2)
151
+ # `dsh plugin` forwards to pnpm in the profile directory and requires --profile.
152
+ dsh plugin --profile web add misakanet@2.30.2
152
153
 
153
- # Or install directly from git (same bundle)
154
- # dsh plugin add git+https://github.com/Ikalus1988/MisakaNet.git
154
+ # Or install directly from git (same bundle, plus the repo's own python MCP server)
155
+ # dsh plugin --profile web add git+https://github.com/Ikalus1988/MisakaNet.git
155
156
 
156
157
  # Make the failure-memory SKILL discoverable by agents
157
158
  # (DSH scans ~/.dsh/skills and project .dsh/skills)
@@ -162,11 +163,15 @@ cp -r skills/misakanet ~/.dsh/skills/
162
163
  python3 scripts/mcp_deepseek_adapter.py
163
164
  ```
164
165
 
165
- > **DSH bundle tools (`mcp__misakanet__*`)** are served by the repo's python MCP
166
- > server, which ships only with a **git+ install** (the npm bundle provides the
167
- > skill/CLI surfaces only). For live tools from an npm install, either switch to
168
- > git+ (above) or point a `dsh-mcp-client` row at the remote endpoint
169
- > `https://misakanet.org/mcp` — example patch: `docs/maintenance.md` → dsh bundle.
166
+ > **DSH bundle tools (`mcp__misakanet__*`)** are served by the public endpoint
167
+ > `https://misakanet.org/mcp` (Streamable HTTP), which the bundle row declares — so an
168
+ > **npm install is enough** and no local python is required. A profile that prefers the
169
+ > repo's own stdio server can override the row (`transport: stdio`, `command: python3`,
170
+ > `args: [scripts/mcp_server.py]`).
171
+ >
172
+ > Two install gotchas (#1734): `dsh plugin` needs `--profile <name>`, and a profile whose
173
+ > lockfile predates the release will silently keep an older copy — pin the version
174
+ > (`@2.30.1`) if no `mcp__misakanet__*` tools appear.
170
175
 
171
176
  ### Try it now
172
177
 
@@ -424,7 +429,7 @@ flowchart LR
424
429
  subgraph Local["💻 Local Node (git clone)"]
425
430
  User["Local Agent / Dev"]
426
431
  CLI["CLI — search_knowledge.py"]
427
- MCP["MCP stdio — scripts/mcp_server.py<br/>(misakanet == 2.30.0)"]
432
+ MCP["MCP stdio — scripts/mcp_server.py<br/>(misakanet == 2.30.2)"]
428
433
  Engine["BM25 Engine — engine.py"]
429
434
  Lessons[("lessons/ — git source of truth")]
430
435
  Profile[("profile.json — node profile")]
package/README.zh-CN.md CHANGED
@@ -8,8 +8,8 @@
8
8
 
9
9
  <p align="center">
10
10
  <a href="https://github.com/Ikalus1988/MisakaNet/stargazers"><img src="https://img.shields.io/github/stars/Ikalus1988/MisakaNet?style=social" alt="Stars"/></a>
11
- <a href="https://img.shields.io/badge/nodes-59-green"><img src="https://img.shields.io/badge/nodes-59-green?label=节点" alt="节点"/></a>
12
- <a href="https://img.shields.io/badge/lessons-358-blue"><img src="https://img.shields.io/badge/lessons-358-blue?label=知识" alt="知识"/></a>
11
+ <a href="https://github.com/Ikalus1988/MisakaNet/tree/main/lessons"><img src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/Ikalus1988/MisakaNet/data/badges/nodes.json" alt="节点"/></a>
12
+ <a href="https://github.com/Ikalus1988/MisakaNet/tree/main/lessons"><img src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/Ikalus1988/MisakaNet/data/badges/lessons.json" alt="知识"/></a>
13
13
  <a href="https://github.com/Ikalus1988/MisakaNet/blob/main/LICENSE"><img src="https://img.shields.io/github/license/Ikalus1988/MisakaNet?style=flat&color=blueviolet" alt="License"/></a>
14
14
  </p>
15
15
 
@@ -91,7 +91,7 @@ python3 search_knowledge.py "GitHub token 401"
91
91
  **方式 D:DeepSeek Harness(dsh 插件)与 Python 库**
92
92
 
93
93
  ```bash
94
- # npm 安装(推荐 — 发布为 misakanet@2.30.0)
94
+ # npm 安装(推荐 — 发布为 misakanet@2.30.2)
95
95
  dsh plugin add misakanet
96
96
  # 或直接从 git 安装(同一 bundle)
97
97
  # dsh plugin add git+https://github.com/Ikalus1988/MisakaNet.git
package/cordis.patch.yml CHANGED
@@ -1,9 +1,8 @@
1
- # MisakaNet dsh bundle patch (2026-09-12, DSH STORE compliance)
1
+ # MisakaNet dsh bundle patch (2026-09-12, DSH STORE compliance; transport 2026-09-15)
2
2
  #
3
3
  # Inserts *this* package (an insert row pointing at our own `misakanet` package,
4
- # i.e. index.js) as a profile layer. The row's `config` is the stdio declaration
5
- # for the repo's own python MCP server; index.js reads it and mounts the official
6
- # client at runtime.
4
+ # i.e. index.js) as a profile layer. The row's `config` is the MCP declaration
5
+ # index.js reads when it mounts the official client at runtime.
7
6
  #
8
7
  # Why the wiring is no longer in the patch
9
8
  # ----------------------------------------
@@ -29,18 +28,24 @@
29
28
  # only our own package, and index.js mounts the official client itself
30
29
  # (peer-resolved at runtime, degrading when it is absent).
31
30
  #
32
- # Behaviour notes (unchanged):
33
- # * Registers MisakaNet's stdio MCP server into any dsh profile that lists
34
- # `misakanet` in `dsh.profile.bundles`. Tools are published on ctx.tools as
35
- # `mcp__misakanet__<tool>` (misakanet_search / misakanet_get_lesson / …),
36
- # served by the repo's own python server (scripts/mcp_server.py), which
37
- # self-locates the repo root from __file__.
38
- # * The python MCP server exists only in repo/git+ installs
39
- # (git+https://github.com/Ikalus1988/MisakaNet.git). The npm skill-only bundle
40
- # ships no python, so on such installs the row stays disconnected instead of
41
- # failing boot (failOnStartupError: false).
42
- # * Boot cwd is inherited; run dsh from the repo root for the stdio server to
43
- # start (the plugin-spec sandbox boots at the repo clone).
31
+ # Behaviour notes:
32
+ # * Registers MisakaNet's MCP server into any dsh profile that lists
33
+ # `misakanet` in `dsh.profile.bundles`. Tools appear as
34
+ # `mcp__misakanet__<tool>` (misakanet_search / misakanet_get_lesson / …).
35
+ # * The row points at the PUBLIC Streamable HTTP endpoint, so an **npm install is
36
+ # enough**: tools no longer depend on the repo's python server
37
+ # (scripts/mcp_server.py), which exists only in repo/git+ installs. That was the
38
+ # previous arrangement, and it left every npm install with a disconnected row
39
+ # (issue #1734 — the git+ channel is fragile here: codeload timeouts, and pnpm
40
+ # now blocks git-dependency build scripts until the key is allowed).
41
+ # * `headers.Origin` is what the endpoint's DNS-rebinding guard expects: the
42
+ # worker answers 200 when the header is absent, and 403 for a foreign Origin.
43
+ # * A profile that prefers the local python server can override this row's config
44
+ # (transport stdio, command python3, args [scripts/mcp_server.py], cwd the repo
45
+ # root); index.js merges the row's config over its own defaults.
46
+ # * `failOnStartupError: false` + 60s tool timeout: an unreachable endpoint
47
+ # degrades to a disconnected row instead of failing profile boot, so the skill
48
+ # keeps working offline.
44
49
  # * One row, one id — no double-insert: later patches override by id, and this
45
50
  # id (misakanet-mcp) is unique to this bundle.
46
51
 
@@ -48,12 +53,10 @@
48
53
  - id: misakanet-mcp
49
54
  name: 'misakanet'
50
55
  config:
51
- transport: stdio
56
+ transport: streamable-http
52
57
  serverName: misakanet
53
- command: python3
54
- args:
55
- - scripts/mcp_server.py
56
- env: {}
57
- cwd: ''
58
+ url: https://misakanet.org/mcp
59
+ headers:
60
+ Origin: https://misakanet.org
58
61
  toolCallTimeoutMs: 60000
59
62
  failOnStartupError: false
package/index.js CHANGED
@@ -29,28 +29,33 @@
29
29
  * @deepseek-ai namespace` and rates the listing `route: blocked`
30
30
  * (AI-Scarlett/DSH-Store#747; the rule is in that repo's
31
31
  * scripts/check-plugin-submission.mjs). The patch now inserts *this* package
32
- * (`name: misakanet`) and `apply()` below mounts the official stdio MCP client
33
- * with the row's config — the same runtime behaviour, without naming a
32
+ * (`name: misakanet`) and `apply()` below mounts the official MCP client with
33
+ * the row's config — the same runtime behaviour, without naming a
34
34
  * protected component in the patch.
35
35
  *
36
- * Absence is not failure: when the official client is not resolvable (npm
37
- * skill-only installs, older hosts) `apply()` returns quietly unless the config
38
- * asks to fail loudly, so the skill keeps working and boot never breaks.
36
+ * Absence is not failure: when the official client is not resolvable (older
37
+ * hosts, a profile that never installed DSH's own copy) `apply()` returns
38
+ * quietly unless the config asks to fail loudly, so the skill keeps working
39
+ * and boot never breaks.
39
40
  */
40
41
  export const name = 'misakanet';
41
42
 
42
43
  /**
43
- * The stdio declaration for the repo's own python MCP server. The bundle patch's
44
- * row config overrides any field here, so a profile can point the server at a
45
- * different command or working directory without patching this file.
44
+ * Default MCP declaration: the PUBLIC Streamable HTTP endpoint.
45
+ *
46
+ * This is the transport that works from every install channel. The repo's own
47
+ * python server (`scripts/mcp_server.py`, stdio) only exists in repo/git+
48
+ * checkouts, so defaulting to it left every npm install with a disconnected row
49
+ * (issue #1734). The bundle patch states the same declaration explicitly; the
50
+ * patch's row config is merged over this object, so a profile that wants the
51
+ * local server can point the row at it (transport stdio, command python3,
52
+ * args [scripts/mcp_server.py], cwd the repo root) without patching this file.
46
53
  */
47
54
  export const DEFAULT_MCP_CONFIG = Object.freeze({
48
- transport: 'stdio',
55
+ transport: 'streamable-http',
49
56
  serverName: 'misakanet',
50
- command: 'python3',
51
- args: ['scripts/mcp_server.py'],
52
- env: {},
53
- cwd: '',
57
+ url: 'https://misakanet.org/mcp',
58
+ headers: { Origin: 'https://misakanet.org' },
54
59
  toolCallTimeoutMs: 60000,
55
60
  failOnStartupError: false,
56
61
  });
@@ -64,7 +69,8 @@ export const DEFAULT_MCP_CONFIG = Object.freeze({
64
69
  * that one).
65
70
  *
66
71
  * @param ctx - cordis host context.
67
- * @param config - stdio (or streamable-http) config from the bundle patch row.
72
+ * @param config - MCP config from the bundle patch row (streamable-http by
73
+ * default; stdio is still accepted, e.g. for the repo's python server).
68
74
  */
69
75
  export async function apply(ctx, config = {}) {
70
76
  const options = { ...DEFAULT_MCP_CONFIG, ...config };
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "misakanet",
3
- "version": "2.30.0",
3
+ "version": "2.30.2",
4
4
  "license": "Apache-2.0",
5
- "description": "MisakaNet failure-memory skill — evidence-rated failure lessons for AI agents. DSH bundle: registers the stdio MCP server as mcp__misakanet__* tools (misakanet_search/get_lesson/…). Live bundle tools require a git+ install (the npm skill-only bundle ships no python server); skill/CLI surfaces work in any profile.",
5
+ "description": "MisakaNet failure-memory skill — evidence-rated failure lessons for AI agents. DSH bundle: registers the MCP tools as mcp__misakanet__* (misakanet_search/get_lesson/…), served by the public Streamable HTTP endpoint https://misakanet.org/mcp — live tools from an npm install, in any profile, with no local python. A profile that prefers the repo's own stdio server can override the bundle row.",
6
6
  "files": [
7
7
  "SKILL.md",
8
8
  "skills/",
@@ -16,6 +16,22 @@
16
16
  "patch": "./cordis.patch.yml"
17
17
  }
18
18
  },
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "git+https://github.com/Ikalus1988/MisakaNet.git"
22
+ },
23
+ "homepage": "https://misakanet.org",
24
+ "bugs": {
25
+ "url": "https://github.com/Ikalus1988/MisakaNet/issues"
26
+ },
27
+ "keywords": [
28
+ "misakanet",
29
+ "dsh-plugin",
30
+ "failure-memory",
31
+ "mcp",
32
+ "skill",
33
+ "lessons"
34
+ ],
19
35
  "peerDependencies": {
20
36
  "@deepseek-ai/dsh-mcp-client": ">=0.1.0-rc.8 <0.2.0"
21
37
  },