@happyvertical/smrt-dev-mcp 0.57.30 → 0.57.32
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.
package/AGENTS.md
CHANGED
|
@@ -274,6 +274,12 @@ launcher or a small wrapper script with an absolute Node path.
|
|
|
274
274
|
|
|
275
275
|
## Validation
|
|
276
276
|
|
|
277
|
+
`src/mcp-conformance.spec.ts` runs the production HTTP handler and official
|
|
278
|
+
client against an isolated consumer workspace with model manifests and docs.
|
|
279
|
+
It checks protocol behavior and resource freshness with the official deadline;
|
|
280
|
+
it does not measure large-monorepo indexing latency. Broader discovery coverage
|
|
281
|
+
remains in the knowledge tests. See the [protocol fixture contract](agents/protocol-conformance.md).
|
|
282
|
+
|
|
277
283
|
Run package `test`, `typecheck`, and `build`, then
|
|
278
284
|
`pnpm --filter @happyvertical/smrt-dev-mcp verify:pack`. The packaging gate packs
|
|
279
285
|
MCP/scanner/types, installs only their production dependencies into a fresh
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Protocol conformance fixture (#4317)
|
|
2
|
+
|
|
3
|
+
`src/mcp-conformance.spec.ts` tests the production HTTP handler with the installed
|
|
4
|
+
official client and the reviewed baseline. Its child process owns an isolated
|
|
5
|
+
consumer workspace containing package/model manifests and authored docs. It does
|
|
6
|
+
not inherit the arbitrary size of the caller's checkout or change global cwd.
|
|
7
|
+
|
|
8
|
+
The official request deadline, assertions, baseline and production TTL0 freshness
|
|
9
|
+
behavior stay unchanged. Discovery and subsequent reads after package/doc edits
|
|
10
|
+
must remain observable. This fixture proves protocol behavior; it is not evidence
|
|
11
|
+
of an arbitrary-workspace latency SLA. Broader workspace, discovery and freshness
|
|
12
|
+
coverage remains in `src/knowledge/` tests.
|
|
13
|
+
|
|
14
|
+
| Behavior | Trigger | Positive | Negative | Actor/context | Executor/transaction | Runtime/dialect | External edge | Level | Command |
|
|
15
|
+
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
|
|
16
|
+
| Use the actual protocol implementation | Official client connects to isolated host | Reviewed suite/baseline passes | Unexpected scenario still fails | MCP client and production handler in a real child | HTTP/child process; no SQL transaction | Node 26/MCP 2026-07-28; no DB | Official client and unchanged deadline | Conformance integration | `pnpm --filter @happyvertical/smrt-dev-mcp exec vitest run src/mcp-conformance.spec.ts` |
|
|
17
|
+
| Retain metadata/header contracts | Modern requests/discovery | Cache/result metadata and reads match assertions | Header/method mismatch is rejected | HTTP client | HTTP; no SQL transaction | Node 26/MCP; no DB | Production HTTP adapter | Integration | `pnpm --filter @happyvertical/smrt-dev-mcp exec vitest run src/mcp-conformance.spec.ts` |
|
|
18
|
+
| Meaningful bounded discovery | Fixture has model/package/docs | Exact fixture package resources and model field are present | Accidental monorepo discovery cannot satisfy exact set | Consumer workspace | Filesystem/index read; no SQL transaction | Node 26; no DB | Real manifest/doc discovery | Integration | `pnpm --filter @happyvertical/smrt-dev-mcp exec vitest run src/mcp-conformance.spec.ts` |
|
|
19
|
+
| Preserve live freshness | Add package and edit authored docs | Subsequent list/read reflects changes | Stale/empty success fails assertions | Consumer editing project files | Filesystem and HTTP; no SQL transaction | Node 26/MCP; no DB | TTL0 resource contract | Integration | `pnpm --filter @happyvertical/smrt-dev-mcp exec vitest run src/mcp-conformance.spec.ts` |
|
|
20
|
+
| Isolate and clean execution | Host startup, exit or teardown | Child cwd and temporary files are scoped and removed | Startup/termination failure is bounded and reported | Test integration owner | Child process/filesystem; no SQL transaction | Node 26; no DB | IPC, signals and temporary resources | Integration | `pnpm --filter @happyvertical/smrt-dev-mcp exec vitest run src/mcp-conformance.spec.ts` |
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Runtime fixture isolation (#3760)
|
|
2
|
+
|
|
3
|
+
Missing-dependency tests must not resolve packages installed in ancestor
|
|
4
|
+
`node_modules` directories. `project-runtime.test.ts` selects the first parent
|
|
5
|
+
(tmpdir then homedir) whose ancestry has none, matching the packed-consumer
|
|
6
|
+
fixture isolation rule. If both parents are contaminated, it asks for a clean
|
|
7
|
+
TMPDIR instead of silently borrowing packages. Production runtime resolution
|
|
8
|
+
continues to support ordinary hoisted workspace dependencies.
|
|
9
|
+
|
|
10
|
+
| Behavior / invariant | Trigger | Positive | Negative / failure | Actor / context | Executor / transaction | Runtime / dialect | External edge | Test level / validation |
|
|
11
|
+
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
|
|
12
|
+
| Hermetic missing-dependency fixture | Normal project-runtime suite | Missing config preserves runtime_dependency_unavailable | Ancestor node_modules cannot alter classification | Test process with polluted /tmp; no production actor | N/A: no application writes; test-owned filesystem only | Node26 / Node ESM lookup; SQL N/A | Host ancestor installations | Focused project-runtime.test.ts |
|
|
13
|
+
| Ancestor selection | Fixture allocation | Clean candidate selected | Candidate under node_modules ancestor rejected | Test-owned clean and polluted directory graph | N/A transaction: temporary dirs removed after each case | Node filesystem | Hoisted package lookup | Deterministic selector case in same file |
|
|
14
|
+
|
|
15
|
+
Regression evidence on the unchanged base: the exact three runtime setup cases
|
|
16
|
+
failed 1/3 with default `/tmp` ancestry. `/tmp/node_modules/@happyvertical/smrt-config`
|
|
17
|
+
was an existing unowned symlink to a separate 0.55.4 checkout; it was preserved.
|
|
18
|
+
An owned clean TMPDIR passed 3/3, confirming fixture contamination rather than a
|
|
19
|
+
runtime defect. That diagnosis does not replace the documented gate: the fixed
|
|
20
|
+
fixture must pass with the ordinary default environment and unchanged assertions.
|
|
21
|
+
|
|
22
|
+
Run `pnpm --filter @happyvertical/smrt-dev-mcp exec vitest run src/project-runtime.test.ts`.
|
|
23
|
+
Full outputs are retained under the release evidence `search/dev-mcp-*.log`.
|
|
24
|
+
|
|
25
|
+
Head evidence: the complete project-runtime file passes all 30 cases with the
|
|
26
|
+
ordinary default environment, including the unchanged missing-config assertion,
|
|
27
|
+
real config loading, hoisted workspace resolution and the new ancestor-selector
|
|
28
|
+
case. Biome passes the changed test file. No runtime code or packaged application
|
|
29
|
+
artifact changed; the coordinator reruns the documented combined source gate.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@happyvertical/smrt-dev-mcp",
|
|
3
|
-
"version": "0.57.
|
|
3
|
+
"version": "0.57.32",
|
|
4
4
|
"description": "Development MCP server for SMRT framework knowledge, review context, architecture context, and code generation",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -33,6 +33,7 @@
|
|
|
33
33
|
"README.md",
|
|
34
34
|
"dist",
|
|
35
35
|
"AGENTS.md",
|
|
36
|
+
"agents",
|
|
36
37
|
"plugin.json",
|
|
37
38
|
"mcp.json",
|
|
38
39
|
"skills",
|
|
@@ -53,14 +54,14 @@
|
|
|
53
54
|
"homepage": "https://github.com/happyvertical/smrt/tree/main/packages/smrt-dev-mcp#readme",
|
|
54
55
|
"license": "MIT",
|
|
55
56
|
"dependencies": {
|
|
56
|
-
"@happyvertical/smrt-scanner": "0.57.
|
|
57
|
+
"@happyvertical/smrt-scanner": "0.57.32",
|
|
57
58
|
"@modelcontextprotocol/node": "2.0.0",
|
|
58
59
|
"@modelcontextprotocol/server": "2.3.1",
|
|
59
|
-
"@happyvertical/smrt-types": "0.57.
|
|
60
|
+
"@happyvertical/smrt-types": "0.57.32"
|
|
60
61
|
},
|
|
61
62
|
"devDependencies": {
|
|
62
|
-
"@happyvertical/smrt-config": "0.57.
|
|
63
|
-
"@happyvertical/smrt-core": "0.57.
|
|
63
|
+
"@happyvertical/smrt-config": "0.57.32",
|
|
64
|
+
"@happyvertical/smrt-core": "0.57.32",
|
|
64
65
|
"@happyvertical/sql": "^0.108.0",
|
|
65
66
|
"@modelcontextprotocol/client": "2.0.0",
|
|
66
67
|
"@modelcontextprotocol/conformance": "0.2.0-alpha.11",
|