Repository navigation
Conversation
This was referenced Aug 29, 2026
Contributor
Code Review SummaryStatus: No Issues Found | Recommendation: Merge Files Reviewed (2 files)
Previous Review Summaries (5 snapshots, latest commit c8cb3a6)Current summary above is authoritative. Previous snapshots are kept for context only. Previous review (commit c8cb3a6)Status: No Issues Found | Recommendation: Merge Files Reviewed (3 files)
Previous review (commit da53e73)Status: No Issues Found | Recommendation: Merge Files Reviewed (9 files)
Previous review (commit 05e8ce6)Status: No Issues Found | Recommendation: Merge Files Reviewed (9 files)
Previous review (commit 087a0b7)Status: No Issues Found | Recommendation: Merge Files Reviewed (9 files)
Previous review (commit 378a5c2)Status: No Issues Found | Recommendation: Merge Files Reviewed (9 files)
Reviewed by grok-4.6 · Input: 44.3K · Output: 7.1K · Cached: 318.3K Review guidance: REVIEW.md from base branch |
Collaborator
Author
|
Closing: the owner stopped this workflow section. The branch is retained. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
ExtensionAgentsProvidershares one connection across modes withbrowserProvider: true, andExtensionAgentsContextValue.userWebConnectionexposes its inferred type. Callers must useExtensionAgentsStorefor Agents; Browser chat, command-line interface (CLI) tasks, settings, and approvals keep the default Jotai store. Account or organization changes replace scoped resources without remountingBrowserTaskProvider, preserving its cleanup barrier across replacements.Files
apps/extension/entrypoints/sidepanel/agents-provider.tsx— Source, modified, +35/−15 lines. Enables browser capability negotiation and mounts the delegated provider on the shared transport. Replaces the connection, manager, client, and private store when the token, email, or organization changes. Retains and releases each connection with its context, while the delegated provider remains mounted. Exports the separate Agents store boundary.apps/extension/entrypoints/sidepanel/auth-views.tsx— Source, modified, +28/−30 lines. Mounts the provider, task surface, supervision, and both save cards across Browser and Agents modes. Keeps Browser chat, Settings, approvals, and workflow request consumption on the default store. Keys only the Agents descendants by account and organization.BrowserTaskControlsbinds consent to each invocation and displays approved settings plus authoritativeownerLabelandqueuePosition; missing legacy metadata remains unknown.BrowserTaskSettingsexposes off-by-defaultBrowserProviderSettings.enabledand model/mode/thinking choices;BrowserTaskSurfaceserializesBrowserTaskSettingsContextwrites across dialog remounts, preventing stale re-enablement. Recovery usesBrowserRecoveryReadinessonly for the unchanged provider snapshot; status retrieval and initialization reload never approve execution or resubmit work.Files
apps/extension/entrypoints/sidepanel/browser-task-controls.tsx— Source, added, +723/−0 lines. Adds profile, phase, owner, goal, bound-tab, deadline, queue, result, and empty-evidence displays. Refreshes tab choices every two seconds; absent candidates disable approval without discarding the goal. Keeps Stop outside scrolling details and reports cancellation without promising rollback. Separates status refresh, reconnection, readiness preparation, and recovery; provider state changes invalidate readiness. Shows retryable, denied, and interrupted status errors with recovery guidance. Relays closed-tab, drained-lock, unsupported Web Locks, and all-tabs recovery instructions without unsafe clearing. Offers initialization reload only when local and delegated work no longer blocks it, preserving saved data without enabling tasks. Requires a model before enablement, resets thinking effort on model changes, and confirms disablement. Tracks pending settings writes by runtime identity across overlay closure. Supplies live announcements, wrapped content, internal scrolling, and modal focus containment and restoration.BrowserTaskSupervisionContextsuppliesBrowserTaskSupervisionSlotinside active dialogs, so Stop remains within each dialog's keyboard boundary.BrowserTaskSurfaceselects the top modal, cycles focus, and restores prior focus or a stable control when dialogs close. Settings expose delegated options without hiding supervision; long content scrolls and wraps rather than moving Stop out of reach.Files
apps/extension/entrypoints/sidepanel/auth-shell.tsx— Source, modified, +8/−1 lines. Adds task settings and supervision inside the Settings dialog. Extends the scoped lint exemption for the larger composition.apps/extension/entrypoints/sidepanel/conversation-history-button.tsx— Source, modified, +4/−0 lines. Pins task supervision below the history header.apps/extension/entrypoints/sidepanel/workflow-run-prompt.tsx— Source, modified, +7/−1 lines. Pins task supervision inside the workflow prompt and wraps long workflow names.ModelPickershows “Select model” when the catalog has entries but no model is selected, rather than implying a pending load. Without a selection, an empty catalog still shows “Loading models...”. Stored model labels remain intact, and the picker keeps task supervision inside its overlay.Files
apps/extension/entrypoints/sidepanel/model-picker.tsx— Source, modified, +6/−1 lines. Distinguishes an unselected model from an empty catalog and pins supervision above the search field.Recorded automation: the handoff reports 47 passing focused controls/composition tests and passing scoped checks.
Tests: 2 files added —
apps/extension/entrypoints/sidepanel/browser-task-controls.test.tsx(+919/−0 lines),apps/extension/entrypoints/sidepanel/browser-task-provider-tree.test.tsx(+1,234/−0 lines); controls and provider composition coverage.Generated: 0 files changed.
Verification
No manual verification results are available for this level. Browser-only live and visual verification remains pending in the next stack level. No end-to-end report is attached.
Visual Changes
Visual Changes: N/A
Reviewer Notes
Human steps
Scope and dependencies
browser-task-0787-s11...browser-task-0787-s12; nine changed files, 2,964 added lines, and 48 removed lines./Users/igor/Projects/.worktrees/browser-task-0787; branchbrowser-task-0787-s12./Users/igor/Projects/.worktrees/browser-task-0787-kilocode; branchbrowser-task-0787-s6. This level includes no CLI changes.Notes
Browser-only live and visual verification remains pending in the next stack level.
Stacked PRs — merge bottom to top. Each level shows only its own diff.
Runtime verification (E2E, user advocacy, simplify) runs on the tip PR over every level.
Every level keeps its own checks, its own bot review, and its own threads; each one is answered on its own PR.
Each level is its own deliverable: it builds and passes its own checks alone.
A finding on a level is repaired on that level, then carried upward with stack.sh forward.
browser-task-0787— feat(browser-task): define negotiated job contracts #5638browser-task-0787-s2— feat(session-ingest): persist owned browser jobs #5644browser-task-0787-s3— feat(session-ingest): route fenced browser providers #5648browser-task-0787-s4— feat(cloud-agent-sdk): support browser provider jobs #5653browser-task-0787-s7— fix(extension): expose honest browser runner outcomes #5681browser-task-0787-s8— feat(extension): coordinate browser execution across panels #5694browser-task-0787-s9— fix(extension): invalidate ended browser task approvals #5698browser-task-0787-s10— feat(extension): persist browser jobs and profile consent #5702browser-task-0787-s11— feat(extension): execute delegated browser jobs in the panel #5716browser-task-0787-s12— feat(extension): expose CLI task consent and supervision #5734 ← this PRbrowser-task-0787-s13— test(browser-task): verify delegated jobs and recovery #5742 (tip)