@muggleai/works 5.19.0-staging.124 → 5.19.0-staging.125
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.
|
@@ -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-125-1",
|
|
4
|
+
"commitSha": "e1043eabf9589ec3ba60eee7c69e5f9b6f35e419",
|
|
5
|
+
"buildTime": "2026-09-21T22:22:28Z",
|
|
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.125",
|
|
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",
|
|
@@ -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
|