Skip to content

fix(image-gen-mcp): address follow-up review issues from #1243#1441

Merged
kaizhou-lab merged 1 commit intomainfrom
fix/image-gen-mcp-followup
Mar 19, 2026
Merged

fix(image-gen-mcp): address follow-up review issues from #1243#1441
kaizhou-lab merged 1 commit intomainfrom
fix/image-gen-mcp-followup

Conversation

@piorpua
Copy link
Copy Markdown
Contributor

@piorpua piorpua commented Mar 19, 2026

Summary

  • Move imageGenCore.ts to src/common/ to fix architecture boundary violation (worker importing @process/)
  • Fix object mutations in initStorage.ts and duplicated constants in renderer; replace dynamic require('fs') with static import
  • Add 37 unit tests for imageGenCore and register it in coverage tracking

Changes

Architecture

  • src/process/builtinMcp/imageGenCore.tssrc/common/imageGenCore.ts (renamed/moved)
  • src/process/builtinMcp/imageGenServer.ts: update import path
  • src/agent/gemini/cli/tools/img-gen.ts: import from @/common/imageGenCore; replace require('fs') inside method with top-level import * as fs from 'fs'

Immutability fix

  • src/process/initStorage.ts: replace all in-place field mutations on existing IMcpServer entry with spread-based immutable update (mcpServers[existingIdx] = { ...existing, ... })

Shared constant

  • src/common/storage.ts: export BUILTIN_IMAGE_GEN_ID as canonical source
  • src/process/builtinMcp/constants.ts: re-export from @/common/storage instead of re-declaring
  • src/renderer/components/SettingsModal/contents/ToolsModalContent.tsx: import from @/common/storage, remove local const
  • src/renderer/pages/settings/McpManagement/index.tsx: same

Tests & coverage

  • tests/unit/imageGenCore.test.ts: 37 new tests covering safeJsonParse, isImageFile, isHttpUrl, getFileExtensionFromDataUrl, processImageUri (HTTP + local file paths), executeImageGeneration (aborted signal)
  • vitest.config.ts: add src/common/imageGenCore.ts and src/agent/acp/mcpSessionConfig.ts to coverage.include

Related

Follow-up to #1243 — addresses issues found in code review.

Test Plan

  • bun run test — all 849 tests pass
  • bunx tsc --noEmit — no type errors
  • Verify image generation toggle still works end-to-end in Settings > Tools
  • Verify built-in MCP server path is updated correctly on first launch after upgrade

- Move imageGenCore.ts from src/process/builtinMcp/ to src/common/
  to fix architecture boundary violation (worker importing @process/)
- Replace dynamic require('fs') in img-gen.ts with static top-level import
- Fix mutations in initStorage.ts ensureBuiltinMcpServers — use spread
  copies instead of in-place field assignment on existing MCP server entry
- Promote BUILTIN_IMAGE_GEN_ID to src/common/storage.ts; remove duplicate
  local constants from renderer components (ToolsModalContent, McpManagement)
- Add 37 unit tests for imageGenCore covering safeJsonParse, isImageFile,
  isHttpUrl, getFileExtensionFromDataUrl, processImageUri, and aborted-signal
  path in executeImageGeneration
- Add src/common/imageGenCore.ts and src/agent/acp/mcpSessionConfig.ts
  to vitest.config.ts coverage.include
@kaizhou-lab kaizhou-lab merged commit d4a25eb into main Mar 19, 2026
14 of 17 checks passed
@piorpua piorpua deleted the fix/image-gen-mcp-followup branch March 19, 2026 07:28
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.

3 participants