@muggleai/works 5.30.0-staging.262 → 5.30.0-staging.263
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/dist/plugin/.claude-plugin/plugin.json +1 -1
- package/dist/plugin/.codex-mcp.json +1 -1
- package/dist/plugin/.codex-plugin/plugin.json +1 -1
- package/dist/plugin/.cursor-plugin/plugin.json +1 -1
- package/dist/plugin/.mcp.json +1 -1
- package/dist/plugin/scripts/guardrail-e2e-gate.sh +5 -3
- package/dist/release-manifest.json +3 -3
- package/package.json +1 -1
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/.codex-mcp.json +1 -1
- package/plugin/.codex-plugin/plugin.json +1 -1
- package/plugin/.cursor-plugin/plugin.json +1 -1
- package/plugin/.mcp.json +1 -1
- package/plugin/scripts/guardrail-e2e-gate.sh +5 -3
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"name": "muggleai",
|
|
10
10
|
"source": "./plugin",
|
|
11
11
|
"description": "Real-browser E2E acceptance for your coding agent: test the flows you changed and open the PR with screenshots. Built for flows other tools can't reach: managed test identities with live inboxes (magic links, email OTP and 2FA, verification mail, password resets), an encrypted secret store for login and test credentials, and a test graph that runs prerequisite flows first. Plain-English tests become replayable scripts on localhost or preview URLs.",
|
|
12
|
-
"version": "5.30.0-staging.
|
|
12
|
+
"version": "5.30.0-staging.263"
|
|
13
13
|
}
|
|
14
14
|
]
|
|
15
15
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "muggle",
|
|
3
3
|
"description": "Real-browser E2E acceptance for your coding agent: test the flows you changed and open the PR with screenshots. Built for flows other tools can't reach: managed test identities with live inboxes (magic links, email OTP and 2FA, verification mail, password resets), an encrypted secret store for login and test credentials, and a test graph that runs prerequisite flows first. Plain-English tests become replayable scripts on localhost or preview URLs.",
|
|
4
|
-
"version": "5.30.0-staging.
|
|
4
|
+
"version": "5.30.0-staging.263",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Muggle AI",
|
|
7
7
|
"email": "support@muggle-ai.com"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "muggle",
|
|
3
|
-
"version": "5.30.0-staging.
|
|
3
|
+
"version": "5.30.0-staging.263",
|
|
4
4
|
"description": "Real-browser E2E acceptance for your coding agent: test the flows you changed and open the PR with screenshots. Built for flows other tools can't reach: managed test identities with live inboxes (magic links, email OTP and 2FA, verification mail, password resets), an encrypted secret store for login and test credentials, and a test graph that runs prerequisite flows first. Plain-English tests become replayable scripts on localhost or preview URLs.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Muggle AI",
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "muggle",
|
|
3
3
|
"displayName": "Muggle AI",
|
|
4
4
|
"description": "Real-browser E2E acceptance for your coding agent: test the flows you changed and open the PR with screenshots. Built for flows other tools can't reach: managed test identities with live inboxes (magic links, email OTP and 2FA, verification mail, password resets), an encrypted secret store for login and test credentials, and a test graph that runs prerequisite flows first. Plain-English tests become replayable scripts on localhost or preview URLs.",
|
|
5
|
-
"version": "5.30.0-staging.
|
|
5
|
+
"version": "5.30.0-staging.263",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Muggle AI",
|
|
8
8
|
"email": "support@muggle-ai.com"
|
package/dist/plugin/.mcp.json
CHANGED
|
@@ -9,8 +9,9 @@ set -uo pipefail
|
|
|
9
9
|
# it fires on EVERY turn end. There is no command payload to key off, so the
|
|
10
10
|
# pre-filter reads the same per-session state file guardrails.mjs uses and only
|
|
11
11
|
# spawns Node when the gate could actually fire — i.e. shouldRunE2E's two
|
|
12
|
-
# triggers, with no E2E run recorded yet. It must track that
|
|
13
|
-
# a pre-filter narrower than the gate retires the gate
|
|
12
|
+
# triggers, with no E2E run or accepted skip recorded yet. It must track that
|
|
13
|
+
# predicate exactly: a pre-filter narrower than the gate retires the gate
|
|
14
|
+
# silently, and one wider replays a block rendered before the skip landed. On the
|
|
14
15
|
# overwhelming majority of turns (no test run, no PR) the state file is absent,
|
|
15
16
|
# or unitTestsGreen is unset while prsHandled is empty, so we return {} in-shell
|
|
16
17
|
# and never pay Node cold-start. Degrades to {}.
|
|
@@ -25,7 +26,8 @@ guardrail_wants() {
|
|
|
25
26
|
guardrail_load_state \
|
|
26
27
|
&& { guardrail_state_has '"unitTestsGreen": true' || ! guardrail_state_has '"prsHandled": []'; } \
|
|
27
28
|
&& ! guardrail_state_has '"e2eReleased": true' \
|
|
28
|
-
&& ! guardrail_state_has '"e2eRun": true'
|
|
29
|
+
&& ! guardrail_state_has '"e2eRun": true' \
|
|
30
|
+
&& ! guardrail_state_has '"e2eSkipped": true'
|
|
29
31
|
}
|
|
30
32
|
|
|
31
33
|
# Returns the block guardrails.mjs rendered ahead of time (writeE2eStopVerdict), without starting Node, while the
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"release": "5.26.0",
|
|
3
|
-
"buildId": "run-
|
|
4
|
-
"commitSha": "
|
|
5
|
-
"buildTime": "2026-10-
|
|
3
|
+
"buildId": "run-263-1",
|
|
4
|
+
"commitSha": "6a3249334b037fa0fa14f446e6345aa1c3a0fe01",
|
|
5
|
+
"buildTime": "2026-10-30T23:12:33Z",
|
|
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.30.0-staging.
|
|
4
|
+
"version": "5.30.0-staging.263",
|
|
5
5
|
"description": "13 years of Microsoft hyperscale engineering, packaged as a harness for your AI coding agent.",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "dist/index.js",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "muggle",
|
|
3
3
|
"description": "Real-browser E2E acceptance for your coding agent: test the flows you changed and open the PR with screenshots. Built for flows other tools can't reach: managed test identities with live inboxes (magic links, email OTP and 2FA, verification mail, password resets), an encrypted secret store for login and test credentials, and a test graph that runs prerequisite flows first. Plain-English tests become replayable scripts on localhost or preview URLs.",
|
|
4
|
-
"version": "5.30.0-staging.
|
|
4
|
+
"version": "5.30.0-staging.263",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Muggle AI",
|
|
7
7
|
"email": "support@muggle-ai.com"
|
package/plugin/.codex-mcp.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "muggle",
|
|
3
|
-
"version": "5.30.0-staging.
|
|
3
|
+
"version": "5.30.0-staging.263",
|
|
4
4
|
"description": "Real-browser E2E acceptance for your coding agent: test the flows you changed and open the PR with screenshots. Built for flows other tools can't reach: managed test identities with live inboxes (magic links, email OTP and 2FA, verification mail, password resets), an encrypted secret store for login and test credentials, and a test graph that runs prerequisite flows first. Plain-English tests become replayable scripts on localhost or preview URLs.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Muggle AI",
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "muggle",
|
|
3
3
|
"displayName": "Muggle AI",
|
|
4
4
|
"description": "Real-browser E2E acceptance for your coding agent: test the flows you changed and open the PR with screenshots. Built for flows other tools can't reach: managed test identities with live inboxes (magic links, email OTP and 2FA, verification mail, password resets), an encrypted secret store for login and test credentials, and a test graph that runs prerequisite flows first. Plain-English tests become replayable scripts on localhost or preview URLs.",
|
|
5
|
-
"version": "5.30.0-staging.
|
|
5
|
+
"version": "5.30.0-staging.263",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Muggle AI",
|
|
8
8
|
"email": "support@muggle-ai.com"
|
package/plugin/.mcp.json
CHANGED
|
@@ -9,8 +9,9 @@ set -uo pipefail
|
|
|
9
9
|
# it fires on EVERY turn end. There is no command payload to key off, so the
|
|
10
10
|
# pre-filter reads the same per-session state file guardrails.mjs uses and only
|
|
11
11
|
# spawns Node when the gate could actually fire — i.e. shouldRunE2E's two
|
|
12
|
-
# triggers, with no E2E run recorded yet. It must track that
|
|
13
|
-
# a pre-filter narrower than the gate retires the gate
|
|
12
|
+
# triggers, with no E2E run or accepted skip recorded yet. It must track that
|
|
13
|
+
# predicate exactly: a pre-filter narrower than the gate retires the gate
|
|
14
|
+
# silently, and one wider replays a block rendered before the skip landed. On the
|
|
14
15
|
# overwhelming majority of turns (no test run, no PR) the state file is absent,
|
|
15
16
|
# or unitTestsGreen is unset while prsHandled is empty, so we return {} in-shell
|
|
16
17
|
# and never pay Node cold-start. Degrades to {}.
|
|
@@ -25,7 +26,8 @@ guardrail_wants() {
|
|
|
25
26
|
guardrail_load_state \
|
|
26
27
|
&& { guardrail_state_has '"unitTestsGreen": true' || ! guardrail_state_has '"prsHandled": []'; } \
|
|
27
28
|
&& ! guardrail_state_has '"e2eReleased": true' \
|
|
28
|
-
&& ! guardrail_state_has '"e2eRun": true'
|
|
29
|
+
&& ! guardrail_state_has '"e2eRun": true' \
|
|
30
|
+
&& ! guardrail_state_has '"e2eSkipped": true'
|
|
29
31
|
}
|
|
30
32
|
|
|
31
33
|
# Returns the block guardrails.mjs rendered ahead of time (writeE2eStopVerdict), without starting Node, while the
|