chore(deps): upgrade to typescript 7 bridge and clean up pnpm v11 workspace configs
CI / check (push) Failing after 58s
Deploy / release (push) Skipped
Deploy / deploy (push) Failing after 11s

This commit is contained in:
openhands committed 2026-07-27 23:14:00 +02:00
1 parent 65f118c918
commit dacc4cadfd
12 files changed
+1138 -725

No files matched your search

+1 -1
View File
@@ -220,7 +220,7 @@ export function ClientView({
window.removeEventListener("touchmove", onTouchMove);
window.removeEventListener("touchend", onEnd);
};
// biome-ignore lint/correctness/useExhaustiveDependencies: snapPos is a useCallback used intentionally here
// biome-ignore lint/correctness/useExhaustiveDependencies: snapPos is a useCallback used intentionally here
}, [dragging, snapPos]);
return (
@@ -144,7 +144,7 @@ export function InlineEditor({ pageId, onSaved }: InlineEditorProps) {
}
document.addEventListener("keydown", onKeyDown);
return () => document.removeEventListener("keydown", onKeyDown);
// biome-ignore lint/correctness/useExhaustiveDependencies: handleSave is a stable callback from parent
// biome-ignore lint/correctness/useExhaustiveDependencies: handleSave is a stable callback from parent
}, [canEdit, isDirty, saving, page, handleSave]);
const loadPage = useCallback(
+7 -7
View File
@@ -338,13 +338,13 @@ export function RegisterForm({
>
{isPending ? (
<span className="inline-flex items-center justify-center gap-2">
<svg
className="animate-spin h-4 w-4"
viewBox="0 0 24 24"
fill="none"
role="img"
aria-label="Loading"
>
<svg
className="animate-spin h-4 w-4"
viewBox="0 0 24 24"
fill="none"
role="img"
aria-label="Loading"
>
<circle
className="opacity-25"
cx="12"
+5 -1
View File
@@ -4,7 +4,11 @@ import type * as React from "react";
import { cn } from "@/lib/utils";
function Label({ className, htmlFor, ...props }: React.ComponentProps<"label">) {
function Label({
className,
htmlFor,
...props
}: React.ComponentProps<"label">) {
return (
// biome-ignore lint/a11y/noLabelWithoutControl: reusable component, input is associated via htmlFor at usage site
<label
+18 -5
View File
@@ -34,8 +34,12 @@ describe("production deploy workflow", () => {
const chownCmd = `sudo chown -R "${userVar}:${groupVar}"`;
expect(toContainLiteral(workflow, chownCmd)).toBe(true);
const reclaimAt = deployJob.indexOf(chownCmd);
expect(toContainLiteral(deployJob, `git -C "${liveVar}" fetch origin --prune`)).toBe(true);
const fetchAt = deployJob.indexOf(`git -C "${liveVar}" fetch origin --prune`);
expect(
toContainLiteral(deployJob, `git -C "${liveVar}" fetch origin --prune`),
).toBe(true);
const fetchAt = deployJob.indexOf(
`git -C "${liveVar}" fetch origin --prune`,
);
expect(reclaimAt).toBeGreaterThan(-1);
expect(fetchAt).toBeGreaterThan(reclaimAt);
});
@@ -53,8 +57,12 @@ describe("production deploy workflow", () => {
it("swaps a built .next artifact during a short service cutover", () => {
expect(deployJob).toContain("mv .next .next.prev");
expect(toContainLiteral(deployJob, `mv "${stageVar}/.next" .next`)).toBe(true);
expect(toContainLiteral(deployJob, `mv "${stageVar}/node_modules" node_modules`)).toBe(true);
expect(toContainLiteral(deployJob, `mv "${stageVar}/.next" .next`)).toBe(
true,
);
expect(
toContainLiteral(deployJob, `mv "${stageVar}/node_modules" node_modules`),
).toBe(true);
expect(deployJob).toContain("Rolling back .next to previous artifact");
const buildAt = deployJob.indexOf("pnpm build");
const stopAt = deployJob.indexOf("pm2 stop next");
@@ -84,7 +92,12 @@ describe("production deploy workflow", () => {
it("exports APP_VERSION from git for Sentry releases", () => {
const exportCmd = `export APP_VERSION="$(git -C "${liveVar}" rev-parse --short origin/main)"`;
expect(toContainLiteral(workflow, exportCmd)).toBe(true);
expect(toContainLiteral(workflow, `export NEXT_PUBLIC_APP_VERSION="${appVerVar}"`)).toBe(true);
expect(
toContainLiteral(
workflow,
`export NEXT_PUBLIC_APP_VERSION="${appVerVar}"`,
),
).toBe(true);
});
it("runs an HTTP health check before declaring deploy success", () => {
+29 -7
View File
@@ -9,10 +9,23 @@ const mockDb = {} as CurrencyDb;
describe("sendCurrency", () => {
it("returns false for non-positive amount", async () => {
expect(await sendCurrency({ rcon: {} as never, db: mockDb }, 1, "credits", 0)).toBe(false);
expect(await sendCurrency({ rcon: {} as never, db: mockDb }, 1, "credits", -5)).toBe(false);
expect(await sendCurrency({ rcon: {} as never, db: mockDb }, 1, "credits", null)).toBe(false);
expect(await sendCurrency({ rcon: {} as never, db: mockDb }, 1, "credits", undefined)).toBe(false);
expect(
await sendCurrency({ rcon: {} as never, db: mockDb }, 1, "credits", 0),
).toBe(false);
expect(
await sendCurrency({ rcon: {} as never, db: mockDb }, 1, "credits", -5),
).toBe(false);
expect(
await sendCurrency({ rcon: {} as never, db: mockDb }, 1, "credits", null),
).toBe(false);
expect(
await sendCurrency(
{ rcon: {} as never, db: mockDb },
1,
"credits",
undefined,
),
).toBe(false);
});
it("delivers credits via RCON", async () => {
@@ -23,7 +36,10 @@ describe("sendCurrency", () => {
givePointsGotw: vi.fn(),
};
const result = await sendCurrency(
{ rcon, db: { user: { update: vi.fn() }, usersCurrency: { upsert: vi.fn() } } },
{
rcon,
db: { user: { update: vi.fn() }, usersCurrency: { upsert: vi.fn() } },
},
1,
"credits",
100,
@@ -43,7 +59,10 @@ describe("sendCurrency", () => {
const result = await sendCurrency(
{
rcon,
db: { user: { update: userUpdate }, usersCurrency: { upsert: vi.fn() } },
db: {
user: { update: userUpdate },
usersCurrency: { upsert: vi.fn() },
},
},
1,
"credits",
@@ -64,7 +83,10 @@ describe("sendCurrency", () => {
givePointsGotw: vi.fn(),
};
const result = await sendCurrency(
{ rcon, db: { user: { update: vi.fn() }, usersCurrency: { upsert: vi.fn() } } },
{
rcon,
db: { user: { update: vi.fn() }, usersCurrency: { upsert: vi.fn() } },
},
1,
"duckets",
50,