• Will Chen's avatar
    fix: trim whitespace from API keys and secrets in encrypt/decrypt (#2518) · 26687a6f
    Will Chen 提交于
    ## Summary
    - Trims whitespace from API keys and secrets during both encryption and
    decryption in `src/main/settings.ts`
    - Prevents issues caused by accidental leading/trailing whitespace or
    newlines in API keys (e.g., from copy-paste)
    - Adds comprehensive tests for the `encrypt`, `decrypt`, and
    `readSettings` whitespace trimming behavior
    
    ## Test plan
    - [x] Unit tests added for `encrypt()` trimming whitespace before
    encrypting
    - [x] Unit tests added for `decrypt()` trimming whitespace from both
    plaintext and electron-safe-storage secrets
    - [x] Unit tests added for `readSettings()` trimming whitespace from
    decrypted API keys
    - [x] All 784 existing tests pass
    
    🤖 Generated with [Claude Code](https://claude.com/claude-code)
    <!-- devin-review-badge-begin -->
    
    ---
    
    <a href="https://app.devin.ai/review/dyad-sh/dyad/pull/2518"
    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]
    > <sup>[Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) is
    generating a summary for commit
    d24002f59f18428d78ce55d11e82d4800425d3eb. Configure
    [here](https://cursor.com/dashboard?tab=bugbot).</sup>
    <!-- /CURSOR_SUMMARY -->
    
    <!-- This is an auto-generated description by cubic. -->
    ---
    ## Summary by cubic
    Trim whitespace from API keys and secrets during encryption, decryption,
    and settings reads to prevent auth failures from copy‑pasted spaces or
    newlines. Ensures consistent storage and use of secrets across
    providers.
    
    - **Bug Fixes**
      - encrypt(): trims input before encrypting or storing plaintext
    - decrypt(): trims decrypted strings for both electron-safe-storage and
    plaintext
    - readSettings(): trims whitespace from decrypted and plaintext secrets
    - Added unit tests for encrypt, decrypt, and readSettings trimming
    behavior
    
    <sup>Written for commit d24002f59f18428d78ce55d11e82d4800425d3eb.
    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>
    26687a6f
名称
最后提交
最后更新
.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 正在载入提交数据...