gm-cc 2.0.502 → 2.0.504
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/.claude-plugin/marketplace.json +1 -1
- package/package.json +1 -1
- package/plugin.json +1 -1
- package/skills/browser/SKILL.md +34 -0
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"name": "AnEntrypoint"
|
|
5
5
|
},
|
|
6
6
|
"description": "State machine agent with hooks, skills, and automated git enforcement",
|
|
7
|
-
"version": "2.0.
|
|
7
|
+
"version": "2.0.504",
|
|
8
8
|
"metadata": {
|
|
9
9
|
"description": "State machine agent with hooks, skills, and automated git enforcement"
|
|
10
10
|
},
|
package/package.json
CHANGED
package/plugin.json
CHANGED
package/skills/browser/SKILL.md
CHANGED
|
@@ -29,6 +29,40 @@ Every `exec:browser` call has a 15s live window. During that window, all stdout/
|
|
|
29
29
|
|
|
30
30
|
**"Assertion failed: UV_HANDLE_CLOSING" in output** means the call exceeded 15s and was cut off — ignore the assertion noise, look at the output before it. The task was backgrounded normally.
|
|
31
31
|
|
|
32
|
+
## Idle Timeout & Session Reaper — CRITICAL
|
|
33
|
+
|
|
34
|
+
Playwriter kills idle browser sessions after 5-15 minutes of inactivity. When a session dies:
|
|
35
|
+
1. Playwriter silently closes the browser connection
|
|
36
|
+
2. Subsequent `exec:browser` calls don't detect the dead session
|
|
37
|
+
3. Tool tries to use stale session → opens new tabs repeatedly
|
|
38
|
+
4. Browser accumulates zombie tabs until manually closed
|
|
39
|
+
|
|
40
|
+
**Fix: Always reset on first use after idle.**
|
|
41
|
+
|
|
42
|
+
Pattern for long-idle projects:
|
|
43
|
+
```
|
|
44
|
+
exec:browser
|
|
45
|
+
if (!state.resetDone) {
|
|
46
|
+
try { await mcp__playwriter_latest__reset(); } catch (e) { }
|
|
47
|
+
state.resetDone = true;
|
|
48
|
+
}
|
|
49
|
+
await page.goto('https://example.com')
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Or, if experiencing zombie tabs:
|
|
53
|
+
```
|
|
54
|
+
exec:close
|
|
55
|
+
task_N
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Then restart:
|
|
59
|
+
```
|
|
60
|
+
exec:browser
|
|
61
|
+
await page.goto('https://example.com')
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
**Rule**: After any gap >5 minutes without browser interaction, manually invoke `exec:close` on the task ID, then start a fresh `exec:browser` block. Never leave idle sessions running.
|
|
65
|
+
|
|
32
66
|
## Session Pathway (`browser:`)
|
|
33
67
|
|
|
34
68
|
Create a session first, use `--direct` for CDP mode (requires Chrome with remote debugging):
|