diff --git a/package.json b/package.json index 1caca8dc2a8..9c1f63e00e5 100644 --- a/package.json +++ b/package.json @@ -368,6 +368,7 @@ "json5": "^2.2.3", "jszip": "^3.10.1", "linkedom": "^0.18.12", + "long": "^5.3.2", "markdown-it": "^14.1.1", "node-edge-tts": "^1.2.10", "opusscript": "^0.1.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3d3c952482a..cc08b9f1220 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -133,6 +133,9 @@ importers: linkedom: specifier: ^0.18.12 version: 0.18.12 + long: + specifier: ^5.3.2 + version: 5.3.2 markdown-it: specifier: ^14.1.1 version: 14.1.1 diff --git a/src/browser/client-fetch.loopback-auth.test.ts b/src/browser/client-fetch.loopback-auth.test.ts index 70042a2ebee..cda6d29d4e3 100644 --- a/src/browser/client-fetch.loopback-auth.test.ts +++ b/src/browser/client-fetch.loopback-auth.test.ts @@ -122,9 +122,12 @@ describe("fetchBrowserJson loopback auth", () => { it("preserves dispatcher error context while keeping no-retry hint", async () => { mocks.dispatch.mockRejectedValueOnce(new Error("Chrome CDP handshake timeout")); - const thrown = await fetchBrowserJson<{ ok: boolean }>("/tabs").catch((err) => err as Error); + const thrown = await fetchBrowserJson<{ ok: boolean }>("/tabs").catch((err: unknown) => err); expect(thrown).toBeInstanceOf(Error); + if (!(thrown instanceof Error)) { + throw new Error(`Expected Error, got ${String(thrown)}`); + } expect(thrown.message).toContain("Chrome CDP handshake timeout"); expect(thrown.message).toContain("Do NOT retry the browser tool"); expect(thrown.message).not.toContain("Can't reach the OpenClaw browser control service"); @@ -139,10 +142,13 @@ describe("fetchBrowserJson loopback auth", () => { ); const thrown = await fetchBrowserJson<{ ok: boolean }>("http://example.com/").catch( - (err) => err as Error, + (err: unknown) => err, ); expect(thrown).toBeInstanceOf(Error); + if (!(thrown instanceof Error)) { + throw new Error(`Expected Error, got ${String(thrown)}`); + } expect(thrown.message).toContain("Can't reach the OpenClaw browser control service"); expect(thrown.message).toContain("Do NOT retry the browser tool"); }); diff --git a/ui/src/ui/app-view-state.ts b/ui/src/ui/app-view-state.ts index eb0059faf8e..2029bd8f8f4 100644 --- a/ui/src/ui/app-view-state.ts +++ b/ui/src/ui/app-view-state.ts @@ -59,7 +59,6 @@ export type AppViewState = { chatToolMessages: unknown[]; chatStreamSegments: Array<{ text: string; ts: number }>; chatStream: string | null; - chatStreamSegments: Array<{ text: string; ts: number }>; chatStreamStartedAt: number | null; chatRunId: string | null; compactionStatus: CompactionStatus | null;