• Will Chen's avatar
    Replace deflake-e2e-recent-prs with deflake-e2e-recent-commits (#2607) · 50a72da9
    Will Chen 提交于
    ## Summary
    - Replaced `deflake-e2e-recent-prs` command with
    `deflake-e2e-recent-commits` that scans CI workflow runs on main instead
    of PR comments
    - Downloads the `html-report` artifact (`results.json`) from each CI run
    to extract flaky test data, which works for push events that don't post
    PR comments
    - Updated `claude-deflake-e2e.yml` workflow to use the new command
    
    ## Test plan
    - [ ] Trigger the `Claude Deflake E2E` workflow manually and verify it
    correctly scans recent main branch CI runs
    - [ ] Verify flaky tests are correctly parsed from `results.json`
    artifacts
    
    🤖 Generated with [Claude Code](https://claude.com/claude-code)
    <!-- devin-review-badge-begin -->
    
    ---
    
    <a href="https://app.devin.ai/review/dyad-sh/dyad/pull/2607"
    target="_blank">
      <picture>
    <source media="(prefers-color-scheme: dark)"
    srcset="https://static.devin.ai/assets/gh-open-in-devin-review-dark.svg?v=1">
    <img
    src="https://static.devin.ai/assets/gh-open-in-devin-review-light.svg?v=1"
    alt="Open with Devin">
      </picture>
    </a>
    <!-- devin-review-badge-end -->
    
    <!-- CURSOR_SUMMARY -->
    ---
    
    > [!NOTE]
    > **Low Risk**
    > Low risk doc/workflow tweak that changes how the deflake automation
    sources flaky tests (GitHub Actions runs/artifacts) but does not touch
    production code or test logic.
    > 
    > **Overview**
    > Updates the deflake automation to **scan recent `main` CI workflow
    runs** (push events) instead of PR Playwright summary comments, by
    downloading each run’s `html-report` artifact and parsing `results.json`
    to detect retry-passed tests with prior failures/timeouts.
    > 
    > Adjusts the scheduled `Claude Deflake E2E` workflow to accept
    `commit_count`, grant `actions: read`, and invoke
    `/dyad:deflake-e2e-recent-commits` rather than the old PR-based command.
    > 
    > <sup>Written by [Cursor
    Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
    0da1e67da43e509577d5b8dc1f155779742d1529. This will update automatically
    on new commits. Configure
    [here](https://cursor.com/dashboard?tab=bugbot).</sup>
    <!-- /CURSOR_SUMMARY -->
    
    <!-- This is an auto-generated description by cubic. -->
    ---
    ## Summary by cubic
    Switched the deflake command to scan recent main CI runs and parse
    html-report results.json to find flaky E2E tests. Updated the Claude
    Deflake E2E workflow to use commit_count and added actions: read
    permission.
    
    - **Refactors**
    - List completed main push runs via gh api, fetch 3x commit_count, and
    filter to success/failure.
    - Download non-expired html-report artifacts; parse results.json with a
    Node.js script to detect flakes (final passed after
    fail/timedOut/interrupted).
    - Build "<spec_path.spec.ts> > Suite > Test" titles; group and rank by
    frequency; clean up artifacts.
      - Skip runs without artifacts; note 3-day artifact retention.
    
    - **Bug Fixes**
      - Updated command doc to reference the TodoWrite tool.
    
    <sup>Written for commit 0da1e67da43e509577d5b8dc1f155779742d1529.
    Summary will update on new commits.</sup>
    
    <!-- End of auto-generated description by cubic. -->
    
    ---------
    Co-authored-by: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
    50a72da9
名称
最后提交
最后更新
.claude 正在载入提交数据...
.cursor/rules 正在载入提交数据...
.devcontainer 正在载入提交数据...
.github 正在载入提交数据...
.husky 正在载入提交数据...
.storybook 正在载入提交数据...
assets 正在载入提交数据...
docs 正在载入提交数据...
drizzle 正在载入提交数据...
e2e-tests 正在载入提交数据...
makers 正在载入提交数据...
packages/@dyad-sh 正在载入提交数据...
rules 正在载入提交数据...
scaffold 正在载入提交数据...
scripts 正在载入提交数据...
shared 正在载入提交数据...
src 正在载入提交数据...
testing 正在载入提交数据...
tools 正在载入提交数据...
worker 正在载入提交数据...
workers/tsc 正在载入提交数据...
.cursorignore 正在载入提交数据...
.env.example 正在载入提交数据...
.eslintrc.json 正在载入提交数据...
.gitattributes 正在载入提交数据...
.gitignore 正在载入提交数据...
.oxfmtrc.json 正在载入提交数据...
.oxlintrc.json 正在载入提交数据...
.prettierignore 正在载入提交数据...
.prettierrc 正在载入提交数据...
AGENTS.md 正在载入提交数据...
CLA.md 正在载入提交数据...
CLAUDE.md 正在载入提交数据...
CONTRIBUTING.md 正在载入提交数据...
LICENSE 正在载入提交数据...
README.md 正在载入提交数据...
SECURITY.md 正在载入提交数据...
biome.json 正在载入提交数据...
components.json 正在载入提交数据...
drizzle.config.ts 正在载入提交数据...
forge.config.ts 正在载入提交数据...
forge.env.d.ts 正在载入提交数据...
index.html 正在载入提交数据...
lint-staged.config.js 正在载入提交数据...
merge.config.ts 正在载入提交数据...
package-lock.json 正在载入提交数据...
package.json 正在载入提交数据...
playwright.config.ts 正在载入提交数据...
tsconfig.app.json 正在载入提交数据...
tsconfig.json 正在载入提交数据...
tsconfig.node.json 正在载入提交数据...
vite.main.config.mts 正在载入提交数据...
vite.preload.config.mts 正在载入提交数据...
vite.renderer.config.mts 正在载入提交数据...
vite.worker.config.mts 正在载入提交数据...
vitest.config.ts 正在载入提交数据...
windowsSign.ts 正在载入提交数据...