chore: prepare release v2.3.2 - #170
Conversation
- Update Drizzle ORM and server dependencies to patched versions - Add overrides for vulnerable transitive server packages - Update web UUID and transitive dependency overrides - Sync desktop package lock version with package metadata Validation: - npm audit at repo root: 0 vulnerabilities - npm audit in apps/web: 0 vulnerabilities - bun audit in apps/server-ts: 0 vulnerabilities - npm test: 116 passing - npm run build: passing - server typecheck: passing - desktop runtime sidecar smoke: health/plugins/templates/static UI OK
fix: セキュリティ監査で発見された脆弱性を修正 (#148)
fix: バックエンドの信頼性バグを修正 (#149)
- Bump app package and desktop metadata versions to 2.3.2 - Add changelog entry for updater, security, and audit fixes - Note one-time manual macOS download caveat for v2.3.1 users
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (5)
📒 Files selected for processing (16)
📝 WalkthroughWalkthroughVersion 2.3.2 consolidates security fixes for prototype pollution, HTTP request hardening (SSRF/DoS), server graceful shutdown, and improved workflow validation. All workspace versions and dependencies are updated; desktop CSP policy is explicitly configured. ChangesSecurity Release 2.3.2
Sequence Diagram(s)sequenceDiagram
participant Client
participant HttpRequestNode
participant validateUrl
participant readLimitedText
Client->>HttpRequestNode: execute(url, method, body)
HttpRequestNode->>validateUrl: check URL scheme and hostname
validateUrl-->>HttpRequestNode: reject SSRF/private hosts or allow
HttpRequestNode->>HttpRequestNode: build RequestInit, respect maxRedirects
loop each redirect (hop-limited)
HttpRequestNode->>HttpRequestNode: re-validate URL per hop
HttpRequestNode->>readLimitedText: fetch and stream response
readLimitedText-->>HttpRequestNode: error if exceeds maxResponseBytes
end
HttpRequestNode-->>Client: response text with JSON parse
sequenceDiagram
participant Process
participant gracefulShutdown
participant WorkflowExecutor
participant Database
Process->>gracefulShutdown: SIGTERM/SIGINT
gracefulShutdown->>gracefulShutdown: start 10s timeout
gracefulShutdown->>WorkflowExecutor: stopWorkflow for each running ID
WorkflowExecutor-->>gracefulShutdown: allSettled results
gracefulShutdown->>Database: closeDb (WAL checkpoint + close)
Database-->>gracefulShutdown: complete
gracefulShutdown->>Process: exit(0)
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes Poem
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Warning There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure. 🔧 ESLint
ESLint skipped: no ESLint configuration detected in root package.json. To enable, add Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary
mainIncluded fixes
Verification
npm audit --jsonat repo root: 0 vulnerabilitiesnpm audit --jsoninapps/web: 0 vulnerabilitiesbun auditinapps/server-ts: passednpm test: 119 pass, 0 failnpm run lint: passed with existing warnings onlynpm run build: passedbun run typecheckinapps/server-ts: passednpm run prepare-runtimeinapps/desktop: passedserverandserver-x86_64-unknown-linux-gnuserved/health,/, and/api/pluginsNotes
cargois not installed in this sandbox, so a full localtauri buildwas not run here. CI/release runners should cover native packaging.Summary by CodeRabbit
New Features
Bug Fixes
Chores