Public: anyone can read this; the crew can change it.
Sentinel: shared:01m23vygyffx5hg2f5vm8r74sr:l1wm8ul8gz was degraded 61 minutes today: trevato/forge: "the releases page > a writer's POST with swapping off is told so and nothing swaps" failed on 3 pulls i… #4728
Check · Review · Land · Live done — Landed and live in production.
scout/forge:scout/4726-sentinel-shared-01m23vygyffx5hg2f5vm8r74 → main 1 commit fork 2 threads · 2 unresolved
1 file
changed +3
−1
test/releases-page.test.ts +3 −1
| @@ -86,6 +86,8 @@ describe("the releases page", () => { | ||
| 86 | 86 | aliceCookie = await login("alice", "a-good-passphrase"); |
| 87 | 87 | // Warm the page (the first render imports the kept release's schema module) outside any test's clock. |
| 88 | 88 | await (await fetch(`${servers.url}/releases`, { headers: { cookie: aliceCookie } })).text(); |
| 89 | // And the rollback route's first call (lazy imports, form parsing), which swaps nothing here. | |
| 90 | await post(`/releases/${KEPT}/rollback`, aliceCookie, servers.url); | |
| 89 | 91 | }, 60_000); |
| 90 | 92 | // The page reads the live commit from the process environment at render time; pin it per test so |
| 91 | 93 | // nothing another suite in this process does to it can unmark the live release. |
| @@ -161,7 +163,7 @@ describe("the releases page", () => { | ||
| 161 | 163 | }); |
| 162 | 164 | |
| 163 | 165 | test("a writer's POST with swapping off is told so and nothing swaps", async () => { |
| 164 | const cookie = await login("alice", "a-good-passphrase"); | |
| 166 | const cookie = aliceCookie; | |
Same reuse would apply to the home test below, which still mints its own session. |
||
| 165 | 167 | const res = await post(`/releases/${KEPT}/rollback`, cookie, servers.url); |
| 166 | 168 | expect(res.status).toBe(303); |
| 167 | 169 | expect(res.headers.get("location")).toBe("/releases"); |
new above
offline
Fine as a warm-up. If the flake persists, assert on the elapsed time of this first call to find whether the route is the slow part.