Skip to content

test: real-webview bridge smoke -- engine parity against what actually ships (goal 0097, re-scoped) - #223

Merged
alicoding merged 2 commits into
mainfrom
webview-bridge-smoke
Aug 18, 2026
Merged

test: real-webview bridge smoke -- engine parity against what actually ships (goal 0097, re-scoped)#223
alicoding merged 2 commits into
mainfrom
webview-bridge-smoke

Conversation

@alicoding

Copy link
Copy Markdown
Owner

The original webkit-Playwright premise was researched and REJECTED (Playwright's webkit is patched WebKit-main that never attaches to an embedded WKWebView; no macOS WebDriver for third-party webviews exists; the OSS convergence is driving the real webview via an app bridge). This ships the honest mechanism:

  • internal/webviewbridgesmoke + scripts/webview-bridge-smoke.sh: builds -tags mcp, launches the REAL desktop app on isolated data (devguard-shaped refusal if task dev / installed Mill / port 9099 is live — proven live against a real conflicting session), drives a 6-check named registry over Wails' own MCP bridge: isolated-data badge, window sanity, board render, card interaction, and the two burned classes — selection ring and sticky border-flip via real clicks on live-created entities. Every selector/method traced against source.
  • Non-required macos-latest CI job (continue-on-error, outside ci-gate) — GUI apps run on hosted macOS runners per working precedent; this PR's own run is the first live attempt.
  • testing.md records the real-parity layer and the researched-and-rejected premise; Playwright-webkit demoted to a local debugging probe.
  • Local live run deferred to a registered morning item (the owner's live task dev session correctly blocks a second window — the guard working).

Goal: docs/goals/0097-webkit-parity-smoke.md.

🤖 Generated with Claude Code

https://claude.ai/code/session_01FW5GkkAG8du7tNdYLk2zSd

…oal 0097, re-scoped)

Playwright's webkit project was researched and rejected as the parity
mechanism (patched WebKit-main, never attaches to an app's own embedded
webview; no macOS WebDriver exists for third-party WKWebView). The
honest mechanism is driving the real desktop window over Wails3's own
-tags mcp control bridge: internal/webviewbridgesmoke builds and
launches the real app in isolated data, refuses to run alongside an
already-live task dev or installed Mill.app, and runs a named check
registry (window sanity, Atlas board render, note-card flip, and the
two burned selection/border-color rendering classes) against it.
scripts/webview-bridge-smoke.sh is the entrypoint; ci.yml gets a
non-required macos-latest job until it has a CI track record.
testing.md records the new layer and the researched-and-rejected
webkit-project premise.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FW5GkkAG8du7tNdYLk2zSd
@alicoding
alicoding enabled auto-merge (squash) August 18, 2026 03:58
… (goal 0097)

Unit-test coverage for internal/webviewbridgesmoke's decision logic:
guard.go's conflict detection (findConflictingProcess/parsePSOutput,
mirroring internal/devguard's own seam), checks.go's full check
registry against a scripted fakeMCPCaller (every assertion branch:
success, precondition, gesture-didn't-select, ring-never-rendered,
bridge-gap-propagates), and main.go's runRegistry/repoRootFrom/
portInUse extracted for testability with no behavioral change. Package
coverage 12.2% -> 55.9%; whole-repo total 70.9% locally (floor stays
69.5%, untouched).

testing.md now records the CI job's first live attempt against a real
macos-latest runner: it failed launching the app (MCP bridge never
became reachable, connection refused, empty captured stderr) after
both builds succeeded. Recorded as non-required/informational pending
investigation, with the empty-stderr silent-exit as the first
investigation lead -- not iterated further tonight. The operative
parity gate stays the local pre-release run until this is resolved.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FW5GkkAG8du7tNdYLk2zSd
@alicoding
alicoding merged commit 0b6c3da into main Aug 18, 2026
26 of 27 checks passed
@alicoding
alicoding deleted the webview-bridge-smoke branch August 18, 2026 05:00
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