smart-web-mcp 1.7.0 → 1.7.1
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/CHANGELOG.md +8 -0
- package/dist/dev-runtime.d.ts +1 -0
- package/dist/dev-runtime.js +7 -3
- package/dist/dev-runtime.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,7 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on Keep a Changelog[^1] and this project uses SemVer.
|
|
6
6
|
|
|
7
7
|
## Unreleased
|
|
8
|
+
* Pin the immutable release directory before scanning, copying and linking dependencies for a hot-loaded MCP request. An atomic `current` switch during snapshot creation can no longer mix implementation and dependency versions; verified by a controlled mid-snapshot swap regression.
|
|
8
9
|
* Allow the existing `smart-web-dev` stdio entrypoint to read implementation modules from a managed absolute release-dist path. An atomic `current` symlink switch refreshes fetch/search/crawl modules between calls without replacing the host MCP connection; retained snapshots and version-pinned dependency links protect in-flight reads. Tool registration, browser actions and verticals still require a host MCP reconnect for changed behavior or schemas.
|
|
9
10
|
* Authenticate to the MCP Registry only after the exact npm version becomes visible. Metadata validation stays unauthenticated; the short-lived OIDC credential no longer ages during propagation and can be obtained afresh on an immutable-tag recovery run.
|
|
10
11
|
* Recover a requested numeric comment permalink when an owned discussion row keeps its canonical ID on a nested element rather than the outer render wrapper. Require one unambiguous inner identity and its own body; retain parent links and declared-versus-delivered coverage. A measured public thread changes from zero structured comments to four source-bound replies through approved-browser continuation; absent and ambiguous IDs remain partial.
|
|
@@ -438,6 +439,13 @@ The format is based on Keep a Changelog[^1] and this project uses SemVer.
|
|
|
438
439
|
- Korean public API helpers now validate outbound URLs and redirects before fetching, blocking localhost, private, and reserved targets unless `network.allowPrivateHosts` is explicitly enabled.
|
|
439
440
|
- CI now declares read-only default repository permissions, Dependabot auto-merge pins the reusable workflow without forwarding all caller secrets, and the workflow check enforces those guards.
|
|
440
441
|
|
|
442
|
+
## [1.7.1](https://github.com/jojo-labs/smart-web/compare/v1.7.0...v1.7.1) (2026-10-04)
|
|
443
|
+
|
|
444
|
+
|
|
445
|
+
### Bug Fixes
|
|
446
|
+
|
|
447
|
+
* pin atomic MCP release snapshots to one immutable root ([#796](https://github.com/jojo-labs/smart-web/issues/796)) ([795bbc4](https://github.com/jojo-labs/smart-web/commit/795bbc4a1943c41910952a87d423f752e3f811c5))
|
|
448
|
+
|
|
441
449
|
## [1.7.0](https://github.com/jojo-labs/smart-web/compare/v1.6.26...v1.7.0) (2026-10-04)
|
|
442
450
|
|
|
443
451
|
|
package/dist/dev-runtime.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { SmartWebRuntime } from "./mcp-server.js";
|
|
2
2
|
type LoaderOptions = {
|
|
3
3
|
importer?: (href: string) => Promise<Record<string, unknown>>;
|
|
4
|
+
beforeSnapshot?: () => Promise<void>;
|
|
4
5
|
};
|
|
5
6
|
export declare function resolveReleaseRuntimeDir(installedDistDir: string, env?: NodeJS.ProcessEnv): string;
|
|
6
7
|
export declare function createVersionedModuleLoader(baseDir: string, options?: LoaderOptions): (relativePath: string) => Promise<Record<string, unknown>>;
|
package/dist/dev-runtime.js
CHANGED
|
@@ -61,10 +61,14 @@ export function createVersionedModuleLoader(baseDir, options) {
|
|
|
61
61
|
const importer = options?.importer || (async (href) => import(href));
|
|
62
62
|
let snapshot;
|
|
63
63
|
return async function load(relativePath) {
|
|
64
|
-
|
|
65
|
-
|
|
64
|
+
// Resolve the immutable release before scanning: the current symlink may
|
|
65
|
+
// switch while the snapshot copies files and links its dependency tree.
|
|
66
|
+
const releaseDir = await realpath(baseDir);
|
|
67
|
+
const files = await collectRuntimeFiles(releaseDir);
|
|
68
|
+
const fingerprint = `${releaseDir}|${await fingerprintRuntime(releaseDir, files)}`;
|
|
66
69
|
if (!snapshot || snapshot.fingerprint !== fingerprint) {
|
|
67
|
-
|
|
70
|
+
await options?.beforeSnapshot?.();
|
|
71
|
+
const dir = await createSnapshot(releaseDir, files);
|
|
68
72
|
// A previous request may still import siblings from its captured module tree.
|
|
69
73
|
// Keep immutable snapshots until the process exits; the managed temp root prunes them.
|
|
70
74
|
snapshot = { fingerprint, dir, modules: new Map() };
|
package/dist/dev-runtime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev-runtime.js","sourceRoot":"","sources":["../src/dev-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACxG,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAGxC,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"dev-runtime.js","sourceRoot":"","sources":["../src/dev-runtime.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "smart-web-mcp",
|
|
3
3
|
"mcpName": "io.github.jojo-labs/smart-web",
|
|
4
|
-
"version": "1.7.
|
|
4
|
+
"version": "1.7.1",
|
|
5
5
|
"packageManager": "npm@11.9.0",
|
|
6
6
|
"description": "Local MCP for web search, direct-URL fetch, site crawling, docs export, and bounded smartbrowser local browser actions.",
|
|
7
7
|
"homepage": "https://github.com/jojo-labs/smart-web",
|