Skip to content

Fix Peekaboo MacInCloud capture proof#105

Open
Farhan (fkb032) wants to merge 16 commits into
developfrom
fkb/peekaboo-capture-followup
Open

Fix Peekaboo MacInCloud capture proof#105
Farhan (fkb032) wants to merge 16 commits into
developfrom
fkb/peekaboo-capture-followup

Conversation

@fkb032
Copy link
Copy Markdown
Contributor

@fkb032 Farhan (fkb032) commented May 7, 2026

Summary

This follow-up fixes the MacInCloud Peekaboo report failure seen after PR #101 merged, where the app DOM mounted but screenshots showed black/blank central content.

What changed:

  • Adds E2E-only native capture CSS that disables backdrop-filter/-webkit-backdrop-filter under html[data-nixmac-e2e-capture="solid"].
  • Adds computed-style breadcrumbs at initial RAF and nixmac:app-mounted + 2 RAFs so future MacInCloud capture failures show whether the CSS, root, body, and app shell actually painted.
  • Adds native/WebKit snapshot diagnostics and keeps them strictly diagnostic unless real visual-signal checks pass.
  • Keeps pre-load and page-load native WebView snapshot probes behind explicit debug-only opt-in gates (NIXMAC_E2E_PRELOAD_NATIVE_CAPTURE, NIXMAC_E2E_PAGE_LOAD_NATIVE_CAPTURE) so the default Scott-driver path relies on shell readiness plus on-demand capture.
  • Keeps screenshot assertions strict; this does not weaken report pass/fail criteria.
  • Hardens the trusted report secret scanner to use bounded samples and streaming chunk reads, including chunk-boundary handling for redacted values.
  • Updates the Peekaboo workflow contract self-test for the capture, scanner, report, and opt-in native snapshot contracts.

Small develop-base cleanup included because the rebased PR merge ref failed local/CI gates before this PR could be honestly verified:

  • Fixes two Clippy/rustfmt issues in search_packages.rs.
  • Fixes directory-picker.test.tsx mock typing/duplicate setup from the earlier branch history, plus the current merge-ref duplicate SetDirResult import. PR fix(test): dir picker test reconsile dopple fix merge #115 also touches this test file, but the line ranges are disjoint; this PR keeps the change minimal so Fix Peekaboo MacInCloud capture proof #105 can stay independently green.
  • Removes unused Plus / DropdownMenu* imports in prompt-input.tsx that are only referenced inside JSX comments.
  • Replaces the removed effect/Schema.BooleanFromString parser in env.ts with explicit env parsing for VITE_SERVER_URL and optional boolean NIX_INSTALLED_OVERRIDE. The boolean parser accepts common truthy/falsy strings (true/false, 1/0, yes/no, on/off); the only consumer checks strictly for true.

How to test

Run locally:

node tools/computer-use-e2e/peekaboo-workflow-contract-self-test.mjs
node tools/computer-use-e2e/run-local.mjs self-test
bash tests/e2e/lib/peekaboo.test.sh
(cd apps/native/src-tauri && cargo fmt --check && cargo check && cargo clippy --all-targets --all-features -- -D warnings)
cargo clippy --manifest-path apps/native/src-tauri/Cargo.toml -- -D warnings
(cd apps/native && bunx tsc --noEmit)
bun -F native build
bun -F native test:unit src/components/widget/controls/directory-picker.test.tsx

Expected CI validation:

  • The Peekaboo E2E GitHub Action should build/run on MacInCloud.
  • The PR comment should link to the hosted HTML report.
  • The report should have nonblank app screenshots, video/storyboard evidence, scenario annotations, trusted secret scan pass, and Computer Use parity coverage metadata.

Verification performed

Latest local verification on rebased commit eea0eb61:

  • $claude-review proposal review completed; blocking PR fix(test): dir picker test reconsile dopple fix merge #115 overlap feedback was incorporated.
  • node tools/computer-use-e2e/peekaboo-workflow-contract-self-test.mjs passed.
  • bash tests/e2e/lib/peekaboo.test.sh passed.
  • node tools/computer-use-e2e/run-local.mjs self-test passed.
  • cargo clippy --manifest-path apps/native/src-tauri/Cargo.toml -- -D warnings passed.
  • bun install --frozen-lockfile passed.
  • (cd apps/native && bunx tsc --noEmit) passed.
  • bun -F native test:unit src/components/widget/controls/directory-picker.test.tsx passed, with existing React act(...) warnings.
  • bun -F native build passed.
  • git diff --check passed.
  • $claude-review implementation review completed with zero blocking issues and approved commit/push/rerun.

Known local tooling note:

  • bun -F native lint currently fails before source analysis because .oxlintrc.json references eslint plugin rule groups not recognized by the installed oxlint. This patch does not touch oxlint config.

Docs

  • Docs updated
  • No docs update needed

This is an E2E capture/reporting stabilization change. It does not change user-facing nixmac behavior or public docs semantics.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 7, 2026

Warnings
⚠️ ❗ Big PR (2279 lines changed). Consider splitting it into smaller, focused changes.
Messages
📖

🤖 This PR touches CI / infra — reviewers please pay extra attention:

  • .github/workflows/peekaboo-e2e.yml
📖 No docs update needed — acknowledged.

📋 PR Overview

Lines changed 2279 (+2192 / -87)
Files 0 added, 28 modified, 0 deleted
Draft / WIP no
Has Test Plan yes
New UI components no
New Storybook stories no
New Rust modules no
New TS source files no
New tests no
package.json touched no
Cargo.toml touched yes
Infra / CI touched yes

🔬 Coverage

Report Lines Statements Functions Branches
apps/native/coverage/coverage-summary.json 17.4% 17.4% 27.9% 53.3%

Generated by 🚫 dangerJS against eea0eb6

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ff87afbed2

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "Codex (@codex) review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "Codex (@codex) address that feedback".

Comment thread .github/workflows/peekaboo-e2e.yml Outdated
@fkb032 Farhan (fkb032) force-pushed the fkb/peekaboo-capture-followup branch from ff87afb to 9311b5a Compare May 7, 2026 18:21
@fkb032 Farhan (fkb032) self-assigned this May 7, 2026
@fkb032 Farhan (fkb032) force-pushed the fkb/peekaboo-capture-followup branch from 9311b5a to 6277bda Compare May 7, 2026 18:34
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 7, 2026

nixmac Peekaboo E2E: ❌ FAIL

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 98d8ea5649

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "Codex (@codex) review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "Codex (@codex) address that feedback".

Comment thread tests/e2e/lib/nixmac_product_proof.sh
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 3f4af8eefd

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "Codex (@codex) review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "Codex (@codex) address that feedback".

Comment thread apps/native/src-tauri/src/main.rs Outdated
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