Skip to content

v0.1.0 — first public release#1

Merged
mreider merged 4 commits into
mainfrom
release/v0.1.0
Apr 19, 2026
Merged

v0.1.0 — first public release#1
mreider merged 4 commits into
mainfrom
release/v0.1.0

Conversation

@mreider
Copy link
Copy Markdown
Member

@mreider mreider commented Apr 19, 2026

Summary

Prepares the v0.1.0 release — the first public release.

  • Bump version 0.0.0-dev0.1.0
  • Drop browser-engine pivot artifacts (spike scripts, BROWSER_ENGINE_PIVOT.md, patchright dep). Keeps the behavior-preserving BrowserEngine interface refactor from Phase 0 — 427 tests still pass, npm run build clean.
  • Consolidate electron-builder config into package.json — the stray electron-builder.yml would 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.
  • Hand-written release notes body in build.yml — auto-generated changelog flows underneath.
  • Housekeeping: committed resources/icon.iconset/ source; added .claude/, tsconfig.node.tsbuildinfo, Dockerfile to .gitignore; fixed stale README test counts.

Test plan

  • npm test — 427/427 pass
  • npm run build — clean
  • Local npm run package produces a signed, notarized .dmg (run before tagging)
  • After merge: tag v0.1.0, confirm CI builds on mac/win/linux, confirm release page populates on the landing site

Known gaps for a polish launch

  • No demo GIF / screenshot on the landing page hero — biggest remaining polish gap
  • Sites with aggressive bot detection (airlines, some banks) are not supported in this release

🤖 Generated with Claude Code

mreider and others added 4 commits April 19, 2026 21:11
… 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>
@mreider mreider merged commit 61ce918 into main Apr 19, 2026
1 check passed
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.

1 participant