fix(mistral): expand cookie import to Safari, Chrome, and Firefox - #1985
Conversation
|
Codex review: needs real behavior proof before merge. Reviewed July 17, 2026, 12:36 AM ET / 04:36 UTC. Summary Reproducibility: yes. from source: a Developer Edition-only setup with Review metrics: 2 noteworthy metrics.
Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Proof guidance:
Risk before merge
Maintainer options:
Next step before merge
Security Review findings
Review detailsBest possible solution: Preserve the bounded Chrome-first fallback, update Gecko profile detection and its regression test to cover a real Do we have a high-confidence way to reproduce the issue? Yes, from source: a Developer Edition-only setup with Is this the best way to solve the issue? No, not yet: adding the Developer Edition bundle name without accepting its normal profile-directory convention leaves the documented behavior incomplete. The narrow maintainable fix is to update the existing Gecko cookie-store predicate and test that exact profile shape. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against d9cae08c7e69. Label changesLabel changes:
Label justifications:
Evidence reviewedWhat I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
Review history (4 earlier review cycles)
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 3a37002ec3
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
Avoids regression where a stale Safari session could block a valid Chrome or Firefox session (Codex review feedback on steipete#1985). Chrome first preserves the original Chrome-only behavior; Firefox still detected; Safari follows for Full Disk Access users.
|
made chrome first |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 9e2da946b9
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: efe2e40e4f
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| /// import to avoid scanning the full default order. | ||
| public static var mistralCookieImportOrder: BrowserCookieImportOrder? { | ||
| #if os(macOS) | ||
| [.chrome, .firefox, .safari] |
There was a problem hiding this comment.
Include Firefox Developer Edition in auto import
When the Mistral session is only in Firefox Developer Edition, this order never probes it: it contains only .firefox, and BrowserDetection.isCookieSourceAvailable filters non-Safari entries through hasInstalledApplication before reading profile data. On a machine with Firefox Developer Edition.app but no regular Firefox.app, .firefox is filtered out, so Automatic mode falls through to Safari/noCookies despite the new docs claiming Developer Edition support; include that browser/app in the automatic path or stop advertising it.
Useful? React with 👍 / 👎.
Avoids regression where a stale Safari session could block a valid Chrome or Firefox session (Codex review feedback on steipete#1985). Chrome first preserves the original Chrome-only behavior; Firefox still detected; Safari follows for Full Disk Access users.
efe2e40 to
b29d86f
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b29d86f4ae
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| browser.appBundleName | ||
| private func applicationNames(for browser: Browser) -> [String] { | ||
| if browser == .firefox { | ||
| return [browser.appBundleName, "Firefox Developer Edition"] |
There was a problem hiding this comment.
Support Developer Edition profile names
Fresh evidence beyond the earlier Firefox Developer Edition app-detection comment is that this adds the Developer Edition bundle name, but the .firefox candidate still has to pass hasValidCookieStore, which only accepts Gecko profile directories containing .default. On a Developer-Edition-only setup the normal profile name is *.dev-edition-default/dev-edition-default, so automatic Mistral import is still filtered out before SweetCookieKit can read the cookies when the user is signed in only there.
Useful? React with 👍 / 👎.
|
Maintainer proof for exact head
No live browser, provider, account, or Keychain probe was used. |
Mistral's importSession hardcoded preferredBrowsers to [.chrome], bypassing the descriptor's browserCookieOrder. Users signed in via Firefox or Firefox Developer Edition saw "No Mistral session cookies found in browsers." Add a mistralCookieImportOrder preset ([.safari, .chrome, .firefox]) matching the MiMo steipete#1304 precedent, wire it through the descriptor, and change importSession/hasSession to use the descriptor order when no explicit preferredBrowsers are passed (matching the Manus/Perplexity pattern). Also update docs/providers.md and add a focused test.
Avoids regression where a stale Safari session could block a valid Chrome or Firefox session (Codex review feedback on steipete#1985). Chrome first preserves the original Chrome-only behavior; Firefox still detected; Safari follows for Full Disk Access users.
b29d86f to
05090d0
Compare
|
Maintainer proof for exact current-main head
No live browser, provider, account, or Keychain probe was used. |
Summary
Proof
make check: format, lint, locale, package, CI-path, repository-size, shell, and documentation gates clean.Thanks @djsavvy for the original Firefox import contribution.