gm-cc 2.0.720 → 2.0.722

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.720",
7
+ "version": "2.0.722",
8
8
  "metadata": {
9
9
  "description": "State machine agent with hooks, skills, and automated git enforcement"
10
10
  },
@@ -1,6 +1,6 @@
1
- e8ecba3c01827f7b5f4f536bf4e296d416805e72f2e86b2bae9c339d99e975ae plugkit-win32-x64.exe
2
- 4ea140d65dbb76f4f8e2fe4c5dab41db57397cba89ed006e25187a2aba5e5170 plugkit-win32-arm64.exe
3
- 8f48e44f3ceab7e01b972e66a72a7422d6cb83c42557329e453e8a6ba3e56c08 plugkit-darwin-x64
4
- f014d84e8cf08190adeb74dfa88d5f1ce3b836944cde5f60f42c5055bc25395b plugkit-darwin-arm64
5
- e52600cf0823891240a33c5b0577cd516945b9556d5e42ea64df145116f56360 plugkit-linux-x64
6
- 8d4acaffdb6be9c7267f4021f384c6a8a0c0395031b46f390a3a722694288c7e plugkit-linux-arm64
1
+ c761904a0a87655903889fc8a3eefa727cc3f8e5f7d9f0ef11b5943404c200be plugkit-win32-x64.exe
2
+ 463ce6156edc1ac8c73e5f3b11da0480bb59fd3c98ac2647b1ff3830e99fe1a1 plugkit-win32-arm64.exe
3
+ 6b64b6281aa77aa859348a4a020e3d225cd0ef435ad8a64714d85bdab15f5e3d plugkit-darwin-x64
4
+ 7c787c21e291260956ead084f8926be9a4d26d6da18e73d93bf7f6d656ffb1da plugkit-darwin-arm64
5
+ eba2087a8866bbaaadbe8c4f84416ec472930db728f5be05a987d0f6d78cbdec plugkit-linux-x64
6
+ 6e13bc031a3f97e384c2a47e92e0d412adb3778224bc78ffd0e8246d2d4c7cd0 plugkit-linux-arm64
@@ -1 +1 @@
1
- 0.1.238
1
+ 0.1.239
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gm-cc",
3
- "version": "2.0.720",
3
+ "version": "2.0.722",
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.720",
3
+ "version": "2.0.722",
4
4
  "description": "State machine agent with hooks, skills, and automated git enforcement",
5
5
  "author": {
6
6
  "name": "AnEntrypoint",
@@ -21,6 +21,7 @@ Failure triage: broken output → EMIT | wrong logic → EXECUTE | new unknown
21
21
  ## MUTABLES — ALL MUST RESOLVE BEFORE COMPLETE
22
22
 
23
23
  - `witnessed_e2e` — real end-to-end run with witnessed output
24
+ - `browser_validated` — MANDATORY for any change touching client/UI/browser-facing code (anything served to a browser, rendered, or whose output is visible to a user). Must invoke `browser` skill, navigate the live page, and witness the change in `window` / DOM / scene state. test.js + node-side imports DO NOT satisfy this gate. See BROWSER VALIDATION GATE below.
24
25
  - `git_clean` — `git status --porcelain` returns empty
25
26
  - `git_pushed` — `git log origin/main..HEAD --oneline` returns empty
26
27
  - `ci_passed` — all GitHub Actions runs reach `conclusion: success`
@@ -40,6 +41,26 @@ console.log(await fn(realInput));
40
41
 
41
42
  Browser/UI: invoke `browser` skill. After every success: enumerate what remains — never stop at first green.
42
43
 
44
+ ## BROWSER VALIDATION GATE — MANDATORY FOR CLIENT WORK
45
+
46
+ If this session changed any code that runs in a browser — anything under client/, UI components, shaders, page-loaded JS, served HTML, gh-pages assets, dev-server endpoints, or any module imported into the page bundle — `browser_validated` MUST resolve before COMPLETE. Skipping it because "node tests pass" or "test.js is green" is a forced-closure refusal of witnessed verification.
47
+
48
+ Trigger detection (any one suffices):
49
+ - `git diff --name-only origin/main..HEAD` includes paths under `client/`, `apps/*/index.js` with client export, `docs/`, `*.html`, shader files, or any file imported by a browser entry.
50
+ - New/changed export consumed by `window.*` or rendered in DOM/canvas/WebGL.
51
+ - Visual, layout, animation, input, network-on-page, or shader behavior altered.
52
+
53
+ Required protocol:
54
+ 1. Boot the real server (or open the static page) on a known URL — witness HTTP 200.
55
+ 2. `exec:browser` → `page.goto(url)` → wait for app init (poll for the global the change affects, e.g. `window.__app.<system>`).
56
+ 3. Probe via `page.evaluate(() => …)` — assert the specific invariant the change was supposed to establish (instance counts, scene meshes, DOM nodes, render stats, network frames, etc.).
57
+ 4. Capture the witnessed numbers in the response. "Looks fine" is not a witness.
58
+ 5. Failures → regress to `gm-execute` (logic) or `gm-emit` (output) — never paper over.
59
+
60
+ Long-running probes: split into navigate-call → `exec:wait N` → probe-call to stay under the per-call budget. Do not stack multi-second `setTimeout` inside one `exec:browser` invocation.
61
+
62
+ Exempt only when: change is server-only with zero browser-facing surface, OR repository has no browser surface at all (pure CLI/library). Tag the exemption in the response with the reason; do not silently skip.
63
+
43
64
  ## INTEGRATION TEST GATE
44
65
 
45
66
  ```
@@ -97,6 +118,6 @@ One per fact, parallel, same turn resolved. End-of-turn self-check mandatory.
97
118
 
98
119
  ## COMPLETION DEFINITION
99
120
 
100
- All: witnessed e2e | failure paths exercised | test.js passes | .prd deleted | git clean+pushed | CI green | hygiene sweep clean | TODO.md gone | CHANGELOG.md updated
121
+ All: witnessed e2e | browser_validated (when client work touched) | failure paths exercised | test.js passes | .prd deleted | git clean+pushed | CI green | hygiene sweep clean | TODO.md gone | CHANGELOG.md updated
101
122
 
102
- **Never**: claim done without witnessed output | stop while .prd has items | skip hygiene | skip test.js | uncommitted/unpushed work | stop at first green
123
+ **Never**: claim done without witnessed output | claim done on a client change without browser-validation witness | stop while .prd has items | skip hygiene | skip test.js | uncommitted/unpushed work | stop at first green
@@ -58,6 +58,7 @@ console.log(await fn(realInput));
58
58
  - Hot reloadable; errors throw with context (no fallbacks, `|| default`, `catch { return null }`)
59
59
  - No mocks/fakes/stubs/scattered test files (delete on discovery)
60
60
  - Behavior change in this emit = a corresponding assertion in test.js (a change no test would catch is a change you cannot prove)
61
+ - If this emit changes any browser-facing code (client/, served HTML/JS, shaders, page-bundle imports, gh-pages assets), the post-emit verify MUST include a live browser witness via `exec:browser` (boot server → page.goto → page.evaluate asserting the invariant the change established). Node-side import + test.js does NOT satisfy this — see `gm-complete` BROWSER VALIDATION GATE.
61
62
  - Files ≤200 lines
62
63
  - No duplicate concern (run exec:codesearch for primary concern after writing; any overlap → `planning`)
63
64
  - No comments; no hardcoded values; no adjectives in identifiers; no unnecessary files