Validate macOS e2e workflow - #6
Open
pattobrien wants to merge 22 commits into
Open
Conversation
Runs README Setup steps 2 & 3 one script at a time on a Namespace macOS runner (profile: mac), so a failure points at the exact script that broke. - Reproduces step 2 by placing the repo at ~/dev/pattobrien/dotfiles and letting ./install init the dotbot submodule (no submodule prefetch). - Runs base / homebrew / essentials / macos / mise / personal in order. - Skips 1password and xcode: both need a GUI / Apple ID + 2FA and would hang or fail headless (notes in the workflow on enabling them via VNC). - Bridges Homebrew onto PATH via `brew shellenv` (as zshrc does) since CI run: shells don't source the dotfiles' shell init. Triggers on PRs touching install scripts/configs/Brewfiles, plus manual workflow_dispatch.
A fresh/migrated Mac can already ship a real ~/.zshenv (and similar), which dotbot refuses to clobber, so the very first `install` run fails. Add scripts/backup_dotfiles.zsh to move such real files to <file>.bak before the link step. Drop the CI workaround so the run exercises this for real.
CI/tooling: - workflow: actions/checkout@v4 -> @v5 (silences Node 20 deprecation warning) - mise: remove unused npm:figma-use (shipped a broken figma-fast bin) - brew: mark third-party taps trusted: true across all Brewfiles (essentials/personal/work/runner/server) for Homebrew 6 tap-trust, fixing the 'formula is unreadable / requires the tap' warning Editor config: - codex: drop posthog plugin/marketplace/skills, add superwhisper, bump RevenueCat - claude: add superwhisper + understand-anything marketplaces, restructure voice config
Root causes (validated by local repro + research): - github.copilot/copilot-chat are now built into VS Code, so the marketplace entries try to downgrade and fail -> removed (obsolete). - Brewfiles listed extension PACKS and their MEMBERS; the pack installs the members, then brew re-installs them without --force, racing VS Code's extensions.json rewrite under CI load -> ENOTEMPTY/EntryNotFound. De-duplicate packs vs members across personal/runner/server (members still install via their packs; extension set unchanged). - Heavy VSIX downloads truncate on CI and get cached corrupt + never re-fetched (vscode#199675) -> CI step resets ~/.vscode/extensions + CachedExtensionVSIXs before ./install personal (emulates a fresh Mac).
- scripts/dequarantine.zsh: strip com.apple.quarantine from installed apps after each profile's brew bundle, so apps don't show the Gatekeeper 'downloaded from the internet' prompt on first launch. HOMEBREW_CASK_OPTS --no-quarantine was removed in Homebrew 5, so the old setup_homebrew.zsh approach was a no-op; replaced with this supported sudo xattr sweep, wired into essentials/personal/work/runner/server. - brew/*: ms-vsliveshare.vsliveshare-pack is dead on the marketplace (404); use the still-published base ms-vsliveshare.vsliveshare instead.
Standalone zsh CLI that drives agent-browser to check whether an existing Chrome profile is still signed in to one or more web apps. Loads a read-only snapshot of a real profile (--profile, default "Profile 2"), visits each URL headlessly, and classifies via a generic heuristic: - final URL is a login/auth route -> logged out - login CTA in the interactive snapshot -> logged out - bot/security interstitial (Cloudflare) -> inconclusive - blank / still-loading / nav failed -> inconclusive - otherwise -> logged in Detection reads the accessibility snapshot's interactive elements rather than body prose, so login verbs in ordinary copy don't cause false negatives. URLs run in parallel with per-op wall-clock caps so a slow/hanging site can't stall the run. Exit 0 all logged in, 1 some logged out, 2 only inconclusive.
Remove the E2E_CHROME_USER_DATA_DIR override so preventSessionRestore() can never delete session state from a real Chrome profile.
|
Bugbot is not enabled for your account, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
Owner
Author
|
test ! |
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
vitesttest importsValidation
vp check $(git diff --name-only) .github/workflows/validate-macos-e2e.yamlcd tests/e2e && vp test && vp test --tags-filter='kitty'ruby -e 'require "yaml"; YAML.load_file(".github/workflows/validate-macos-e2e.yaml"); puts "yaml-ok"'Note:
claude-plugins/meagain/*tests remain outside the E2E expectation discussed here..