@mmerterden/multi-agent-toolkit-mcp 3.7.0 → 3.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 +24 -0
- package/package.json +1 -1
- package/tools/memory/index.js +11 -6
package/CHANGELOG.md
CHANGED
|
@@ -15,6 +15,30 @@ Releases before this file exists are recorded in the git tags and commit history
|
|
|
15
15
|
|
|
16
16
|
---
|
|
17
17
|
|
|
18
|
+
## 3.7.1
|
|
19
|
+
|
|
20
|
+
### Fixed
|
|
21
|
+
|
|
22
|
+
- **`android_meminfo` never read the swap total on a real device.** The parser
|
|
23
|
+
was written from the documented output, which spells the line
|
|
24
|
+
`TOTAL SWAP (KB):`. An Android 35 Pixel emulator prints `TOTAL SWAP PSS:`, so
|
|
25
|
+
the regex matched nothing and `total_swap_kb` came back null on every real
|
|
26
|
+
run. Both spellings are accepted now, and the fixture is the emulator's own
|
|
27
|
+
output rather than a reconstruction.
|
|
28
|
+
|
|
29
|
+
This is the defect the 3.3.0 note predicted: that parser shipped marked "not
|
|
30
|
+
verified on a device", and the first real device broke it. Worth recording
|
|
31
|
+
plainly, because the note was right and the only thing that found the bug was
|
|
32
|
+
running it.
|
|
33
|
+
|
|
34
|
+
### Note
|
|
35
|
+
|
|
36
|
+
The Android checks are no longer unverified. `android_accessibility_audit` and
|
|
37
|
+
`android_meminfo` were both run against a booted Android 35 emulator: the audit
|
|
38
|
+
read 14 clickable elements off a real launcher, reported the reading order as
|
|
39
|
+
correct with no false positive on the grid, and produced one critical and seven
|
|
40
|
+
warnings; meminfo read the App Summary and, after the fix above, the swap total.
|
|
41
|
+
|
|
18
42
|
## 3.7.0
|
|
19
43
|
|
|
20
44
|
### Added
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mmerterden/multi-agent-toolkit-mcp",
|
|
3
|
-
"version": "3.7.
|
|
3
|
+
"version": "3.7.1",
|
|
4
4
|
"description": "MCP server for iOS Simulator, Android Emulator and headless web control. 87 tools: device automation (tap/swipe/type), accessibility audits, visual diff, crash logs, App Store / Play Store pre-submission compliance. Runs standalone over stdio with any MCP client.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "index.js",
|
package/tools/memory/index.js
CHANGED
|
@@ -85,11 +85,12 @@ const MEMINFO_ROWS = [
|
|
|
85
85
|
* snapshots of the same flow is the shape a leak takes, where a single
|
|
86
86
|
* absolute number says almost nothing.
|
|
87
87
|
*
|
|
88
|
-
*
|
|
89
|
-
*
|
|
90
|
-
*
|
|
91
|
-
*
|
|
92
|
-
*
|
|
88
|
+
* Verified against a real device: an Android 35 Pixel emulator, after the parser
|
|
89
|
+
* had first been written from documentation alone. That first version returned
|
|
90
|
+
* null for the swap total on every real device, because the documented shape
|
|
91
|
+
* says "TOTAL SWAP (KB):" and the device prints "TOTAL SWAP PSS:". Both are
|
|
92
|
+
* accepted now. It is the clearest argument in this file for running a parser
|
|
93
|
+
* against the thing it parses.
|
|
93
94
|
*
|
|
94
95
|
* @param {string} raw
|
|
95
96
|
* @returns {{measurable: boolean, reason: string|null, pss: object, totalPssKb: number|null,
|
|
@@ -118,7 +119,11 @@ export function parseMeminfoOutput(raw) {
|
|
|
118
119
|
};
|
|
119
120
|
const totalPssKb = num(/TOTAL PSS:\s*(\d+)/i);
|
|
120
121
|
const totalRssKb = num(/TOTAL RSS:\s*(\d+)/i);
|
|
121
|
-
|
|
122
|
+
// Two spellings in the wild: "TOTAL SWAP (KB):" in the documented shape and
|
|
123
|
+
// "TOTAL SWAP PSS:" on a real Android 35 device, which is what a Pixel
|
|
124
|
+
// emulator actually printed. The first regex, written from documentation,
|
|
125
|
+
// returned null against every real device.
|
|
126
|
+
const totalSwapKb = num(/TOTAL SWAP(?: \(KB\)| PSS)?:\s*(\d+)/i);
|
|
122
127
|
|
|
123
128
|
if (found === 0 && totalPssKb === null) {
|
|
124
129
|
return { measurable: false, reason: "no App Summary block in the dumpsys output", pss: {}, totalPssKb: null, totalRssKb: null, totalSwapKb: null };
|