Import portable browser profile data - #229
Conversation
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
f332a7a to
3bb2059
Compare
Import bookmarks, recent history, local storage, and selected Web Store extensions alongside cookies. Keep values local until final approval, enforce the API payload bounds in the CLI, and apply extension entitlements before upload.
3bb2059 to
e3e3948
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit e3e3948. Configure here.
| byLabel[label] = site.Origin | ||
| if selectedBytes+site.Bytes <= localbrowser.MaxPortableStorageSize { | ||
| defaults = append(defaults, label) | ||
| selectedBytes += site.Bytes |
There was a problem hiding this comment.
Storage size gate uses raw bytes
Medium Severity
The 64 MiB local storage review uses raw LevelDB key/value (or META) sizes, while export enforces the same cap on JSONL-encoded records. Selections that pass the picker, including the automatic “all sites” path, can still fail later with a 64 MiB limit error, blocking the rest of the import.
Additional Locations (2)
Reviewed by Cursor Bugbot for commit e3e3948. Configure here.


What
Extend
kernel profiles import-localbeyond cookies to import approved portable browser data from Chrome and Helium on macOS:--dayswindow, selected by defaultPasswords and supported TOTP seeds remain a separate Managed Auth step. IndexedDB, cache, arbitrary preferences, and extension state are intentionally excluded.
Why
A useful imported profile needs more than cookies. This keeps the moment-to-magic flow simple while preserving a portable, bounded contract and making sensitive categories visible before upload. History uses actual visits in the chosen time window instead of lifetime URL counters.
How
cookies_importedJSON field while adding per-category resultsDepends on kernel/kernel PR #3244 for server-side extension persistence and entitlement enforcement.
Verification
go test ./internal/browserimport ./cmd -count=1go vet ./internal/browserimport ./cmdgo mod tidy -diffgit diff --checkmake buildNote
High Risk
Reads and uploads additional sensitive browser data (history, localStorage) from live Chromium stores, and tightens the upload size contract. Bugs here can leak extra personal data or fail imports.
Overview
kernel profiles import-localnow imports bookmarks, history (from--days, default on), and localStorage alongside cookies, with interactive category/site selection and a pre-upload confirmation.The portable bundle is rebuilt as
BuildProfileBundle(replacing cookie-only packing). Compressed upload limit is 64 MiB. Oversized imports drop largest storage origins first, then history, and ask the user to continue; cookies/bookmarks stay required.Chromium readers snapshot History SQLite and Local Storage LevelDB, export only http(s) data, and enforce record/size caps. JSON output adds
browser_data_imported. Connectorkernel://launches inheritKERNEL_*env fromlaunchctland default history on.Reviewed by Cursor Bugbot for commit e3e3948. Bugbot is set up for automated code reviews on this repo. Configure here.