@muggleai/works 5.19.0-staging.124 → 5.19.0-staging.126
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/dist/plugin/.claude-plugin/plugin.json +1 -1
- package/dist/plugin/.cursor-plugin/plugin.json +1 -1
- package/dist/plugin/scripts/pr-watch-arm.sh +14 -0
- package/dist/release-manifest.json +3 -3
- package/package.json +1 -1
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/.cursor-plugin/plugin.json +1 -1
- package/plugin/scripts/pr-watch-arm.sh +14 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "muggle",
|
|
3
3
|
"description": "Run real-browser end-to-end (E2E) acceptance tests on your web app from any AI coding agent. Generate test scripts from plain English, replay them on localhost, capture screenshots, and validate user flows like signup, checkout, and dashboards. Works across Claude Code, Cursor, Codex, and Windsurf.",
|
|
4
|
-
"version": "5.
|
|
4
|
+
"version": "5.19.0-staging.126",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Muggle AI",
|
|
7
7
|
"email": "support@muggle-ai.com"
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "muggle",
|
|
3
3
|
"displayName": "Muggle AI",
|
|
4
4
|
"description": "Ship quality products with AI-powered end-to-end (E2E) acceptance testing that validates your web app like a real user — from Claude Code and Cursor to PR.",
|
|
5
|
-
"version": "5.
|
|
5
|
+
"version": "5.19.0-staging.126",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Muggle AI",
|
|
8
8
|
"email": "support@muggle-ai.com"
|
|
@@ -110,6 +110,20 @@ echo "DRAIN checks pending=${pending_checks:-0} failed=${failed_checks:-0} behin
|
|
|
110
110
|
printf 'BLOCKED_CIDIGEST=""\n'
|
|
111
111
|
} > "${slot}/watch-watermark.env"
|
|
112
112
|
|
|
113
|
+
# Claim the slot for this session. watcher_lease_is_foreign reads an absent
|
|
114
|
+
# owner.json as "not foreign", so a slot armed without one leases itself to a
|
|
115
|
+
# live PID nothing can classify: once the arming session dies its watcher polls
|
|
116
|
+
# into a closed pipe, and every later arm skips the slot as already owned until
|
|
117
|
+
# the lifetime cap expires. An unset id writes nothing rather than a placeholder
|
|
118
|
+
# — reconcile reads any id it does not recognise as another session's claim, and
|
|
119
|
+
# a bogus one would strand the slot exactly as an absent file does.
|
|
120
|
+
if [ -n "${CLAUDE_CODE_SESSION_ID:-}" ]; then
|
|
121
|
+
printf '{\n "session_id": "%s",\n "claimed_at": "%s"\n}\n' \
|
|
122
|
+
"$CLAUDE_CODE_SESSION_ID" "$(date -u +%Y-%m-%dT%H:%M:%SZ)" > "${slot}/owner.json"
|
|
123
|
+
else
|
|
124
|
+
echo "pr-watch-arm: CLAUDE_CODE_SESSION_ID unset — slot left unowned, reconcile cannot re-arm it" >&2
|
|
125
|
+
fi
|
|
126
|
+
|
|
113
127
|
echo "ARMED pr=$pr_number watermark seeded at ${slot}/watch-watermark.env"
|
|
114
128
|
|
|
115
129
|
[ "$exec_loop" -eq 1 ] || exit 0
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"release": "5.18.0",
|
|
3
|
-
"buildId": "run-
|
|
4
|
-
"commitSha": "
|
|
5
|
-
"buildTime": "2026-09-
|
|
3
|
+
"buildId": "run-126-1",
|
|
4
|
+
"commitSha": "2cc694275fdc9c8929e563ce08911d36505d5d53",
|
|
5
|
+
"buildTime": "2026-09-22T07:34:15Z",
|
|
6
6
|
"serviceName": "muggle-ai-works-mcp"
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@muggleai/works",
|
|
3
3
|
"mcpName": "io.github.multiplex-ai/muggle",
|
|
4
|
-
"version": "5.19.0-staging.
|
|
4
|
+
"version": "5.19.0-staging.126",
|
|
5
5
|
"description": "Ship quality products with AI-powered E2E acceptance testing that validates your web app like a real user — from Claude Code and Cursor to PR.",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "dist/index.js",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "muggle",
|
|
3
3
|
"description": "Run real-browser end-to-end (E2E) acceptance tests on your web app from any AI coding agent. Generate test scripts from plain English, replay them on localhost, capture screenshots, and validate user flows like signup, checkout, and dashboards. Works across Claude Code, Cursor, Codex, and Windsurf.",
|
|
4
|
-
"version": "5.
|
|
4
|
+
"version": "5.19.0-staging.126",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Muggle AI",
|
|
7
7
|
"email": "support@muggle-ai.com"
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "muggle",
|
|
3
3
|
"displayName": "Muggle AI",
|
|
4
4
|
"description": "Ship quality products with AI-powered end-to-end (E2E) acceptance testing that validates your web app like a real user — from Claude Code and Cursor to PR.",
|
|
5
|
-
"version": "5.
|
|
5
|
+
"version": "5.19.0-staging.126",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Muggle AI",
|
|
8
8
|
"email": "support@muggle-ai.com"
|
|
@@ -110,6 +110,20 @@ echo "DRAIN checks pending=${pending_checks:-0} failed=${failed_checks:-0} behin
|
|
|
110
110
|
printf 'BLOCKED_CIDIGEST=""\n'
|
|
111
111
|
} > "${slot}/watch-watermark.env"
|
|
112
112
|
|
|
113
|
+
# Claim the slot for this session. watcher_lease_is_foreign reads an absent
|
|
114
|
+
# owner.json as "not foreign", so a slot armed without one leases itself to a
|
|
115
|
+
# live PID nothing can classify: once the arming session dies its watcher polls
|
|
116
|
+
# into a closed pipe, and every later arm skips the slot as already owned until
|
|
117
|
+
# the lifetime cap expires. An unset id writes nothing rather than a placeholder
|
|
118
|
+
# — reconcile reads any id it does not recognise as another session's claim, and
|
|
119
|
+
# a bogus one would strand the slot exactly as an absent file does.
|
|
120
|
+
if [ -n "${CLAUDE_CODE_SESSION_ID:-}" ]; then
|
|
121
|
+
printf '{\n "session_id": "%s",\n "claimed_at": "%s"\n}\n' \
|
|
122
|
+
"$CLAUDE_CODE_SESSION_ID" "$(date -u +%Y-%m-%dT%H:%M:%SZ)" > "${slot}/owner.json"
|
|
123
|
+
else
|
|
124
|
+
echo "pr-watch-arm: CLAUDE_CODE_SESSION_ID unset — slot left unowned, reconcile cannot re-arm it" >&2
|
|
125
|
+
fi
|
|
126
|
+
|
|
113
127
|
echo "ARMED pr=$pr_number watermark seeded at ${slot}/watch-watermark.env"
|
|
114
128
|
|
|
115
129
|
[ "$exec_loop" -eq 1 ] || exit 0
|