Repository navigation
feat: agent sign-in, file memory, entrances, survive-close, import - #128
Merged
Merged
Conversation
…words The onboarding import handler gains a browserosOnboardingCancelImport message that stops a running import through ExternalProcessImporterHost:: Cancel() and reports a new "cancelled" status (items already finished stay in the profile). Firefox and Safari are detected by the importer list already; this makes the step honest about them: saved passwords are dropped from the offered items for Firefox, Safari and Chromium-family sources, and each source now carries "kind" and "passwordsViaCsv" so the page can point at the export-a-CSV route.
…arm (CAP-1, CAP-2) Every built-in-engine completion request now carries redrob_context.page_url and page_title: the agent's own tab once it has opened one, else the http(s) tab the user was on when the task started. Not sent to a user's own provider. Capability map rows for skills, auto-arming and the skill writer point at the engine.
The import step now shows one progress bar per item type under the overall bar (done / copying / waiting, from the importer's item start and end callbacks) and a Cancel button that sends browserosOnboardingCancelImport; a cancelled import returns to the picker with a note that anything already copied stays. Sources that do not hand over saved passwords (Firefox, Safari, Chromium-family) get a row explaining the CSV export route, with a button opening the password manager. redrobPrivate's import path drops the Firefox password bit the same way. Strings in l10n/extension/70-onboarding.tsv; CAPABILITY-MAP rows for ONB-4 and ONB-5 updated.
…ation routine (CAP-19)
Adds credential_tools: the agent signs in through the browser's own agent-login service (match on the tab's committed origin, fill through the password manager driver), so the password never reaches the tool result or the engine. The model sees a username and an outcome only. Policy (always / while unlocked / never, default while unlocked), unlock window, per-site list and a 500-record audit trail live in redrob prefs. A locked store or a one-time code / CAPTCHA parks the task in kBlockedOnPolicy until the user acts; ask_user_to_verify hands verification prompts back to the person.
…account plumbing (CAP-4, SUB-1..4) TaskStore holds a process and profile keep-alive while a task is unfinished (pref redrob.tasks.keep_running_after_close, default on), opens a minimized window for agent tabs when none is left, and raises OS notifications for a finished task with no user window and for a guard-mode confirmation, with Allow/Decline buttons. Guard-mode clicks that send, post, pay or delete stop the task in kBlockedOnPolicy until answered. Ultrabrowse gets a 96-round budget, no idle stop, and the engine's highest reasoning effort. SidecarClient keeps the engine's data in the profile so sign-ins persist, and gains a generic engine request used for the provider list, OAuth sign-in and API keys stored by the engine.
Typing "> " or pressing Tab on the agent row puts the address bar in agent mode: the row becomes the default match, a "Redrob" chip takes the page icon slot, and Enter opens the agent chat with the current tab attached. The row now opens the same #/home/chat route the new tab uses (via redrob::OpenAgentChat) instead of a TaskStore task no surface lists, and the delegating action client forwards the hook (it silently did nothing).
Nine functions at the end of the interface: read the settings tree (policy, unlock window, per-site list, audit trail, waiting tasks), set the policy and the window, edit the per-site list, unlock (OS re-auth modal to the page), lock, resume a task after the user finished a verification, clear history. Histogram values 2067-2075 appended to the rule and the patch.
…providers and sign-in (CAP-4, SUB-1..4)
… in the extension (SUB-1..4, CAP-4)
A settings page for agent sign-in: the policy (always / while unlocked / never), the unlock window and lock state with Unlock now, tasks waiting for the user (unlock and continue, or I have finished), the per-site allow/block list, the AI sign-in history table, and a button to the password manager, where the store itself, import and export already live.
Adds docs/CREDENTIALS.md and moves the capability map row for a credential vault to partial with what exists. Also includes the two login-service interface headers credential_tools.cc returns null unique_ptrs of.
Ctrl/Cmd+Shift+Space opens a frameless always-on-top window (Views, chrome/browser/ui/views/redrob) hosting the agent extension's #/quick page (chrome://redrob/quick): one input and recent tasks. Enter calls redrobPrivate.startQuickTask, which opens the same chat route the new tab and the address bar use in the last active window; Esc closes. The shortcut is a preset pref (redrob.quick_window.shortcut) with a settings row in Customize; registered via ui::GlobalAcceleratorListener, or offered to the desktop portal where it owns shortcuts.
PruneStaleCommands drops a binding whose callback reports itself cancelled; a lambda holding a WeakPtr never does. Bind the method to the WeakPtr instead.
…ent-parity # Conflicts: # sources/chrome/browser/redrob/task_store.cc # sources/chrome/browser/redrob/task_store.h
…-parity # Conflicts: # agent/packages/i18n/src/messages.generated.ts # rewrite/extensions/browser/extension_function_histogram_value.h.yaml # sources/chrome/browser/extensions/api/redrob_private/redrob_private_api.cc # sources/chrome/browser/extensions/api/redrob_private/redrob_private_api.h # sources/chrome/browser/redrob/task_store.cc # sources/chrome/browser/redrob/task_store.h # sources/chrome/common/extensions/api/redrob_private.idl # vendor/browseros/chromium_patches/extensions/browser/extension_function_histogram_value.h
…nt-parity # Conflicts: # agent/apps/app/components/sidebar/SettingsSidebar.tsx # agent/apps/app/entrypoints/app/App.tsx # docs/CAPABILITY-MAP.md # rewrite/extensions/browser/extension_function_histogram_value.h.yaml # sources/chrome/browser/extensions/api/redrob_private/redrob_private_api.cc # sources/chrome/browser/extensions/api/redrob_private/redrob_private_api.h # sources/chrome/browser/redrob/BUILD.gn # sources/chrome/browser/redrob/redrob_prefs.cc # sources/chrome/browser/redrob/redrob_prefs.h # sources/chrome/browser/redrob/resources/redrob_localized_strings.h # sources/chrome/browser/redrob/resources/redrob_strings.grd # sources/chrome/browser/redrob/resources/translations/redrob_strings_ko.xtb # sources/chrome/browser/redrob/task_store.cc # sources/chrome/browser/redrob/task_store.h # sources/chrome/common/extensions/api/redrob_private.idl # vendor/browseros/chromium_patches/extensions/browser/extension_function_histogram_value.h
…nt-parity # Conflicts: # agent/packages/i18n/src/messages.generated.ts # rewrite/extensions/browser/extension_function_histogram_value.h.yaml # sources/chrome/browser/extensions/api/redrob_private/redrob_private_api.cc # sources/chrome/browser/extensions/api/redrob_private/redrob_private_api.h # sources/chrome/browser/redrob/BUILD.gn # sources/chrome/browser/redrob/redrob_prefs.cc # sources/chrome/browser/redrob/redrob_prefs.h # sources/chrome/browser/redrob/resources/redrob_localized_strings.h # sources/chrome/browser/redrob/resources/redrob_strings.grd # sources/chrome/browser/redrob/resources/translations/redrob_strings_ko.xtb # sources/chrome/common/extensions/api/redrob_private.idl # sources/manifest # vendor/browseros/chromium_patches/extensions/browser/extension_function_histogram_value.h
…ault-release), which is data, not copy
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.
What's done
logintool fills from the profile's own password store through the browser's agent-login service. The model sees only the outcome and the username. Policy Always / While unlocked (default) / Never, per-site overrides, OS re-auth unlock window, audit trail, Settings > Passwords and the agent.>agent mode in the address bar with a chip; quick window on Ctrl/Cmd+Shift+Space with a setting.redrob_context.page_url/page_titlefor the engine (redrob-code v0.9.0).What's not done
loginis not on the app bridge yet (the bridge drives tabs over CDP and cannot reach the password manager).What to review
sources/chrome/browser/redrob/credential_tools.cc,task_store.cc(tool dispatch, memory runs, keep-alives).Intentions
Built once: official release build (
out/release,chrometarget) green; launched once on the main display with the CI flags, no FATAL / Check failed, agent server present.