v0.1.0 — first public release#1
Merged
Merged
Conversation
… detection; add Chrome-pivot spikes Three threads bundled because they touch overlapping files: Phase 0 refactor (mechanical, no behavior change): - New core/browser/browser-engine.ts defines BrowserEngine interface, HealerFn type, and createBrowserEngine(kind) factory. - New core/browser/action-utils.ts extracts pure helpers (normalizeCookiesForInjection, optimizeActions, substituteParams, normalizeSameSite, BOT_COOKIE_PATTERNS, isBotMitigationCookie). - PlaywrightEngine now implements BrowserEngine and delegates to the extracted helpers; HealerFn re-exported for back-compat. - executor.ts and mcp-api.ts construct the engine via the factory. - All 427 tests pass unchanged; vitest module mocking transparently intercepts playwright-engine through the factory indirection. Anti-bot-detection hardening for Playwright replay: - Drop bot-mitigation cookies (Akamai, Cloudflare, DataDome, PerimeterX, Imperva, Kasada, Shape/F5) before injection so sites reissue fresh tokens against the replay session's fingerprint. - Filter cross-domain cookies using new targetDomain option on BrowserEngineOptions. - Launch with --disable-http2 and --disable-blink-features= AutomationControlled to defeat HTTP/2 fingerprinting and the navigator.webdriver signal. - Drop the frozen Chrome/120 UA spoof; use Chromium's real UA so UA and TLS fingerprint align. Chrome-pivot research (scripts/spike*.mjs): - spike-electron-replay.mjs (Electron BrowserWindow + CDP) fails at United's login — Electron-Chromium fingerprint is flagged. - spike2-patchright-chrome.mjs (patchright + channel: 'chrome' + launchPersistentContext) logs in cleanly, gets valid Akamai + Auth cookies, survives programmatic navigation. - patchright added as devDep. Decision: pivot both record and replay to Patchright-driven real Chrome. Full plan committed separately. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Captures the phased rewrite plan produced after spike 2 confirmed Patchright + real Chrome beats United's bot detection. Phase 0 is complete; Phases 1–3 scoped with open UX/security decisions flagged. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
First public release. Drops browser-engine pivot spike artifacts (keeps the behavior-preserving interface refactor) and consolidates electron-builder config into package.json — the stray .yml would have shadowed notarization on first CI tag. Also: hand-written release notes body, .gitignore rules for local-only files, committed icon.iconset source, fixed stale README test counts. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
${{ github.ref_name }} resolves to "v0.1.0" but the NSIS artifact strips the v
prefix, so the hinted filename wouldn't match the actual asset. Users can see
the file in the assets list directly.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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
Prepares the v0.1.0 release — the first public release.
0.0.0-dev→0.1.0BROWSER_ENGINE_PIVOT.md, patchright dep). Keeps the behavior-preservingBrowserEngineinterface refactor from Phase 0 — 427 tests still pass,npm run buildclean.package.json— the strayelectron-builder.ymlwould have shadowed the richer config on first CI tag, shipping an un-notarized mac build. This is a real bug the first release would have hit.build.yml— auto-generated changelog flows underneath.resources/icon.iconset/source; added.claude/,tsconfig.node.tsbuildinfo,Dockerfileto.gitignore; fixed stale README test counts.Test plan
npm test— 427/427 passnpm run build— cleannpm run packageproduces a signed, notarized.dmg(run before tagging)v0.1.0, confirm CI builds on mac/win/linux, confirm release page populates on the landing siteKnown gaps for a polish launch
🤖 Generated with Claude Code