@andwhy/e2e-pipeline 0.12.0 → 0.12.1

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@andwhy/e2e-pipeline",
3
- "version": "0.12.0",
3
+ "version": "0.12.1",
4
4
  "description": "Scaffolds the full e2e testing pipeline: agent-assisted Playwright tests, CI runs against Vercel previews, and Checkly monitors that follow production deploys",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -39,6 +39,10 @@ negotiable:
39
39
  touch `.github/`, `.claude/`, `package.json`, lockfiles, or any
40
40
  `*.config.*` file.
41
41
  4. **Never run git commit, push, or any GitHub CLI/API command.**
42
+ 5. **Never delete, clean, or recreate the `.checkly-heal/` directory** — the
43
+ workflow reads your outcome from it after you finish, and destroying it
44
+ turns your entire run into an unexplained failure. No `rm -rf`, no
45
+ `git clean`. Only add files to it.
42
46
 
43
47
  ## Procedure
44
48
 
@@ -47,6 +51,13 @@ negotiable:
47
51
  Read the context and result files. Identify the failing spec file, test, and
48
52
  step. Read the spec. Resolve the production `BASE_URL` (override 1).
49
53
 
54
+ If the check name from the context matches **nothing** in
55
+ `checkly.config.{ts,mjs}` — a webhook test, a renamed check, a synthetic
56
+ dispatch — there is nothing to reproduce: write the outcome immediately with
57
+ classification `not-reproducible` and a summary saying the check name is
58
+ unknown to this repo, then stop. Do not skip the outcome file because the
59
+ run "wasn't real".
60
+
50
61
  ### 2. Reproduce
51
62
 
52
63
  Run only the failing spec against production:
@@ -163,13 +163,23 @@ jobs:
163
163
  CHECKLY_ACCOUNT_ID: ${{ secrets.CHECKLY_ACCOUNT_ID }}
164
164
  run: |
165
165
  npm install -g @anthropic-ai/claude-code@2
166
+ # Transcript lives OUTSIDE .checkly-heal so it survives whatever the
167
+ # agent does to its working directory, and outside the repo tree so
168
+ # the diff guard never counts it.
166
169
  claude -p "$(cat .github/prompts/checkly-heal.md)" \
167
170
  --model claude-opus-5 \
168
171
  --allowedTools "Bash,Read,Edit,Write,Glob,Grep" \
169
172
  --permission-mode dontAsk \
170
173
  --max-turns 150 \
171
174
  --output-format json \
172
- > .checkly-heal/agent-output.json || true
175
+ > /tmp/checkly-heal-agent-output.json || echo "claude exited non-zero: $?" >> "$GITHUB_STEP_SUMMARY"
176
+ {
177
+ echo "### Agent step diagnostics"
178
+ echo '```'
179
+ ls -la .checkly-heal 2>&1 || echo ".checkly-heal missing"
180
+ tail -c 2000 /tmp/checkly-heal-agent-output.json 2>/dev/null || echo "no agent output"
181
+ echo '```'
182
+ } >> "$GITHUB_STEP_SUMMARY"
173
183
 
174
184
  # The guard is deterministic on purpose: the PR path requires an outcome
175
185
  # file claiming a fix AND a diff clear of protected paths. App-source
@@ -319,6 +329,8 @@ jobs:
319
329
  uses: actions/upload-artifact@v4
320
330
  with:
321
331
  name: checkly-heal-${{ github.run_id }}
322
- path: .checkly-heal/
332
+ path: |
333
+ .checkly-heal/
334
+ /tmp/checkly-heal-agent-output.json
323
335
  if-no-files-found: ignore
324
336
  retention-days: 14