Skip to content

Add ChatGPT Atlas browser support#71

Open
rowesk wants to merge 2 commits into
renjfk:mainfrom
rowesk:feat/atlas-browser-support
Open

Add ChatGPT Atlas browser support#71
rowesk wants to merge 2 commits into
renjfk:mainfrom
rowesk:feat/atlas-browser-support

Conversation

@rowesk
Copy link
Copy Markdown

@rowesk rowesk commented May 6, 2026

Summary

  • Adds ChatGPT Atlas as a supported Chromium-based browser for website tracking.
  • Adds Atlas to browser detection, Automation entitlements, permissions/browser lists, README, and the bug report browser dropdown.
  • Adds a Swift Testing regression test proving Atlas is registered by WebTrackingService using bundle id com.openai.atlas.

Why

ChatGPT Atlas is Chromium-based and supports the same AppleScript URL lookup shape as Chrome (URL of active tab of window 1), but SimplyTrack did not include Atlas in its supported-browser registry or Automation entitlement list. That meant Atlas activity was recorded only as app usage, not website/domain usage.

Testing

  • Verified local Atlas AppleScript URL lookup works:
    • osascript -e 'id of application "ChatGPT Atlas"'com.openai.atlas.web
    • osascript -e 'tell application "ChatGPT Atlas" to if (count of windows) > 0 then return URL of active tab of window 1' returned the active tab URL.
  • Verified RED first: full test run failed on BrowserSupportTests/chatGPTAtlasIsRecognizedAsSupportedBrowser() before implementation.
  • xcodebuild -project SimplyTrack.xcodeproj -scheme SimplyTrack -configuration Debug -skip-testing:SimplyTrackUITests CODE_SIGNING_ALLOWED=NO test** TEST SUCCEEDED **
  • xcodebuild -project SimplyTrack.xcodeproj -scheme SimplyTrack -configuration Debug CODE_SIGNING_ALLOWED=NO build → succeeded.
  • git diff --check → clean.

Notes

  • Atlas's app bundle id is com.openai.atlas; AppleScript's id of application "ChatGPT Atlas" reports com.openai.atlas.web, so this PR uses the NSWorkspace/frontmost app bundle id for SimplyTrack registration and entitlement targeting.

@renjfk
Copy link
Copy Markdown
Owner

renjfk commented May 7, 2026

/prerelease

1 similar comment
@renjfk
Copy link
Copy Markdown
Owner

renjfk commented May 7, 2026

/prerelease

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 7, 2026

Prerelease v0.9-pr71.2e63854 is ready.

@renjfk
Copy link
Copy Markdown
Owner

renjfk commented May 7, 2026

Hi @rowesk, thanks for bringing this up! Could you test the prerelease to see if this works correctly and to make sure you got the correct bundle id?

@rowesk
Copy link
Copy Markdown
Author

rowesk commented May 7, 2026

Hi @renjfk, I tested the prerelease and found the bundle ID issue.

What went wrong:

  • The visible app wrapper is com.openai.atlas, but AppleScript resolves ChatGPT Atlas to the scriptable Chromium app bundle com.openai.atlas.web.
  • The prerelease only had com.openai.atlas in the Apple Events entitlement, so the sandboxed app could not automate the actual scriptable Atlas process.
  • macOS surfaced that as the misleading AppleScript -600 Application isn't running error even though Atlas was open.

What I changed:

  • Added com.openai.atlas.web to the Apple Events entitlement.
  • Updated AtlasBrowser to target tell application id "com.openai.atlas.web" instead of relying on the display name.
  • Mapped both com.openai.atlas and com.openai.atlas.web to the same Atlas browser integration, so it should work whether macOS reports the wrapper or web process as frontmost.
  • Added regression coverage for the .web bundle ID.

Verified locally:

  • xcrun swift-format lint --strict --recursive SimplyTrack/ SimplyTrackMCP/ SimplyTrackTests/ SimplyTrackUITests/
  • xcodebuild -project SimplyTrack.xcodeproj -scheme SimplyTrack -configuration Debug CODE_SIGNING_ALLOWED=NO build
  • xcodebuild -project SimplyTrack.xcodeproj -scheme SimplyTrack -configuration Debug -skip-testing:SimplyTrackUITests CODE_SIGNING_ALLOWED=NO test
  • Direct AppleScript calls to com.openai.atlas.web returned the active URL and incognito status on my install.

Commit pushed: 42ba588. This will need a new signed prerelease because the entitlement change is baked into the app at signing time.

<string>com.brave.Browser</string>
<string>com.vivaldi.Vivaldi</string>
<string>org.mozilla.firefox</string>
<string>com.openai.atlas</string>
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Do we need the wrapper app id in AppleEvents entitlements? AtlasBrowser now targets tell application id "com.openai.atlas.web", so com.openai.atlas.web seems to be the required sandbox exception. com.openai.atlas still makes sense for frontmost-app detection, but I do not see an AppleEvent call targeting it.

}

for bundleId in AtlasBrowser.supportedBundleIds {
browsers[bundleId] = atlasBrowser
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Do we have evidence that NSWorkspace.frontmostApplication.bundleIdentifier can return com.openai.atlas.web? If the frontmost app is always the visible wrapper com.openai.atlas, then we should keep only com.openai.atlas for browser detection and use com.openai.atlas.web only as the AppleScript target/entitlement.

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.

2 participants