From 71d4e23943ee1092d0a00a65fa0025a21aa3ebff Mon Sep 17 00:00:00 2001 From: Nikhil Sonti Date: Fri, 27 Mar 2026 16:53:46 -0700 Subject: [PATCH] fix: address review feedback for PR #610 --- .../apps/agent/web-ext.config.ts | 4 -- .../apps/server/src/api/routes/status.ts | 11 +++-- .../browseros-agent/apps/server/src/config.ts | 4 ++ .../server/tests/api/routes/status.test.ts | 43 +++++++++++++++++++ .../apps/server/tests/config.test.ts | 24 +++++++++++ 5 files changed, 76 insertions(+), 10 deletions(-) create mode 100644 packages/browseros-agent/apps/server/tests/api/routes/status.test.ts diff --git a/packages/browseros-agent/apps/agent/web-ext.config.ts b/packages/browseros-agent/apps/agent/web-ext.config.ts index 0c27a1d8..088d379a 100644 --- a/packages/browseros-agent/apps/agent/web-ext.config.ts +++ b/packages/browseros-agent/apps/agent/web-ext.config.ts @@ -1,12 +1,8 @@ -import { dirname, join } from 'node:path' -import { fileURLToPath } from 'node:url' import { defineWebExtConfig } from 'wxt' // biome-ignore lint/style/noProcessEnv: config file needs env access const env = process.env -const _MONOREPO_ROOT = join(dirname(fileURLToPath(import.meta.url)), '../..') - const chromiumArgs = [ '--use-mock-keychain', '--show-component-extension-options', diff --git a/packages/browseros-agent/apps/server/src/api/routes/status.ts b/packages/browseros-agent/apps/server/src/api/routes/status.ts index 4e8b94f1..42b658fd 100644 --- a/packages/browseros-agent/apps/server/src/api/routes/status.ts +++ b/packages/browseros-agent/apps/server/src/api/routes/status.ts @@ -12,13 +12,12 @@ interface StatusDeps { } export function createStatusRoute(deps: StatusDeps = {}) { - const cdpConnected = deps.browser?.isCdpConnected() - - return new Hono().get('/', (c) => - c.json( + return new Hono().get('/', (c) => { + const cdpConnected = deps.browser?.isCdpConnected() + return c.json( cdpConnected === undefined ? { status: 'ok' } : { status: 'ok', cdpConnected }, - ), - ) + ) + }) } diff --git a/packages/browseros-agent/apps/server/src/config.ts b/packages/browseros-agent/apps/server/src/config.ts index 6551634b..db7d1a57 100644 --- a/packages/browseros-agent/apps/server/src/config.ts +++ b/packages/browseros-agent/apps/server/src/config.ts @@ -161,6 +161,10 @@ function parseCliArgs(argv: string[]): ConfigResult { ) } + if (opts.extensionPort !== undefined) { + console.warn('Warning: --extension-port is deprecated and has no effect.') + } + const cwd = process.cwd() return { diff --git a/packages/browseros-agent/apps/server/tests/api/routes/status.test.ts b/packages/browseros-agent/apps/server/tests/api/routes/status.test.ts new file mode 100644 index 00000000..2406a320 --- /dev/null +++ b/packages/browseros-agent/apps/server/tests/api/routes/status.test.ts @@ -0,0 +1,43 @@ +/** + * @license + * Copyright 2025 BrowserOS + */ + +import { describe, it } from 'bun:test' +import assert from 'node:assert' + +import { createStatusRoute } from '../../../src/api/routes/status' + +describe('createStatusRoute', () => { + it('returns status ok when no browser is provided', async () => { + const route = createStatusRoute() + const response = await route.request('/') + + assert.strictEqual(response.status, 200) + const body = await response.json() + assert.deepStrictEqual(body, { status: 'ok' }) + }) + + it('reads CDP connectivity on each request', async () => { + let connected = false + const route = createStatusRoute({ + browser: { + isCdpConnected: () => connected, + } as never, + }) + + const firstResponse = await route.request('/') + assert.deepStrictEqual(await firstResponse.json(), { + status: 'ok', + cdpConnected: false, + }) + + connected = true + + const secondResponse = await route.request('/') + assert.deepStrictEqual(await secondResponse.json(), { + status: 'ok', + cdpConnected: true, + }) + }) +}) diff --git a/packages/browseros-agent/apps/server/tests/config.test.ts b/packages/browseros-agent/apps/server/tests/config.test.ts index 5409c984..b90d5271 100644 --- a/packages/browseros-agent/apps/server/tests/config.test.ts +++ b/packages/browseros-agent/apps/server/tests/config.test.ts @@ -80,6 +80,30 @@ describe('loadServerConfig', () => { assert.strictEqual(result.value.cdpPort, null) assert.strictEqual(result.value.extensionPort, null) }) + + it('warns when --extension-port is provided', () => { + const warnings: string[] = [] + const originalWarn = console.warn + console.warn = (message?: unknown) => { + warnings.push(String(message)) + } + + try { + const result = loadServerConfig([ + 'bun', + 'src/index.ts', + '--server-port=9223', + '--extension-port=9224', + ]) + + assert.strictEqual(result.ok, true) + assert.deepStrictEqual(warnings, [ + 'Warning: --extension-port is deprecated and has no effect.', + ]) + } finally { + console.warn = originalWarn + } + }) }) describe('environment variables', () => {