Skip to content

feat(extension): add browser agent side panel#4164

Open
iscekic wants to merge 112 commits into
mainfrom
feat/add-extension-app
Open

feat(extension): add browser agent side panel#4164
iscekic wants to merge 112 commits into
mainfrom
feat/add-extension-app

Conversation

@iscekic

@iscekic iscekic commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds the new browser extension app under apps/extension, including a native Chrome side panel, Kilo auth, model loading, tab selection, dangerous-mode eval tooling through Chrome debugger, and a gateway-backed streaming LLM harness. The side panel includes compact Kilo-styled controls, virtualized conversation history, fixed shell scrolling, and E2E coverage for the core extension flows.

Verification

Manual verification not run; no manual browser screenshots were captured for this extension scaffold.

Visual Changes

N/A

Reviewer Notes

Review focus areas: Chrome extension permissions, debugger/eval execution path, streaming chat-completions parsing, auth-token validation, and the new WXT/Playwright package setup.

iscekic added 27 commits June 22, 2026 14:55
@iscekic iscekic self-assigned this Jun 22, 2026
Comment thread apps/extension/entrypoints/sidepanel/app.tsx Outdated
Comment thread apps/extension/entrypoints/sidepanel/agent-llm-turn-runner.ts Outdated
Comment thread apps/extension/src/shared/tab-debugger.ts
@kilo-code-bot

kilo-code-bot Bot commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

Code Review Summary

Status: 1 Issue Found | Recommendation: Address before merge

Overview

Severity Count
CRITICAL 0
WARNING 1
SUGGESTION 0

Fix these issues in Kilo Cloud

Issue Details (click to expand)

WARNING

File Line Issue
apps/extension/src/shared/tab-debugger.ts 702 Catch-all detach suppression can hide leaked debugger attachments
Files Reviewed (2 files)
  • apps/extension/src/shared/tab-debugger.ts - 1 issue
  • apps/extension/src/shared/tab-debugger.test.ts - 0 issues
Previous Review Summaries (26 snapshots, latest commit bcf0cde)

Current summary above is authoritative. Previous snapshots are kept for context only.

Previous review (commit bcf0cde)

Status: No Issues Found | Recommendation: Merge

Files Reviewed (3 files)
  • apps/extension/entrypoints/sidepanel/app.tsx
  • apps/extension/src/shared/agent-llm-harness.test.ts
  • apps/extension/src/shared/agent-llm-harness.ts

Previous review (commit 933bd7f)

Status: No Issues Found | Recommendation: Merge

Files Reviewed (4 files)
  • apps/extension/src/shared/agent-conversation.test.ts
  • apps/extension/src/shared/agent-conversation.ts
  • apps/extension/src/shared/tab-debugger.test.ts
  • apps/extension/src/shared/tab-debugger.ts

Previous review (commit ba14af1)

Status: No Issues Found | Recommendation: Merge

Files Reviewed (1 file)
  • apps/extension/tests/e2e/local-backend-live.test.ts

Previous review (commit 80a5733)

Status: 1 Issue Found | Recommendation: Address before merge

Overview

Severity Count
CRITICAL 0
WARNING 1
SUGGESTION 0

Fix these issues in Kilo Cloud

Issue Details (click to expand)

WARNING

File Line Issue
apps/extension/tests/e2e/local-backend-live.test.ts 573 Conditional stop check lets the parallel-stream test pass after the first run is aborted
Files Reviewed (1 file)
  • apps/extension/tests/e2e/local-backend-live.test.ts - 1 issue

Previous review (commit cb03ce6)

Status: No Issues Found | Recommendation: Merge

Files Reviewed (4 files)
  • apps/extension/entrypoints/sidepanel/conversation-list.tsx
  • apps/extension/tests/e2e/conversation-scroll.test.ts
  • apps/extension/tests/e2e/extension-context-fixture.ts
  • apps/extension/tests/e2e/local-backend-live.test.ts

Previous review (commit c1a6acc)

Status: 1 Issue Found | Recommendation: Address before merge

Overview

Severity Count
CRITICAL 0
WARNING 1
SUGGESTION 0

Fix these issues in Kilo Cloud

Issue Details (click to expand)

WARNING

File Line Issue
apps/extension/entrypoints/sidepanel/conversation-list.tsx 169 Upward wheel gestures disable auto-scroll even when the pane cannot scroll
Files Reviewed (4 files)
  • apps/extension/entrypoints/sidepanel/conversation-list.tsx - 1 issue
  • apps/extension/tests/e2e/conversation-spacing.test.ts - 0 issues
  • apps/extension/tests/e2e/firefox-selenium-e2e.ts - 0 issues
  • apps/extension/tests/e2e/local-backend-live.test.ts - 0 issues

Previous review (commit a3035c8)

Status: 1 Issue Found | Recommendation: Address before merge

Overview

Severity Count
CRITICAL 0
WARNING 1
SUGGESTION 0

Fix these issues in Kilo Cloud

Issue Details (click to expand)

WARNING

File Line Issue
apps/extension/tests/e2e/local-backend-live.test.ts 637 Storage assertions can race the async conversation-store writes
Files Reviewed (1 file)
  • apps/extension/tests/e2e/local-backend-live.test.ts - 1 issue

Previous review (commit e5015a3)

Status: 1 Issue Found | Recommendation: Address before merge

Overview

Severity Count
CRITICAL 0
WARNING 1
SUGGESTION 0

Fix these issues in Kilo Cloud

Issue Details (click to expand)

WARNING

File Line Issue
apps/extension/tests/e2e/local-backend-live.test.ts 511 Reload can still beat persisted conversation state
Files Reviewed (1 file)
  • apps/extension/tests/e2e/local-backend-live.test.ts - 1 issue

Previous review (commit 521f62e)

Status: 1 Issue Found | Recommendation: Address before merge

Overview

Severity Count
CRITICAL 0
WARNING 1
SUGGESTION 0

Fix these issues in Kilo Cloud

Issue Details (click to expand)

WARNING

File Line Issue
apps/extension/tests/e2e/local-backend-live.test.ts 319 Reload races the async conversation-store write
Files Reviewed (3 files)
  • apps/extension/entrypoints/sidepanel/conversation-list.tsx - 0 issues
  • apps/extension/tests/e2e/conversation-spacing.test.ts - 0 issues
  • apps/extension/tests/e2e/local-backend-live.test.ts - 1 issue

Previous review (commit f1614fe)

Status: No Issues Found | Recommendation: Merge

Files Reviewed (1 file)
  • apps/extension/tests/e2e/local-backend-live.test.ts

Previous review (commit 7bfacc3)

Status: 1 Issue Found | Recommendation: Address before merge

Overview

Severity Count
CRITICAL 0
WARNING 1
SUGGESTION 0

Fix these issues in Kilo Cloud

Issue Details (click to expand)

WARNING

File Line Issue
apps/extension/tests/e2e/local-backend-live.test.ts 267 Reload races the async conversation persistence
Files Reviewed (2 files)
  • apps/extension/package.json - 0 issues
  • apps/extension/tests/e2e/local-backend-live.test.ts - 1 issue

Previous review (commit e864cd0)

Status: 1 Issue Found | Recommendation: Address before merge

Overview

Severity Count
CRITICAL 0
WARNING 1
SUGGESTION 0

Fix these issues in Kilo Cloud

Issue Details (click to expand)

WARNING

File Line Issue
apps/extension/tests/e2e/local-backend-live.test.ts 267 Reload races the async conversation persistence
Files Reviewed (2 files)
  • apps/extension/package.json - 0 issues
  • apps/extension/tests/e2e/local-backend-live.test.ts - 1 issue

Previous review (commit 3a454df)

Status: No Issues Found | Recommendation: Merge

Files Reviewed (4 files)
  • apps/extension/entrypoints/sidepanel/app.tsx
  • apps/extension/src/shared/auth.ts
  • apps/extension/src/shared/auth.test.ts
  • apps/extension/tests/e2e/conversation-tabs.test.ts

Previous review (commit 105ad8d)

Status: No Issues Found | Recommendation: Merge

Files Reviewed (4 files)
  • apps/extension/entrypoints/sidepanel/agent-chat-panel.tsx
  • apps/extension/entrypoints/sidepanel/agent-footer-controls.tsx
  • apps/extension/entrypoints/sidepanel/conversation-list.tsx
  • apps/extension/tests/e2e/conversation-rendering.test.ts

Previous review (commit 42f8fa4)

Status: 1 Issue Found | Recommendation: Address before merge

Overview

Severity Count
CRITICAL 0
WARNING 1
SUGGESTION 0

Fix these issues in Kilo Cloud

Issue Details (click to expand)

WARNING

File Line Issue
apps/extension/entrypoints/sidepanel/agent-chat-panel.tsx 219 Only the send path is gated until conversation hydration finishes
Files Reviewed (6 files)
  • apps/extension/entrypoints/sidepanel/agent-chat-panel.tsx - 1 issue
  • apps/extension/entrypoints/sidepanel/conversation-list.tsx - 0 issues
  • apps/extension/src/shared/agent-conversation-tabs.ts - 0 issues
  • apps/extension/tests/e2e/conversation-rendering.test.ts - 0 issues
  • apps/extension/tests/e2e/firefox-selenium-e2e.ts - 0 issues
  • apps/extension/tests/e2e/kilo-api-fixture.ts - 0 issues

Previous review (commit 9d1483c)

Status: 1 Issue Found | Recommendation: Address before merge

Overview

Severity Count
CRITICAL 0
WARNING 1
SUGGESTION 0

Fix these issues in Kilo Cloud

Issue Details (click to expand)

WARNING

File Line Issue
apps/extension/entrypoints/sidepanel/agent-chat-panel.tsx 206 Only the send path is gated until conversation hydration finishes
Files Reviewed (3 files)
  • apps/extension/entrypoints/sidepanel/agent-chat-panel.tsx - 1 issue
  • apps/extension/entrypoints/sidepanel/agent-conversation-storage.ts - 0 issues
  • apps/extension/tests/e2e/conversation-tabs.test.ts - 0 issues

Previous review (commit 9d20e19)

Status: 2 Issues Found | Recommendation: Address before merge

Overview

Severity Count
CRITICAL 0
WARNING 2
SUGGESTION 0

Fix these issues in Kilo Cloud

Issue Details (click to expand)

WARNING

File Line Issue
apps/extension/entrypoints/sidepanel/conversation-list.tsx 91 Removing virtualization remounts the full transcript
apps/extension/tests/e2e/kilo-api-fixture.ts 162 The mock no longer checks for a required model field
Files Reviewed (11 files)
  • apps/extension/entrypoints/sidepanel/agent-chat-panel.tsx - 0 issues
  • apps/extension/entrypoints/sidepanel/agent-conversation-storage.ts - 0 issues
  • apps/extension/entrypoints/sidepanel/conversation-list.tsx - 1 issue
  • apps/extension/src/shared/agent-conversation-tabs.ts - 0 issues
  • apps/extension/src/shared/tab-debugger.test.ts - 0 issues
  • apps/extension/src/shared/tab-debugger.ts - 0 issues
  • apps/extension/tests/e2e/conversation-tabs.test.ts - 0 issues
  • apps/extension/tests/e2e/kilo-api-fixture.ts - 1 issue
  • apps/extension/tests/e2e/safe-mode.test.ts - 0 issues
  • apps/extension/tests/e2e/sidebar.test.ts - 0 issues
  • apps/extension/wxt.config.ts - 0 issues

Previous review (commit ffb2e2a)

Status: No Issues Found | Recommendation: Merge

Files Reviewed (4 files)
  • apps/extension/entrypoints/sidepanel/agent-conversation-storage.ts
  • apps/extension/entrypoints/sidepanel/app.tsx
  • apps/extension/tests/e2e/conversation-tabs.test.ts
  • apps/extension/tests/e2e/firefox-selenium-e2e.ts

Previous review (commit 6f5f0bc)

Status: 1 Issue Found | Recommendation: Address before merge

Overview

Severity Count
CRITICAL 0
WARNING 1
SUGGESTION 0

Fix these issues in Kilo Cloud

Issue Details (click to expand)

WARNING

File Line Issue
apps/extension/entrypoints/sidepanel/agent-conversation-storage.ts 223 Cached query snapshots can overwrite newer conversations on remount
Files Reviewed (10 files)
  • apps/extension/entrypoints/sidepanel/agent-conversation-storage.ts - 1 issue
  • apps/extension/entrypoints/sidepanel/auth-shell.tsx - 0 issues
  • apps/extension/entrypoints/sidepanel/conversation-history-button.tsx - 0 issues
  • apps/extension/entrypoints/sidepanel/style.css - 0 issues
  • apps/extension/tests/e2e/conversation-tabs.test.ts - 0 issues
  • apps/extension/tests/e2e/firefox-selenium-e2e.ts - 0 issues
  • apps/extension/tests/e2e/header-overlays.test.ts - 0 issues
  • apps/extension/tests/e2e/model-loading.test.ts - 0 issues
  • apps/extension/tests/e2e/organization-picker.test.ts - 0 issues
  • apps/extension/tests/e2e/sidebar.test.ts - 0 issues

Previous review (commit eaebdd5)

Status: No Issues Found | Recommendation: Merge

Files Reviewed (9 files)
  • apps/extension/entrypoints/sidepanel/agent-chat-panel.tsx
  • apps/extension/entrypoints/sidepanel/agent-conversation-storage.ts
  • apps/extension/entrypoints/sidepanel/auth-shell.tsx
  • apps/extension/entrypoints/sidepanel/auth-views.tsx
  • apps/extension/entrypoints/sidepanel/conversation-history-button.tsx
  • apps/extension/src/shared/agent-conversation-tabs.test.ts
  • apps/extension/src/shared/agent-conversation-tabs.ts
  • apps/extension/tests/e2e/conversation-tabs.test.ts
  • apps/extension/tests/e2e/firefox-selenium-e2e.ts

Previous review (commit 31f5646)

Status: No Issues Found | Recommendation: Merge

Files Reviewed (2 files)
  • apps/extension/tests/e2e/conversation-tabs.test.ts
  • apps/extension/tests/e2e/firefox-selenium-e2e.ts

Previous review (commit 08a436f)

Status: No Issues Found | Recommendation: Merge

Files Reviewed (2 files)
  • apps/extension/tests/e2e/conversation-tabs.test.ts
  • apps/extension/tests/e2e/firefox-selenium-e2e.ts

Previous review (commit 31d1edb)

Status: 2 Issues Found | Recommendation: Address before merge

Executive Summary

The new Chrome and Firefox reload scenarios both reintroduce the same async-persistence race, so they can pass or fail nondeterministically without proving conversation tabs survive a side-panel refresh.

Fix these issues in Kilo Cloud

Overview

Severity Count
CRITICAL 0
WARNING 2
SUGGESTION 0
Issue Details (click to expand)

WARNING

File Line Issue
apps/extension/tests/e2e/conversation-tabs.test.ts 97 Reload races asynchronous conversation persistence
apps/extension/tests/e2e/firefox-selenium-e2e.ts 992 Reload races asynchronous conversation persistence
Files Reviewed (11 files)
  • apps/extension/entrypoints/sidepanel/agent-chat-panel.tsx - 0 issues
  • apps/extension/entrypoints/sidepanel/agent-conversation-storage.ts - 0 issues
  • apps/extension/entrypoints/sidepanel/auth-shell.tsx - 0 issues
  • apps/extension/entrypoints/sidepanel/auth-views.tsx - 0 issues
  • apps/extension/src/shared/agent-conversation-tabs.test.ts - 0 issues
  • apps/extension/src/shared/agent-conversation-tabs.ts - 0 issues
  • apps/extension/tests/e2e/conversation-tabs.test.ts - 1 issue
  • apps/extension/tests/e2e/extension-context-fixture.ts - 0 issues
  • apps/extension/tests/e2e/firefox-selenium-e2e.ts - 1 issue
  • apps/extension/tests/e2e/run-abort.test.ts - 0 issues
  • apps/extension/tests/e2e/sidebar.test.ts - 0 issues

Previous review (commit edd91e2)

Status: 3 Issues Found | Recommendation: Address before merge

Executive Summary

The React Query auth refactor can strand approved sign-ins in the pending view, and the related polling/test changes still leave stale extension state insufficiently guarded.

Fix these issues in Kilo Cloud

Overview

Severity Count
CRITICAL 0
WARNING 3
SUGGESTION 0
Issue Details (click to expand)

WARNING

File Line Issue
apps/extension/entrypoints/sidepanel/app.tsx 140 Approved sign-ins can get stuck in the pending view
apps/extension/entrypoints/sidepanel/use-tab-debugger.ts 68 Polling failures now leave a stale target-tab selection active
apps/extension/tests/e2e/model-loading.test.ts 202 The stale-model test no longer waits for the delayed response to settle
Files Reviewed (16 files)
  • apps/extension/entrypoints/sidepanel/agent-chat-panel.tsx - 0 issues
  • apps/extension/entrypoints/sidepanel/agent-llm-turn-runner.ts - 0 issues
  • apps/extension/entrypoints/sidepanel/agent-safe-llm-turn-runner.ts - 0 issues
  • apps/extension/entrypoints/sidepanel/app.tsx - 1 issue
  • apps/extension/entrypoints/sidepanel/main.tsx - 0 issues
  • apps/extension/entrypoints/sidepanel/organization-credit-account.tsx - 0 issues
  • apps/extension/entrypoints/sidepanel/use-gateway-models.ts - 0 issues
  • apps/extension/entrypoints/sidepanel/use-tab-debugger.ts - 1 issue
  • apps/extension/package.json - 0 issues
  • apps/extension/src/shared/agent-llm-turn-runner-core.test.ts - 0 issues
  • apps/extension/src/shared/agent-tool-round-limit.ts - 0 issues
  • apps/extension/src/shared/side-panel-query-options.test.ts - 0 issues
  • apps/extension/src/shared/side-panel-query-options.ts - 0 issues
  • apps/extension/tests/e2e/model-loading.test.ts - 1 issue
  • pnpm-lock.yaml - 0 issues
  • pnpm-workspace.yaml - 0 issues

Previous review (commit 4564e5c)

Status: 3 Issues Found | Recommendation: Address before merge

Executive Summary

The React Query auth refactor can strand approved sign-ins in the pending view, and the related polling/test changes still leave stale extension state insufficiently guarded.

Fix these issues in Kilo Cloud

Overview

Severity Count
CRITICAL 0
WARNING 3
SUGGESTION 0
Issue Details (click to expand)

WARNING

File Line Issue
apps/extension/entrypoints/sidepanel/app.tsx 140 Approved sign-ins can get stuck in the pending view
apps/extension/entrypoints/sidepanel/use-tab-debugger.ts 68 Polling failures now leave a stale target-tab selection active
apps/extension/tests/e2e/model-loading.test.ts 202 The stale-model test no longer waits for the delayed response to settle
Files Reviewed (16 files)
  • apps/extension/entrypoints/sidepanel/agent-chat-panel.tsx - 0 issues
  • apps/extension/entrypoints/sidepanel/agent-llm-turn-runner.ts - 0 issues
  • apps/extension/entrypoints/sidepanel/agent-safe-llm-turn-runner.ts - 0 issues
  • apps/extension/entrypoints/sidepanel/app.tsx - 1 issue
  • apps/extension/entrypoints/sidepanel/main.tsx - 0 issues
  • apps/extension/entrypoints/sidepanel/organization-credit-account.tsx - 0 issues
  • apps/extension/entrypoints/sidepanel/use-gateway-models.ts - 0 issues
  • apps/extension/entrypoints/sidepanel/use-tab-debugger.ts - 1 issue
  • apps/extension/package.json - 0 issues
  • apps/extension/src/shared/agent-llm-turn-runner-core.test.ts - 0 issues
  • apps/extension/src/shared/agent-tool-round-limit.ts - 0 issues
  • apps/extension/src/shared/side-panel-query-options.test.ts - 0 issues
  • apps/extension/src/shared/side-panel-query-options.ts - 0 issues
  • apps/extension/tests/e2e/model-loading.test.ts - 1 issue
  • pnpm-lock.yaml - 0 issues
  • pnpm-workspace.yaml - 0 issues

Previous review (commit 64b3f95)

Status: 3 Issues Found | Recommendation: Address before merge

Executive Summary

The React Query auth refactor can strand approved sign-ins in the pending view, and the related polling/test changes still leave stale extension state insufficiently guarded.

Fix these issues in Kilo Cloud

Overview

Severity Count
CRITICAL 0
WARNING 3
SUGGESTION 0
Issue Details (click to expand)

WARNING

File Line Issue
apps/extension/entrypoints/sidepanel/app.tsx 140 Approved sign-ins can get stuck in the pending view
apps/extension/entrypoints/sidepanel/use-tab-debugger.ts 68 Polling failures now leave a stale target-tab selection active
apps/extension/tests/e2e/model-loading.test.ts 202 The stale-model test no longer waits for the delayed response to settle
Files Reviewed (16 files)
  • apps/extension/entrypoints/sidepanel/agent-chat-panel.tsx - 0 issues
  • apps/extension/entrypoints/sidepanel/agent-llm-turn-runner.ts - 0 issues
  • apps/extension/entrypoints/sidepanel/agent-safe-llm-turn-runner.ts - 0 issues
  • apps/extension/entrypoints/sidepanel/app.tsx - 1 issue
  • apps/extension/entrypoints/sidepanel/main.tsx - 0 issues
  • apps/extension/entrypoints/sidepanel/organization-credit-account.tsx - 0 issues
  • apps/extension/entrypoints/sidepanel/use-gateway-models.ts - 0 issues
  • apps/extension/entrypoints/sidepanel/use-tab-debugger.ts - 1 issue
  • apps/extension/package.json - 0 issues
  • apps/extension/src/shared/agent-llm-turn-runner-core.test.ts - 0 issues
  • apps/extension/src/shared/agent-tool-round-limit.ts - 0 issues
  • apps/extension/src/shared/side-panel-query-options.test.ts - 0 issues
  • apps/extension/src/shared/side-panel-query-options.ts - 0 issues
  • apps/extension/tests/e2e/model-loading.test.ts - 1 issue
  • pnpm-lock.yaml - 0 issues
  • pnpm-workspace.yaml - 0 issues

Additional previous summary content was truncated to keep this comment within platform limits.


Reviewed by gpt-5.4-20260305 · Input: 96.6K · Output: 10.9K · Cached: 743.4K

Review guidance: REVIEW.md from base branch main

Comment thread apps/extension/entrypoints/sidepanel/conversation-list.tsx Outdated
Comment thread apps/extension/tests/e2e/kilo-api-fixture.ts
Comment thread apps/extension/entrypoints/sidepanel/agent-chat-panel.tsx
Comment thread apps/extension/tests/e2e/local-backend-live.test.ts
Comment thread apps/extension/tests/e2e/local-backend-live.test.ts
Comment thread apps/extension/tests/e2e/local-backend-live.test.ts
Comment thread apps/extension/entrypoints/sidepanel/conversation-list.tsx Outdated
@iscekic iscekic requested a review from markijbema June 24, 2026 18:31
Comment thread apps/extension/tests/e2e/local-backend-live.test.ts Outdated
if (attached) {
try {
await debuggerApi.detach(target);
} catch {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WARNING: Catch-all detach suppression can hide leaked debugger attachments

The benign cases here are the tab closing or already being detached, but this unconditional catch also swallows genuine chrome.debugger.detach() failures. When detach really does fail, the tab can remain attached and the next dangerous-mode run on that tab will start failing to reattach while this call still reports success. Restrict the suppression to the known closed/already-detached error shapes so real cleanup failures still surface.


Reply with @kilocode-bot fix it to have Kilo Code address this issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant