@zenuml/core 3.46.5 → 3.46.7
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.
|
@@ -64,6 +64,24 @@ Categorize the failure:
|
|
|
64
64
|
git fetch origin && git checkout <PR_BRANCH> && git pull origin <PR_BRANCH>
|
|
65
65
|
```
|
|
66
66
|
|
|
67
|
+
Before any local `bun pw` run in this workflow, verify that port `8080` is either free or already owned by a dev server started from this repo. `playwright.config.ts` reuses existing servers outside CI, so a Vite server from another repo will produce invalid local results.
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
PORT="${PORT:-8080}"
|
|
71
|
+
THIS_REPO="$(pwd -P)"
|
|
72
|
+
LISTENER_PID="$(lsof -tiTCP:${PORT} -sTCP:LISTEN 2>/dev/null | head -n1 || true)"
|
|
73
|
+
|
|
74
|
+
if [ -n "$LISTENER_PID" ]; then
|
|
75
|
+
LISTENER_CMD="$(ps -p "$LISTENER_PID" -o command=)"
|
|
76
|
+
if [[ "$LISTENER_CMD" != *"$THIS_REPO"* ]]; then
|
|
77
|
+
echo "Port ${PORT} is owned by another repo; killing PID ${LISTENER_PID}"
|
|
78
|
+
kill "$LISTENER_PID"
|
|
79
|
+
fi
|
|
80
|
+
fi
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
If you killed a different repo's server, do **not** start Vite manually. Let `bun pw` launch the correct dev server from this folder.
|
|
84
|
+
|
|
67
85
|
### Fix by Category
|
|
68
86
|
|
|
69
87
|
#### Playwright Snapshot Mismatch (Linux)
|
|
@@ -93,6 +111,7 @@ This is the most common CI-only failure because snapshots are platform-specific.
|
|
|
93
111
|
|
|
94
112
|
1. **Reproduce locally first**:
|
|
95
113
|
```bash
|
|
114
|
+
# Run the 8080 ownership preflight above first.
|
|
96
115
|
bun pw --grep "<test name pattern>"
|
|
97
116
|
```
|
|
98
117
|
2. **Read the failing test** to understand what it expects
|
|
@@ -151,6 +170,7 @@ After applying a fix:
|
|
|
151
170
|
1. **Run the full local test suite** before pushing (when the failure category allows local reproduction):
|
|
152
171
|
```bash
|
|
153
172
|
bun run test --run # unit tests
|
|
173
|
+
# Run the 8080 ownership preflight above first.
|
|
154
174
|
bun pw # playwright (local, macOS — won't catch Linux snapshot diffs)
|
|
155
175
|
bun eslint # lint
|
|
156
176
|
```
|
|
@@ -56,7 +56,18 @@ On success, the PR is green and ready to merge.
|
|
|
56
56
|
|
|
57
57
|
### Step 4: Land and verify release
|
|
58
58
|
|
|
59
|
-
|
|
59
|
+
Merging to main triggers an npm publish — this is irreversible. To prevent the orchestrator from skipping the land-pr skill's merge strategy logic (which has happened before), **spawn an Agent** for this step:
|
|
60
|
+
|
|
61
|
+
```
|
|
62
|
+
Spawn an Agent with this prompt:
|
|
63
|
+
"Use the Skill tool to invoke the land-pr skill, then follow it to land PR #<PR_NUMBER>
|
|
64
|
+
on mermaid-js/zenuml-core. Follow every step including the merge strategy evaluation.
|
|
65
|
+
Report back the merge SHA and npm version, or the reason it was blocked."
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Replace `<PR_NUMBER>` with the actual PR number from Step 2.
|
|
69
|
+
|
|
70
|
+
Do NOT run `gh pr merge` directly from the main conversation — the land-pr skill contains merge strategy decision logic that must be evaluated by the Agent.
|
|
60
71
|
|
|
61
72
|
If merge succeeds but npm publish fails, alert immediately with the failure details. Do NOT auto-rollback.
|
|
62
73
|
|
|
@@ -78,7 +89,7 @@ Final report:
|
|
|
78
89
|
- Validation: PASS
|
|
79
90
|
- PR: #<number> (<url>)
|
|
80
91
|
- CI: GREEN (attempt <N>)
|
|
81
|
-
- Merge: SQUASHED into main (<sha>)
|
|
92
|
+
- Merge: <SQUASHED|MERGED> into main (<sha>)
|
|
82
93
|
- npm: @zenuml/core@<version> published
|
|
83
94
|
```
|
|
84
95
|
|
|
@@ -33,6 +33,24 @@ Do NOT use `bun test` — it picks up Playwright files and gives false failures.
|
|
|
33
33
|
|
|
34
34
|
### 3. Playwright E2E
|
|
35
35
|
|
|
36
|
+
Before running Playwright, make sure port `8080` is either free or owned by a dev server started from **this repo**. `playwright.config.ts` uses `reuseExistingServer`, so an unrelated Vite server on `8080` will cause false results.
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
PORT="${PORT:-8080}"
|
|
40
|
+
THIS_REPO="$(pwd -P)"
|
|
41
|
+
LISTENER_PID="$(lsof -tiTCP:${PORT} -sTCP:LISTEN 2>/dev/null | head -n1 || true)"
|
|
42
|
+
|
|
43
|
+
if [ -n "$LISTENER_PID" ]; then
|
|
44
|
+
LISTENER_CMD="$(ps -p "$LISTENER_PID" -o command=)"
|
|
45
|
+
if [[ "$LISTENER_CMD" != *"$THIS_REPO"* ]]; then
|
|
46
|
+
echo "Port ${PORT} is owned by another repo; killing PID ${LISTENER_PID}"
|
|
47
|
+
kill "$LISTENER_PID"
|
|
48
|
+
fi
|
|
49
|
+
fi
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
If you killed a different repo's server, do **not** start Vite manually. `bun pw` will launch the correct dev server from this folder via Playwright's `webServer` config.
|
|
53
|
+
|
|
36
54
|
```bash
|
|
37
55
|
bun pw
|
|
38
56
|
```
|
|
@@ -50,5 +68,5 @@ Report one of:
|
|
|
50
68
|
|
|
51
69
|
- `bun run test` not `bun test` — critical difference, the latter runs E2E too
|
|
52
70
|
- Playwright needs browsers installed (`bun pw:install` if missing)
|
|
53
|
-
-
|
|
71
|
+
- Before `bun pw`, verify any existing `8080` listener belongs to this repo; otherwise kill it and let Playwright start the right server
|
|
54
72
|
- HTML Playwright snapshot failures are a hard stop — never update HTML snapshots without understanding why they changed
|