• Will Chen's avatar
    feat: resolve merge conflicts for app commands (#2538) · 3d942916
    Will Chen 提交于
    ## Summary
    - Resolve stash merge conflicts in `app_handlers.ts` — use
    `updateAppCommands` handler without `withLock`
    - Resolve stash merge conflicts in `app_commands.spec.ts` — consolidate
    into a single E2E test covering validation, cancel, configure/edit/clear
    flows
    - Include updated `test_helper.ts` and `package-lock.json`
    
    ## Test plan
    - [ ] Verify `npm run ts` passes (type checks)
    - [ ] Verify `npm test` passes (unit tests)
    - [ ] Run app commands E2E test: `PLAYWRIGHT_HTML_OPEN=never npm run e2e
    -- --grep "configure app commands"`
    
    🤖 Generated with [Claude Code](https://claude.com/claude-code)
    <!-- devin-review-badge-begin -->
    
    ---
    
    <a href="https://app.devin.ai/review/dyad-sh/dyad/pull/2538"
    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]
    > **Medium Risk**
    > Removes per-app locking from `updateAppCommands`, which could allow
    concurrent updates to race and overwrite command values. Other changes
    are test and dependency/lockfile adjustments with limited production
    impact.
    > 
    > **Overview**
    > Improves the app-commands E2E coverage by consolidating previously
    separate tests into a single `configure app commands` flow that now
    exercises **required-field validation**, **cancel**, **save/edit**, and
    **clear-to-default** behavior end-to-end.
    > 
    > Updates the Playwright helper `waitForToastWithText` to use the shared
    `Timeout.MEDIUM` default (instead of a fixed 5s) to reduce CI flakiness.
    > 
    > In `app_handlers.ts`, removes `withLock` usage from the
    `updateAppCommands` IPC handler while keeping the same trimming +
    “both-or-neither” validation before persisting commands. Also bumps the
    app version to `0.36.0` and refreshes `package-lock.json` accordingly.
    > 
    > <sup>Written by [Cursor
    Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
    4dfd2931629fee1d89af85a227c97981788fa0a9. 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
    Resolved merge conflicts and finalized the app commands flow. Simplified
    the updateAppCommands handler and consolidated E2E coverage to reduce
    flakiness.
    
    - **Refactors**
    - updateAppCommands no longer uses withLock; validates paired commands
    and updates the DB directly.
    - Merged app commands E2E into a single test covering validation,
    cancel, and configure/edit/clear flows.
    - Standardized toast waiting to Timeout.MEDIUM in test_helper to reduce
    flakes.
      - Updated package-lock.json to 0.36.0.
    
    <sup>Written for commit 4dfd2931629fee1d89af85a227c97981788fa0a9.
    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>
    3d942916
名称
最后提交
最后更新
.claude 正在载入提交数据...
.cursor/rules 正在载入提交数据...
.devcontainer 正在载入提交数据...
.github 正在载入提交数据...
.husky 正在载入提交数据...
.storybook 正在载入提交数据...
assets 正在载入提交数据...
docs 正在载入提交数据...
drizzle 正在载入提交数据...
e2e-tests 正在载入提交数据...
makers 正在载入提交数据...
packages/@dyad-sh 正在载入提交数据...
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 正在载入提交数据...