fix(deps): update undici and tar to latest versions for improved stability

This commit is contained in:
GitHub Actions
2026-03-20 02:47:00 +00:00
parent bb14ae73cc
commit 856fd4097b
4 changed files with 173 additions and 6 deletions

View File

@@ -45,6 +45,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Prevents timeout errors in Firefox/WebKit caused by strict label matching
### Fixed
- **TCP Monitor Creation**: Fixed misleading form UX that caused silent HTTP 500 errors when creating TCP monitors
- Corrected URL placeholder to show `host:port` format instead of the incorrect `tcp://host:port` prefix
- Added dynamic per-type placeholder and helper text (HTTP monitors show a full URL example; TCP monitors show `host:port`)
- Added client-side validation that blocks form submission when a scheme prefix (e.g. `tcp://`) is detected, with an inline error message
- Reordered form fields so the monitor type selector appears above the URL input, making the dynamic helper text immediately relevant
- i18n: Added 5 new translation keys across en, de, fr, es, and zh locales
- **CI: Rate Limit Integration Tests**: Hardened test script reliability — login now validates HTTP status, Caddy admin API readiness gated on `/config/` poll, security config failures are fatal with full diagnostics, and poll interval increased to 5s
- **CI: Rate Limit Integration Tests**: Removed stale GeoIP database SHA256 checksum from Dockerfile non-CI path (hash was perpetually stale due to weekly upstream updates)
- **CI: Rate Limit Integration Tests**: Fixed Caddy admin API debug dump URL to use canonical trailing slash in workflow

View File

@@ -0,0 +1,161 @@
---
title: "Manual Test Plan - PR-5 TCP Monitor UX Fix"
labels:
- testing
- frontend
- bug
priority: high
---
# Manual Test Plan - PR-5 TCP Monitor UX Fix
## Scope
PR-5 only.
This plan covers manual verification of the five UX fixes applied to the TCP monitor creation form:
1. Corrected URL placeholder (removed misleading `tcp://` prefix)
2. Dynamic per-type placeholder (HTTP vs TCP)
3. Per-type helper text below the URL input
4. Client-side TCP scheme validation with inline error
5. Form field reorder: type selector now appears before URL input
Out of scope:
- Backend monitor logic or storage
- Any other monitor type beyond HTTP and TCP
- Notification provider changes
## Preconditions
- [ ] Environment is running (Docker E2E or local dev).
- [ ] Tester can access the Monitors page and open the Create Monitor modal.
- [ ] Browser DevTools Network tab is available for TC-PR5-007.
---
## Track A — Smoke Tests (Existing HTTP Behaviour)
### TC-PR5-001 HTTP monitor creation still works
- [ ] Open the Create Monitor modal.
- [ ] Select type **HTTP**.
- [ ] Enter a valid URL: `https://example.com`.
- [ ] Fill in remaining required fields and click **Create**.
- Expected result: monitor is created successfully; no errors shown.
- Status: [ ] Not run [ ] Pass [ ] Fail
- Notes:
### TC-PR5-009 Existing HTTP monitors display correctly in the list
- [ ] Navigate to the Monitors list.
- [ ] Confirm any pre-existing HTTP monitors are still shown with correct URLs.
- Expected result: no regressions in list display.
- Status: [ ] Not run [ ] Pass [ ] Fail
- Notes:
### TC-PR5-010 Existing TCP monitors display correctly in the list
- [ ] Navigate to the Monitors list.
- [ ] Confirm any pre-existing TCP monitors are still shown with correct host:port values.
- Expected result: no regressions in list display.
- Status: [ ] Not run [ ] Pass [ ] Fail
- Notes:
---
## Track B — Core Fix (TCP Scheme Validation)
### TC-PR5-002 TCP monitor with `tcp://` prefix shows inline error and blocks submission
- [ ] Open the Create Monitor modal.
- [ ] Select type **TCP**.
- [ ] Enter URL: `tcp://192.168.1.1:8080`.
- [ ] Click **Create** (or attempt to submit).
- Expected result: an inline error appears on the URL field; the form is not submitted; no new monitor appears in the list.
- Status: [ ] Not run [ ] Pass [ ] Fail
- Notes:
### TC-PR5-003 TCP monitor with valid `host:port` format succeeds
- [ ] Open the Create Monitor modal.
- [ ] Select type **TCP**.
- [ ] Enter URL: `192.168.1.1:8080`.
- [ ] Fill in remaining required fields and click **Create**.
- Expected result: monitor is created successfully; no errors shown.
- Status: [ ] Not run [ ] Pass [ ] Fail
- Notes:
---
## Track C — Dynamic Placeholder & Helper Text
### TC-PR5-005 Form field order: Type selector appears above URL input
- [ ] Open the Create Monitor modal.
- [ ] Inspect the visual layout of the form.
- Expected result: the monitor **Type** selector is positioned above the **URL** input field.
- Status: [ ] Not run [ ] Pass [ ] Fail
- Notes:
### TC-PR5-006 Helper text updates when switching between HTTP and TCP
- [ ] Open the Create Monitor modal.
- [ ] Select type **HTTP** and note the helper text shown beneath the URL input.
- [ ] Switch type to **TCP** and note the helper text again.
- Expected result: helper text differs between HTTP and TCP types, giving format guidance appropriate to each.
- Status: [ ] Not run [ ] Pass [ ] Fail
- Notes:
### TC-PR5-006b Placeholder updates when switching between HTTP and TCP
- [ ] Open the Create Monitor modal.
- [ ] Select type **HTTP** and note the URL input placeholder.
- [ ] Switch type to **TCP** and note the placeholder again.
- Expected result: HTTP placeholder shows a full URL (e.g. `https://example.com`); TCP placeholder shows `host:port` format (no scheme).
- Status: [ ] Not run [ ] Pass [ ] Fail
- Notes:
---
## Track D — Interaction Edge Cases
### TC-PR5-004 Switching type from TCP (with error) to HTTP clears the inline error
- [ ] Open the Create Monitor modal.
- [ ] Select type **TCP** and enter `tcp://192.168.1.1:8080` to trigger the inline error.
- [ ] Switch type to **HTTP**.
- Expected result: the scheme-prefix inline error disappears immediately after the type change.
- Status: [ ] Not run [ ] Pass [ ] Fail
- Notes:
### TC-PR5-007 Submit guard: no API call fires when scheme prefix error is present
- [ ] Open browser DevTools and go to the **Network** tab.
- [ ] Open the Create Monitor modal.
- [ ] Select type **TCP** and enter `tcp://192.168.1.1:8080`.
- [ ] Click **Create**.
- Expected result: the inline error is shown and no outbound POST/PUT request to the monitors API endpoint appears in the Network tab.
- Status: [ ] Not run [ ] Pass [ ] Fail
- Notes:
---
## Track E — Localisation (Optional)
### TC-PR5-008 New translation keys appear correctly in non-English locales
- [ ] Switch the application language to **German**, **French**, **Spanish**, or **Chinese**.
- [ ] Open the Create Monitor modal and select type **TCP**.
- [ ] Observe the URL placeholder, helper text, and inline error message (trigger it with `tcp://host:port`).
- Expected result: all three UI strings appear in the selected language without showing raw translation key strings (e.g. no `urlPlaceholder.tcp` visible to the user).
- Status: [ ] Not run [ ] Pass [ ] Fail
- Notes:
---
## Sign-off
| Tester | Date | Environment | Result |
|--------|------|-------------|--------|
| | | | |

View File

@@ -10554,9 +10554,9 @@
}
},
"node_modules/undici": {
"version": "7.24.4",
"resolved": "https://registry.npmjs.org/undici/-/undici-7.24.4.tgz",
"integrity": "sha512-BM/JzwwaRXxrLdElV2Uo6cTLEjhSb3WXboncJamZ15NgUURmvlXvxa6xkwIOILIjPNo9i8ku136ZvWV0Uly8+w==",
"version": "7.24.5",
"resolved": "https://registry.npmjs.org/undici/-/undici-7.24.5.tgz",
"integrity": "sha512-3IWdCpjgxp15CbJnsi/Y9TCDE7HWVN19j1hmzVhoAkY/+CJx449tVxT5wZc1Gwg8J+P0LWvzlBzxYRnHJ+1i7Q==",
"dev": true,
"license": "MIT",
"engines": {

6
package-lock.json generated
View File

@@ -3589,9 +3589,9 @@
}
},
"node_modules/tar": {
"version": "7.5.11",
"resolved": "https://registry.npmjs.org/tar/-/tar-7.5.11.tgz",
"integrity": "sha512-ChjMH33/KetonMTAtpYdgUFr0tbz69Fp2v7zWxQfYZX4g5ZN2nOBXm1R2xyA+lMIKrLKIoKAwFj93jE/avX9cQ==",
"version": "7.5.12",
"resolved": "https://registry.npmjs.org/tar/-/tar-7.5.12.tgz",
"integrity": "sha512-9TsuLcdhOn4XztcQqhNyq1KOwOOED/3k58JAvtULiYqbO8B/0IBAAIE1hj0Svmm58k27TmcigyDI0deMlgG3uw==",
"dev": true,
"license": "BlueOak-1.0.0",
"dependencies": {