gm-cc 2.0.503 → 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.
@@ -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.503",
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gm-cc",
3
- "version": "2.0.503",
3
+ "version": "2.0.504",
4
4
  "description": "State machine agent with hooks, skills, and automated git enforcement",
5
5
  "author": "AnEntrypoint",
6
6
  "license": "MIT",
package/plugin.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gm",
3
- "version": "2.0.503",
3
+ "version": "2.0.504",
4
4
  "description": "State machine agent with hooks, skills, and automated git enforcement",
5
5
  "author": {
6
6
  "name": "AnEntrypoint",
@@ -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):