Skip to content

Conversation

@nirukk52
Copy link
Owner

@nirukk52 nirukk52 commented Nov 14, 2025

Note

Activates a CI workflow running the unified validation QA suite, switches Husky hooks to validation-only, adds a fix→validate task, improves device-check tests with adb mocks, and adds a frontend dependency.

  • CI/Automation:
    • Add active GitHub Actions workflow .github/workflows/ci.yml to run cd .cursor && task qa:all with environment setup (Encore auth, bun/node, deps, start backend/frontend, Playwright install).
    • Update QA Taskfile: qa:all becomes validation-only (rules + smoke + lint + typecheck + unit + e2e) and add qa:all:fix (auto-fix then validate).
  • Git Hooks:
    • Change .husky/pre-commit and .husky/pre-push to run validation-only task qa:all (remove auto-fix); keep merge-commit check on pre-push.
  • Testing:
    • Rewrite backend/agent/nodes/setup/EnsureDevice/device-check.test.ts to mock child_process.exec and add precise tests for single/multiple devices, no devices, missing device, and adb failures.
  • Frontend/Deps:
    • Add tailwind-variants to frontend/package.json (lockfile updated).

Written by Cursor Bugbot for commit 45e386a. This will update automatically on new commits. Configure here.

@vercel
Copy link

vercel bot commented Nov 14, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Comments Updated (UTC)
screengraph Ready Ready Preview Comment Nov 14, 2025 1:24am

Copy link

@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.

ℹ️ 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 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 address that feedback".

Comment on lines 58 to 79
- name: Install Backend Dependencies
run: cd backend && bun install

# TODO: Install frontend dependencies
# - name: Install Frontend Dependencies
# run: cd frontend && bun install
- name: Install Frontend Dependencies
run: cd frontend && bun install

# TODO: Build frontend
# - name: Build Frontend
# run: cd .cursor && task frontend:build
- name: Start Backend
run: |
cd backend
encore run &
echo "Waiting for backend to be ready..."
timeout 60 bash -c 'until curl -sf http://localhost:4000/health > /dev/null; do sleep 2; done'

# TODO: Start frontend
# - name: Start Frontend
# run: cd .cursor && task frontend:dev &
# sleep 5

# TODO: Run smoke tests
# - name: Run Frontend Smoke Tests
# run: bun run qa:smoke:frontend

# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# Job 4: Type Checking
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# Additional quality check
# Command: bun run typecheck

typecheck:
name: TypeScript Type Checking
runs-on: ubuntu-latest
needs: founder-rules

steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Start Frontend
run: |
cd frontend
bun run dev &
echo "Waiting for frontend to be ready..."
timeout 60 bash -c 'until curl -sf http://localhost:5173 > /dev/null; do sleep 2; done'

# TODO: Setup and run typecheck
# - name: Run TypeScript Type Checking
# run: bun run typecheck
- name: Run Complete QA Suite
run: cd .cursor && task qa:all

Choose a reason for hiding this comment

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

P1 Badge Install Playwright browsers in CI job

The new QA workflow runs task qa:all, which ends up executing playwright test for the frontend. The job installs Node dependencies but never downloads the Playwright browser binaries, so the step will consistently fail on a fresh GitHub runner with an error like “Please install browsers with npx playwright install”. Add a browser installation step (e.g. npx playwright install --with-deps) before running the QA suite.

Useful? React with 👍 / 👎.

- Changed from ENCORE_AUTH_TOKEN to ENCORE_AUTH_KEY (app-specific)
- Updated docs to clarify auth key vs personal token difference
- Auth key must be created in Encore dashboard, not via 'encore auth token'
- Fixes 500 error caused by using wrong credential type
- badge.svelte imports tailwind-variants but it wasn't in package.json
- Passed locally due to persistent node_modules
- Failed in CI with fresh install
- Fixes typecheck error in CI workflow

// Import after mocking to get the mocked version
const childProcess = await import("node:child_process");
const { promisify } = await import("node:util");
Copy link

Choose a reason for hiding this comment

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

Bug: Redundant import in test code.

The promisify import from node:util is unused. The test file imports promisify but never references it anywhere in the test code, which will be flagged by linters.

Fix in Cursor Fix in Web

} as never);
}
return {} as never;
});
Copy link

Choose a reason for hiding this comment

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

Bug: Incorrect exec Mock Callback Signature

The exec callback mock has incorrect signature. Node.js exec callbacks receive three separate arguments (error, stdout, stderr), but the mock passes an object { stdout, stderr } as the second argument. This breaks promisify(exec) which expects the standard three-argument callback pattern.

Fix in Cursor Fix in Web

@openhands-ai
Copy link

openhands-ai bot commented Nov 14, 2025

Looks like there are a few issues preventing this PR from being merged!

  • GitHub Actions are failing:
    • CI

If you'd like me to help, just leave a comment, like

@OpenHands please fix the failing actions on PR #25 at branch `infra-qa-all-consolidation`

Feel free to include any additional details that might help me get this PR into a better state.

You can manage your notification settings

…ooks

Problem: Running qa:fix inside qa:all during git hooks causes auto-fixes
without staging changes, leading to commits without the fixes.

Solution:
- qa:all now validation-only (no code modification)
- Created qa:all:fix for manual workflow (fix → validate)
- Updated hooks and CI docs to clarify validation-only behavior

Rationale:
- Git hooks should validate, not modify uncommitted code
- CI should validate, not modify code (anti-pattern)
- Manual workflow: run qa:all:fix, review changes, stage, commit

Files:
- .cursor/commands/qa/Taskfile.yml - Split validation from fixing
- .github/workflows/ci.yml - Updated docs
- .husky/pre-commit - Clarified validation-only
- .husky/pre-push - Clarified validation-only
@nirukk52 nirukk52 merged commit b1d285e into main Nov 14, 2025
4 of 5 checks 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.

2 participants