machine-bridge-mcp 0.16.0 → 0.16.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
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.16.1 - 2026-07-13
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
|
|
7
|
+
- Fix `machine-mcp` startup after 0.16.0 by keeping normalized policy capabilities immutable while allowing the sealed CLI-owned state record to update persistence metadata.
|
|
8
|
+
- Add regression coverage proving `updatedAt` remains writable without permitting capability fields or undeclared fields to be mutated.
|
|
9
|
+
|
|
3
10
|
## 0.16.0 - 2026-07-13
|
|
4
11
|
|
|
5
12
|
### Runtime boundaries and lifecycle
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"manifest_version": 3,
|
|
3
3
|
"name": "Machine Bridge Browser",
|
|
4
|
-
"version": "0.16.
|
|
4
|
+
"version": "0.16.1",
|
|
5
5
|
"description": "Connects the current Chromium browser profile to the local Machine Bridge runtime for user-authorized automation.",
|
|
6
6
|
"permissions": [
|
|
7
7
|
"tabs",
|
|
@@ -30,5 +30,5 @@
|
|
|
30
30
|
"action": {
|
|
31
31
|
"default_title": "Machine Bridge Browser"
|
|
32
32
|
},
|
|
33
|
-
"version_name": "0.16.
|
|
33
|
+
"version_name": "0.16.1"
|
|
34
34
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "machine-bridge-mcp",
|
|
3
|
-
"version": "0.16.
|
|
3
|
+
"version": "0.16.1",
|
|
4
4
|
"description": "Cross-client MCP bridge for local agent context, structured browser and application automation, files, Git, processes, resources, and durable jobs over stdio or OAuth relay.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -215,8 +215,6 @@ async function listWindowsApplications(configuredRoots, home, context, throwIfCa
|
|
|
215
215
|
const roots = configuredRoots || [
|
|
216
216
|
join(process.env.APPDATA || home, "Microsoft", "Windows", "Start Menu", "Programs"),
|
|
217
217
|
process.env.ProgramData ? join(process.env.ProgramData, "Microsoft", "Windows", "Start Menu", "Programs") : "",
|
|
218
|
-
process.env.ProgramFiles,
|
|
219
|
-
process.env["ProgramFiles(x86)"],
|
|
220
218
|
].filter(Boolean);
|
|
221
219
|
return listExecutableRoots(roots, new Set([".exe", ".lnk"]), context, throwIfCancelled);
|
|
222
220
|
}
|
package/src/local/cli-policy.mjs
CHANGED
|
@@ -15,14 +15,26 @@ export function resolvePolicy(args = {}, stored = {}) {
|
|
|
15
15
|
const explicitKeys = ["profile", ...POLICY_OVERRIDE_KEYS];
|
|
16
16
|
const hasExplicit = explicitKeys.some((key) => Object.prototype.hasOwnProperty.call(args, key));
|
|
17
17
|
const base = { ...selectPolicyBase(args, stored, hasStored) };
|
|
18
|
-
if (!hasExplicit) return
|
|
18
|
+
if (!hasExplicit) return policyState(base);
|
|
19
19
|
applyPolicyOverrides(base, args);
|
|
20
20
|
if (args.profile === undefined || POLICY_OVERRIDE_KEYS.some((key) => Object.prototype.hasOwnProperty.call(args, key))) {
|
|
21
21
|
base.profile = "custom";
|
|
22
22
|
base.origin = "custom";
|
|
23
23
|
base.revision = DEFAULT_POLICY_REVISION;
|
|
24
24
|
}
|
|
25
|
-
return
|
|
25
|
+
return policyState(base);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function policyState(policy) {
|
|
29
|
+
// Capability fields retain the canonical immutable contract. The CLI owns a
|
|
30
|
+
// sealed persistence record with exactly one writable metadata field.
|
|
31
|
+
const normalized = normalizePolicy(policy);
|
|
32
|
+
const state = {};
|
|
33
|
+
for (const [key, value] of Object.entries(normalized)) {
|
|
34
|
+
Object.defineProperty(state, key, { value, enumerable: true, writable: false, configurable: false });
|
|
35
|
+
}
|
|
36
|
+
Object.defineProperty(state, "updatedAt", { value: undefined, enumerable: true, writable: true, configurable: false });
|
|
37
|
+
return Object.seal(state);
|
|
26
38
|
}
|
|
27
39
|
|
|
28
40
|
function selectPolicyBase(args, stored, hasStored) {
|
package/src/worker/index.ts
CHANGED
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
} from "./http";
|
|
18
18
|
|
|
19
19
|
const SERVER_NAME = String(serverMetadata.name);
|
|
20
|
-
const SERVER_VERSION = "0.16.
|
|
20
|
+
const SERVER_VERSION = "0.16.1";
|
|
21
21
|
const MCP_PROTOCOL_VERSION = String(serverMetadata.protocolVersion);
|
|
22
22
|
const MCP_SUPPORTED_PROTOCOL_VERSIONS = serverMetadata.supportedProtocolVersions.map((value) => String(value));
|
|
23
23
|
const JSONRPC_VERSION = "2.0";
|