From 4c14c5a0977ff2d2ea224f1c4a439e9d49de08a2 Mon Sep 17 00:00:00 2001 From: Alex Rudenko Date: Mon, 1 Dec 2025 14:21:01 +0100 Subject: [PATCH] feat: integrate DevTools issue into the console --- src/PageCollector.ts | 4 ---- src/features.ts | 16 ---------------- src/main.ts | 5 +---- src/tools/console.ts | 6 ------ tests/PageCollector.test.ts | 8 +------- tests/tools/console.test.ts | 15 +-------------- 6 files changed, 3 insertions(+), 51 deletions(-) delete mode 100644 src/features.ts diff --git a/src/PageCollector.ts b/src/PageCollector.ts index abc41f68..22b3dc6d 100644 --- a/src/PageCollector.ts +++ b/src/PageCollector.ts @@ -16,7 +16,6 @@ import { } from '../node_modules/chrome-devtools-frontend/mcp/mcp.js'; import {FakeIssuesManager} from './DevtoolsUtils.js'; -import {features} from './features.js'; import {logger} from './logger.js'; import type { CDPSession, @@ -228,9 +227,6 @@ export class ConsoleCollector extends PageCollector< override addPage(page: Page): void { super.addPage(page); - if (!features.issues) { - return; - } if (!this.#subscribedPages.has(page)) { const subscriber = new PageIssueSubscriber(page); this.#subscribedPages.set(page, subscriber); diff --git a/src/features.ts b/src/features.ts deleted file mode 100644 index 6260edc7..00000000 --- a/src/features.ts +++ /dev/null @@ -1,16 +0,0 @@ -/** - * @license - * Copyright 2025 Google LLC - * SPDX-License-Identifier: Apache-2.0 - */ -let issuesEnabled = false; - -export const features = { - get issues() { - return issuesEnabled; - }, -}; - -export function setIssuesEnabled(value: boolean) { - issuesEnabled = value; -} diff --git a/src/main.ts b/src/main.ts index f0092f33..c19b23a5 100644 --- a/src/main.ts +++ b/src/main.ts @@ -9,7 +9,6 @@ import './polyfill.js'; import type {Channel} from './browser.js'; import {ensureBrowserConnected, ensureBrowserLaunched} from './browser.js'; import {parseArguments} from './cli.js'; -import {features} from './features.js'; import {loadIssueDescriptions} from './issue-descriptions.js'; import {logger, saveLogsToFile} from './logger.js'; import {McpContext} from './McpContext.js'; @@ -186,9 +185,7 @@ for (const tool of tools) { registerTool(tool); } -if (features.issues) { - await loadIssueDescriptions(); -} +await loadIssueDescriptions(); const transport = new StdioServerTransport(); await server.connect(transport); logger('Chrome DevTools MCP Server connected'); diff --git a/src/tools/console.ts b/src/tools/console.ts index f69f5d88..9c3d145b 100644 --- a/src/tools/console.ts +++ b/src/tools/console.ts @@ -3,8 +3,6 @@ * Copyright 2025 Google LLC * SPDX-License-Identifier: Apache-2.0 */ - -import {features} from '../features.js'; import {zod} from '../third_party/index.js'; import type {ConsoleMessageType} from '../third_party/index.js'; @@ -38,10 +36,6 @@ const FILTERABLE_MESSAGE_TYPES: [ 'issue', ]; -if (features.issues) { - FILTERABLE_MESSAGE_TYPES.push('issue'); -} - export const listConsoleMessages = defineTool({ name: 'list_console_messages', description: diff --git a/tests/PageCollector.test.ts b/tests/PageCollector.test.ts index 997293b7..267a6daa 100644 --- a/tests/PageCollector.test.ts +++ b/tests/PageCollector.test.ts @@ -5,13 +5,12 @@ */ import assert from 'node:assert'; -import {afterEach, beforeEach, describe, it} from 'node:test'; +import {beforeEach, describe, it} from 'node:test'; import type {Frame, HTTPRequest, Target, Protocol} from 'puppeteer-core'; import sinon from 'sinon'; import {AggregatedIssue} from '../node_modules/chrome-devtools-frontend/mcp/mcp.js'; -import {setIssuesEnabled} from '../src/features.js'; import type {ListenerMap} from '../src/PageCollector.js'; import { ConsoleCollector, @@ -301,11 +300,6 @@ describe('ConsoleCollector', () => { }, }, }; - setIssuesEnabled(true); - }); - - afterEach(() => { - setIssuesEnabled(false); }); it('emits issues on page', async () => { diff --git a/tests/tools/console.test.ts b/tests/tools/console.test.ts index 4ce0873b..54ece24a 100644 --- a/tests/tools/console.test.ts +++ b/tests/tools/console.test.ts @@ -5,10 +5,9 @@ */ import assert from 'node:assert'; -import {afterEach, before, beforeEach, describe, it} from 'node:test'; +import {before, describe, it} from 'node:test'; import {AggregatedIssue} from '../../node_modules/chrome-devtools-frontend/mcp/mcp.js'; -import {setIssuesEnabled} from '../../src/features.js'; import {loadIssueDescriptions} from '../../src/issue-descriptions.js'; import {McpResponse} from '../../src/McpResponse.js'; import { @@ -59,12 +58,6 @@ describe('console', () => { }); describe('issues', () => { - beforeEach(() => { - setIssuesEnabled(true); - }); - afterEach(() => { - setIssuesEnabled(false); - }); it('lists issues', async () => { await withMcpContext(async (response, context) => { const page = await context.newPage(); @@ -155,12 +148,6 @@ describe('console', () => { describe('issues type', () => { const server = serverHooks(); - beforeEach(() => { - setIssuesEnabled(true); - }); - afterEach(() => { - setIssuesEnabled(false); - }); it('gets issue details with node id parsing', async t => { await withMcpContext(async (response, context) => {