Skip to content

Conversation

@zerob13
Copy link
Collaborator

@zerob13 zerob13 commented Jan 5, 2026

Summary by CodeRabbit

  • Documentation

    • Expanded Development Environment Setup with full install, commands, troubleshooting, and platform guidance.
    • Added Specification-Driven Development docs with principles, checklist, and workflow.
    • Added Vue 3 stack guide covering conventions, patterns, and best practices.
    • Overhauled internationalization docs with broader i18n/localization guidance.
  • Chores

    • Removed multiple outdated agent, rules, and best-practice documents to simplify repository guidance.

✏️ Tip: You can customize this high-level summary in your review settings.

Add comprehensive SDD methodology guide for AI-assisted development
with focus on architectural consistency, minimal complexity, and
forward compatibility principles.
Remove fragmented rule files and consolidate into comprehensive guides:
- Expand development-setup.mdc with complete commands and best practices
- Update i18n.mdc with 12-language support and quality guidelines
- Add vue-stack-guide.mdc for Vue 3, Pinia, Shadcn, Tailwind patterns
- Remove obsolete agent and rule files

Improve maintainability and reduce duplication while preserving all guidance.
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 5, 2026

📝 Walkthrough

Walkthrough

Consolidates and reorganizes repository documentation: removes multiple specialized agent and Cursor rule files, expands development and i18n docs, and adds Specification-Driven Development and a new Vue 3 stack guide. No code or public API surfaces were changed.

Changes

Cohort / File(s) Summary
Removed Claude agent docs
.claude/agents/*
\ .claude/agents/electron-architecture-agent.md`, ` .claude/agents/i18n-code-reviewer.md`, ` .claude/agents/llm-provider-agent.md`, ` .claude/agents/mcp-integration-agent.md``
Deleted four agent specification documents covering Electron architecture, i18n review, LLM provider patterns, and MCP integration guidance.
Removed Cursor rule docs
.cursor/rules/*
\ .cursor/rules/electron-best-practices.mdc`, ` .cursor/rules/error-logging.mdc`, ` .cursor/rules/performance.mdc`, ` .cursor/rules/pinia-best-practices.mdc`, ` .cursor/rules/project-structure.mdc`, ` .cursor/rules/provider-guidelines.mdc`, ` .cursor/rules/vue-best-practices.mdc`, ` .cursor/rules/vue-router-best-practices.mdc`, ` .cursor/rules/vue-shadcn.mdc``
Removed nine rule/configuration files that previously codified best-practice guidance for various frameworks and subsystems.
Replaced / Expanded development docs
.cursor/rules/development-setup.mdc, .cursor/rules/i18n.mdc
Rewrote development-setup.mdc into a comprehensive English development guide; replaced i18n.mdc with a broader internationalization/localization documentation set.
Updated LLM agent loop doc
.cursor/rules/llm-agent-loop.mdc
Removed a large documentation file describing LLM Agent Loop/provider architecture (file deleted).
Added Vue stack guide
.cursor/rules/vue-stack-guide.mdc
Added a new Vue 3 stack guide (Composition API, Pinia, Shadcn Vue, Tailwind) with conventions, patterns, and examples.
Added Specification-Driven Development docs & references
docs/spec-driven-dev.md, AGENTS.md, CLAUDE.md
Added docs/spec-driven-dev.md (SDD methodology) and inserted SDD references/sections into AGENTS.md and CLAUDE.md.

Sequence Diagram(s)

(omitted — changes are documentation-only and do not introduce new multi-component control flow)

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested reviewers

  • deepinfect

Poem

🐰 I hopped through docs with nimble feet,
Old rules fell down, new guides took seat.
Specs first, then code — a tidy art,
A soft nose twitch for a brand new start. ✨

Pre-merge checks

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'chore: add sdd rules' accurately reflects the main change: additions of specification-driven development documentation and related guidance files throughout the repository.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

📜 Recent review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 26b2610 and b9d4ab5.

📒 Files selected for processing (2)
  • AGENTS.md
  • CLAUDE.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • CLAUDE.md
🧰 Additional context used
🧠 Learnings (6)
📚 Learning: 2025-11-25T05:27:12.209Z
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: .cursor/rules/llm-agent-loop.mdc:0-0
Timestamp: 2025-11-25T05:27:12.209Z
Learning: Implement separation of concerns where `src/main/presenter/llmProviderPresenter/index.ts` manages the Agent loop and conversation history, while Provider files handle LLM API interactions, Provider-specific request/response formatting, tool definition conversion, and native vs non-native tool call mechanisms

Applied to files:

  • AGENTS.md
📚 Learning: 2025-11-25T05:28:20.513Z
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-11-25T05:28:20.513Z
Learning: Require Node ≥ 20.19 and pnpm ≥ 10.11 (pnpm only, not npm) as the project toolchain

Applied to files:

  • AGENTS.md
📚 Learning: 2025-11-25T05:28:20.513Z
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-11-25T05:28:20.513Z
Learning: Applies to src/main/**/*.ts : Electron main process code belongs in `src/main/` with presenters in `presenter/` (Window/Tab/Thread/Mcp/Config/LLMProvider) and `eventbus.ts` for app events

Applied to files:

  • AGENTS.md
📚 Learning: 2025-11-25T05:27:26.656Z
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: .cursor/rules/project-structure.mdc:0-0
Timestamp: 2025-11-25T05:27:26.656Z
Learning: Applies to src/**/* : New features should be developed in the `src` directory

Applied to files:

  • AGENTS.md
📚 Learning: 2025-11-25T05:26:24.867Z
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: .cursor/rules/electron-best-practices.mdc:0-0
Timestamp: 2025-11-25T05:26:24.867Z
Learning: Applies to {src/main/presenter/**/*.ts,src/renderer/**/*.ts} : Implement proper inter-process communication (IPC) patterns using Electron's ipcRenderer and ipcMain APIs

Applied to files:

  • AGENTS.md
📚 Learning: 2025-11-25T05:28:20.513Z
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-11-25T05:28:20.513Z
Learning: After completing a feature, always run `pnpm run format` and `pnpm run lint` to keep formatting and lint status clean

Applied to files:

  • AGENTS.md

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@ThinkInAIXYZ ThinkInAIXYZ deleted a comment from chatgpt-codex-connector bot Jan 5, 2026
…reness

Add lightweight spec artifact recommendations and update compatibility/migration
emphasis in SDD methodology guidance.
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

📜 Review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 84940b2 and 26b2610.

📒 Files selected for processing (20)
  • .claude/agents/electron-architecture-agent.md
  • .claude/agents/i18n-code-reviewer.md
  • .claude/agents/llm-provider-agent.md
  • .claude/agents/mcp-integration-agent.md
  • .cursor/rules/development-setup.mdc
  • .cursor/rules/electron-best-practices.mdc
  • .cursor/rules/error-logging.mdc
  • .cursor/rules/i18n.mdc
  • .cursor/rules/llm-agent-loop.mdc
  • .cursor/rules/performance.mdc
  • .cursor/rules/pinia-best-practices.mdc
  • .cursor/rules/project-structure.mdc
  • .cursor/rules/provider-guidelines.mdc
  • .cursor/rules/vue-best-practices.mdc
  • .cursor/rules/vue-router-best-practices.mdc
  • .cursor/rules/vue-shadcn.mdc
  • .cursor/rules/vue-stack-guide.mdc
  • AGENTS.md
  • CLAUDE.md
  • docs/spec-driven-dev.md
💤 Files with no reviewable changes (14)
  • .cursor/rules/error-logging.mdc
  • .cursor/rules/electron-best-practices.mdc
  • .cursor/rules/performance.mdc
  • .cursor/rules/project-structure.mdc
  • .claude/agents/llm-provider-agent.md
  • .claude/agents/electron-architecture-agent.md
  • .cursor/rules/vue-shadcn.mdc
  • .cursor/rules/vue-router-best-practices.mdc
  • .cursor/rules/pinia-best-practices.mdc
  • .claude/agents/mcp-integration-agent.md
  • .cursor/rules/provider-guidelines.mdc
  • .cursor/rules/llm-agent-loop.mdc
  • .cursor/rules/vue-best-practices.mdc
  • .claude/agents/i18n-code-reviewer.md
🧰 Additional context used
🧠 Learnings (35)
📚 Learning: 2025-11-25T05:26:11.312Z
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-25T05:26:11.312Z
Learning: Applies to **/*.{ts,tsx,js,jsx,vue} : Use English for logs and comments (Chinese text exists in legacy code, but new code should use English)

Applied to files:

  • .cursor/rules/development-setup.mdc
  • .cursor/rules/i18n.mdc
📚 Learning: 2025-11-25T05:28:20.513Z
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-11-25T05:28:20.513Z
Learning: After completing a feature, always run `pnpm run format` and `pnpm run lint` to keep formatting and lint status clean

Applied to files:

  • .cursor/rules/development-setup.mdc
📚 Learning: 2025-11-25T05:26:11.312Z
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-25T05:26:11.312Z
Learning: Use `pnpm` as the package manager (required Node.js >= 20.19.0, pnpm >= 10.11.0)

Applied to files:

  • .cursor/rules/development-setup.mdc
📚 Learning: 2025-11-25T05:27:45.545Z
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: .cursor/rules/vue-best-practices.mdc:0-0
Timestamp: 2025-11-25T05:27:45.545Z
Learning: Applies to src/renderer/src/**/*.{vue,ts,tsx,js,jsx} : Use the Composition API for better code organization and reusability in Vue.js applications

Applied to files:

  • .cursor/rules/vue-stack-guide.mdc
  • CLAUDE.md
📚 Learning: 2025-11-25T05:27:45.545Z
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: .cursor/rules/vue-best-practices.mdc:0-0
Timestamp: 2025-11-25T05:27:45.545Z
Learning: Applies to src/renderer/src/**/*.{vue,ts,tsx,js,jsx} : Implement proper state management with Pinia in Vue.js applications

Applied to files:

  • .cursor/rules/vue-stack-guide.mdc
📚 Learning: 2025-11-25T05:28:04.454Z
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: .cursor/rules/vue-shadcn.mdc:0-0
Timestamp: 2025-11-25T05:28:04.454Z
Learning: Applies to src/renderer/**/*.vue : Structure files: exported component, composables, helpers, static content, types

Applied to files:

  • .cursor/rules/vue-stack-guide.mdc
📚 Learning: 2025-11-25T05:28:04.454Z
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: .cursor/rules/vue-shadcn.mdc:0-0
Timestamp: 2025-11-25T05:28:04.454Z
Learning: Applies to src/renderer/**/*.vue : Use Shadcn Vue, Radix Vue, and Tailwind for components and styling

Applied to files:

  • .cursor/rules/vue-stack-guide.mdc
  • CLAUDE.md
📚 Learning: 2025-11-25T05:28:20.513Z
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-11-25T05:28:20.513Z
Learning: Applies to src/renderer/**/*.{ts,tsx,vue} : Vue 3 app code in `src/renderer/src` should be organized into `components/`, `stores/`, `views/`, `i18n/`, `lib/` directories with shell UI in `src/renderer/shell/`

Applied to files:

  • .cursor/rules/vue-stack-guide.mdc
📚 Learning: 2025-11-25T05:26:11.312Z
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-25T05:26:11.312Z
Learning: Applies to **/*.vue : Use Vue 3 Composition API for all components instead of Options API

Applied to files:

  • .cursor/rules/vue-stack-guide.mdc
📚 Learning: 2025-11-25T05:28:04.454Z
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: .cursor/rules/vue-shadcn.mdc:0-0
Timestamp: 2025-11-25T05:28:04.454Z
Learning: Applies to src/renderer/**/*.vue : Use composition API and declarative programming patterns; avoid options API

Applied to files:

  • .cursor/rules/vue-stack-guide.mdc
📚 Learning: 2025-11-25T05:28:04.454Z
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: .cursor/rules/vue-shadcn.mdc:0-0
Timestamp: 2025-11-25T05:28:04.454Z
Learning: Follow Nuxt 3 directory structure (e.g., pages/, components/, composables/)

Applied to files:

  • .cursor/rules/vue-stack-guide.mdc
📚 Learning: 2025-11-25T05:28:20.513Z
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-11-25T05:28:20.513Z
Learning: Applies to src/renderer/src/**/*.{ts,tsx,vue} : Use TypeScript with Vue 3 Composition API for the renderer application

Applied to files:

  • .cursor/rules/vue-stack-guide.mdc
📚 Learning: 2025-11-25T05:27:45.545Z
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: .cursor/rules/vue-best-practices.mdc:0-0
Timestamp: 2025-11-25T05:27:45.545Z
Learning: Applies to src/renderer/src/**/*.{vue,ts,tsx,js,jsx} : Utilize Vue Router for navigation and route management in Vue.js applications

Applied to files:

  • .cursor/rules/vue-stack-guide.mdc
📚 Learning: 2025-11-25T05:27:20.067Z
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: .cursor/rules/pinia-best-practices.mdc:0-0
Timestamp: 2025-11-25T05:27:20.067Z
Learning: Applies to src/renderer/src/stores/**/*.{vue,ts,tsx,js,jsx} : Use modules to organize related state and actions in Pinia stores

Applied to files:

  • .cursor/rules/vue-stack-guide.mdc
📚 Learning: 2025-11-25T05:27:20.067Z
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: .cursor/rules/pinia-best-practices.mdc:0-0
Timestamp: 2025-11-25T05:27:20.067Z
Learning: Applies to src/renderer/src/stores/**/*.{vue,ts,tsx,js,jsx} : Keep Pinia stores focused on global state, not component-specific data

Applied to files:

  • .cursor/rules/vue-stack-guide.mdc
📚 Learning: 2025-11-25T05:27:26.656Z
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: .cursor/rules/project-structure.mdc:0-0
Timestamp: 2025-11-25T05:27:26.656Z
Learning: Applies to src/renderer/**/*.{vue,js,ts} : Renderer process code should be placed in `src/renderer` (Vue 3 application)

Applied to files:

  • .cursor/rules/vue-stack-guide.mdc
📚 Learning: 2025-11-25T05:28:04.454Z
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: .cursor/rules/vue-shadcn.mdc:0-0
Timestamp: 2025-11-25T05:28:04.454Z
Learning: Applies to src/renderer/**/composables/*.ts : Use VueUse for common composables and utility functions

Applied to files:

  • .cursor/rules/vue-stack-guide.mdc
📚 Learning: 2025-11-25T05:27:12.209Z
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: .cursor/rules/llm-agent-loop.mdc:0-0
Timestamp: 2025-11-25T05:27:12.209Z
Learning: Implement separation of concerns where `src/main/presenter/llmProviderPresenter/index.ts` manages the Agent loop and conversation history, while Provider files handle LLM API interactions, Provider-specific request/response formatting, tool definition conversion, and native vs non-native tool call mechanisms

Applied to files:

  • AGENTS.md
📚 Learning: 2025-11-25T05:26:24.867Z
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: .cursor/rules/electron-best-practices.mdc:0-0
Timestamp: 2025-11-25T05:26:24.867Z
Learning: Applies to {src/main/presenter/**/*.ts,src/renderer/**/*.ts} : Implement proper inter-process communication (IPC) patterns using Electron's ipcRenderer and ipcMain APIs

Applied to files:

  • AGENTS.md
  • CLAUDE.md
📚 Learning: 2025-11-25T05:28:20.513Z
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-11-25T05:28:20.513Z
Learning: Require Node ≥ 20.19 and pnpm ≥ 10.11 (pnpm only, not npm) as the project toolchain

Applied to files:

  • AGENTS.md
📚 Learning: 2025-11-25T05:28:20.513Z
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-11-25T05:28:20.513Z
Learning: Applies to src/main/**/*.ts : Electron main process code belongs in `src/main/` with presenters in `presenter/` (Window/Tab/Thread/Mcp/Config/LLMProvider) and `eventbus.ts` for app events

Applied to files:

  • AGENTS.md
📚 Learning: 2025-11-25T05:28:20.513Z
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-11-25T05:28:20.513Z
Learning: Applies to src/main/**/*.ts : Use the Presenter pattern in the main process for UI coordination

Applied to files:

  • CLAUDE.md
📚 Learning: 2025-11-25T05:26:11.312Z
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-25T05:26:11.312Z
Learning: Applies to src/renderer/**/*.ts : Use the `usePresenter.ts` composable for renderer-to-main IPC communication to call presenter methods directly

Applied to files:

  • CLAUDE.md
📚 Learning: 2025-11-25T05:26:11.312Z
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-25T05:26:11.312Z
Learning: Applies to src/main/presenter/**/*.ts : Organize core business logic into dedicated Presenter classes, with one presenter per functional domain

Applied to files:

  • CLAUDE.md
📚 Learning: 2025-11-25T05:26:43.510Z
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: .cursor/rules/i18n.mdc:0-0
Timestamp: 2025-11-25T05:26:43.510Z
Learning: Applies to src/renderer/src/**/*.{vue,ts,tsx} : All user-facing strings must use i18n keys with vue-i18n framework in the renderer

Applied to files:

  • CLAUDE.md
  • .cursor/rules/i18n.mdc
📚 Learning: 2025-11-25T05:28:04.454Z
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: .cursor/rules/vue-shadcn.mdc:0-0
Timestamp: 2025-11-25T05:28:04.454Z
Learning: Applies to src/renderer/**/*.{ts,tsx,vue} : Write concise, technical TypeScript code with accurate examples

Applied to files:

  • CLAUDE.md
📚 Learning: 2025-11-25T05:28:04.454Z
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: .cursor/rules/vue-shadcn.mdc:0-0
Timestamp: 2025-11-25T05:28:04.454Z
Learning: Applies to src/renderer/**/*.{ts,vue} : Use provide/inject for dependency injection when appropriate

Applied to files:

  • CLAUDE.md
📚 Learning: 2025-11-25T05:26:43.510Z
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: .cursor/rules/i18n.mdc:0-0
Timestamp: 2025-11-25T05:26:43.510Z
Learning: Applies to src/renderer/src/**/*.{vue,ts,tsx} : Avoid hardcoding user-facing text and ensure all user-visible text uses the i18n translation system

Applied to files:

  • CLAUDE.md
  • .cursor/rules/i18n.mdc
📚 Learning: 2025-11-25T05:26:43.510Z
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: .cursor/rules/i18n.mdc:0-0
Timestamp: 2025-11-25T05:26:43.510Z
Learning: Applies to src/renderer/src/i18n/**/*.json : Maintain consistent key-value structure across all language translation files (zh-CN, en-US, ko-KR, ru-RU, zh-HK, fr-FR, fa-IR)

Applied to files:

  • .cursor/rules/i18n.mdc
📚 Learning: 2025-11-25T05:26:11.312Z
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-25T05:26:11.312Z
Learning: Applies to src/renderer/**/*.vue : All user-facing strings must use i18n keys via vue-i18n for internationalization

Applied to files:

  • .cursor/rules/i18n.mdc
📚 Learning: 2025-11-25T05:28:20.513Z
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-11-25T05:28:20.513Z
Learning: Applies to src/renderer/src/**/*.{ts,tsx,vue} : All user-facing strings must use vue-i18n keys in `src/renderer/src/i18n`

Applied to files:

  • .cursor/rules/i18n.mdc
📚 Learning: 2025-11-25T05:26:43.510Z
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: .cursor/rules/i18n.mdc:0-0
Timestamp: 2025-11-25T05:26:43.510Z
Learning: Applies to src/renderer/src/**/*.{vue,ts,tsx} : Import and use useI18n() composable with the t() function to access translations in Vue components and TypeScript files

Applied to files:

  • .cursor/rules/i18n.mdc
📚 Learning: 2025-11-25T05:26:43.510Z
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: .cursor/rules/i18n.mdc:0-0
Timestamp: 2025-11-25T05:26:43.510Z
Learning: Applies to src/renderer/src/**/*.{vue,ts,tsx} : Use the dynamic locale.value property to switch languages at runtime

Applied to files:

  • .cursor/rules/i18n.mdc
📚 Learning: 2025-11-25T05:26:43.510Z
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: .cursor/rules/i18n.mdc:0-0
Timestamp: 2025-11-25T05:26:43.510Z
Learning: Applies to src/renderer/src/i18n/**/*.json : Translation key naming convention: use dot-separated hierarchical structure with lowercase letters and descriptive names (e.g., 'common.button.submit')

Applied to files:

  • .cursor/rules/i18n.mdc
📚 Learning: 2025-11-25T05:26:15.929Z
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: .cursor/rules/development-setup.mdc:0-0
Timestamp: 2025-11-25T05:26:15.929Z
Learning: Applies to **/*.{js,ts,jsx,tsx,mjs,cjs} : Write logs and comments in English

Applied to files:

  • .cursor/rules/i18n.mdc
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: build-check (x64)
🔇 Additional comments (9)
.cursor/rules/development-setup.mdc (4)

141-154: All referenced documentation files exist. Confirmed that docs/ARCHITECTURE.md, docs/FLOWS.md, docs/guides/code-navigation.md, and docs/guides/getting-started.md are present in the repository.


8-12: Requirements are accurately documented.

Node.js and pnpm version requirements in package.json match those specified in the documentation: Node.js ≥ 20.19.0 and pnpm ≥ 10.11.0. No changes needed.


1-5: The metadata and glob pattern configuration is intentional and appropriate.

The empty globs: field combined with alwaysApply: true is the correct pattern for this file. This differs from the other Cursor rules (i18n.mdc and vue-stack-guide.mdc), which use specific glob patterns with alwaysApply: false. Development setup guidance should be globally accessible regardless of file type or location, making the "always apply" approach the right choice. No changes needed.


24-83: All npm script commands listed in the documentation exist in package.json and their descriptions are accurate. No discrepancies found between the documented commands and the actual scripts available in the project.

.cursor/rules/i18n.mdc (2)

14-28: All 12 supported locales listed in the documentation are properly configured and present in the codebase. Each locale directory (da-DK, en-US, fa-IR, fr-FR, he-IL, ja-JP, ko-KR, pt-BR, ru-RU, zh-CN, zh-HK, zh-TW) contains 20 JSON translation files. The documentation is accurate.


30-68: Update the i18n file structure diagram to match actual supported locales.

The file structure diagram (lines 30-68) includes 11 locale directories, but the documented i18n translation file requirements specify only 7 supported locales: zh-CN, en-US, ko-KR, ru-RU, zh-HK, fr-FR, and fa-IR. Remove the unsupported locales from the diagram: ja-JP, zh-TW, pt-BR, and da-DK.

Likely an incorrect or invalid review comment.

CLAUDE.md (1)

192-196: Clear guidance directing to comprehensive SDD documentation.

The new section provides a good bridge to the detailed spec-driven-dev.md, with key principles accurately summarized. Placement after code standards and before IPC communication is logical. The link and principle list will help developers understand the methodology before diving into implementation details.

docs/spec-driven-dev.md (1)

97-117: All code patterns are correct and accurately documented.

Verification confirms that:

  • CONFIG_EVENTS.SETTING_CHANGED exists in src/main/events.ts and is properly exported
  • SendTarget.ALL_WINDOWS is defined as an enum in src/main/eventbus.ts with 100+ uses across presenters
  • usePresenter composable exists at src/renderer/src/composables/usePresenter.ts and matches the documented API
  • All four pattern examples (Presenter signatures, EventBus communication, component-presenter integration, Vue 3 component setup) align with actual codebase implementations

The patterns provide clear, actionable examples that developers can follow directly.

.cursor/rules/vue-stack-guide.mdc (1)

386-418: Fix IPC communication and event handling patterns to match actual Electron APIs.

The IPC example contains critical errors. The method name is incorrect—use getConversationList() instead of listConversations(). More importantly, the event handling pattern is fundamentally wrong. Events are not accessed via a rendererEvents object; instead, subscribe using window.electron.ipcRenderer.on() with specific event constants and clean up with removeListener().

Corrected IPC Communication Example
import { usePresenter } from '@/composables/usePresenter'

const presenter = usePresenter()

// Call main process methods
await presenter.agentPresenter.sendMessage(agentId, content)
const result = await presenter.sessionPresenter.getConversationList(page, pageSize)
Corrected Event Handling Example
import { CONVERSATION_EVENTS } from '@/events'
import { onUnmounted } from 'vue'

// Subscribe to events
const handleListUpdate = (conversations) => {
  updateConversationList(conversations)
}
window.electron.ipcRenderer.on(CONVERSATION_EVENTS.LIST_UPDATED, (_, conversations) => {
  handleListUpdate(conversations)
})

// Cleanup
onUnmounted(() => {
  window.electron.ipcRenderer.removeListener(CONVERSATION_EVENTS.LIST_UPDATED, handleListUpdate)
})
⛔ Skipped due to learnings
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: .cursor/rules/electron-best-practices.mdc:0-0
Timestamp: 2025-11-25T05:26:24.867Z
Learning: Applies to {src/main/presenter/**/*.ts,src/renderer/**/*.ts} : Implement proper inter-process communication (IPC) patterns using Electron's ipcRenderer and ipcMain APIs
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: .cursor/rules/vue-shadcn.mdc:0-0
Timestamp: 2025-11-25T05:28:04.454Z
Learning: Applies to src/renderer/**/*.{ts,tsx,vue} : Write concise, technical TypeScript code with accurate examples
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: .cursor/rules/vue-best-practices.mdc:0-0
Timestamp: 2025-11-25T05:27:45.545Z
Learning: Applies to src/renderer/src/**/*.{vue,ts,tsx,js,jsx} : Use the Composition API for better code organization and reusability in Vue.js applications
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-11-25T05:28:20.513Z
Learning: Applies to src/main/**/*.ts : Electron main process code belongs in `src/main/` with presenters in `presenter/` (Window/Tab/Thread/Mcp/Config/LLMProvider) and `eventbus.ts` for app events
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: .cursor/rules/vue-shadcn.mdc:0-0
Timestamp: 2025-11-25T05:28:04.454Z
Learning: Applies to src/renderer/**/*.vue : Use composition API and declarative programming patterns; avoid options API
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-11-25T05:28:20.513Z
Learning: Applies to src/renderer/**/*.{ts,tsx,vue} : Vue 3 app code in `src/renderer/src` should be organized into `components/`, `stores/`, `views/`, `i18n/`, `lib/` directories with shell UI in `src/renderer/shell/`
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: .cursor/rules/project-structure.mdc:0-0
Timestamp: 2025-11-25T05:27:26.656Z
Learning: Applies to src/renderer/**/*.{vue,js,ts} : Renderer process code should be placed in `src/renderer` (Vue 3 application)
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-25T05:26:11.312Z
Learning: Applies to src/renderer/**/*.vue : Ensure proper error handling and loading states in all UI components
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: .cursor/rules/vue-shadcn.mdc:0-0
Timestamp: 2025-11-25T05:28:04.454Z
Learning: Applies to src/renderer/**/*.{ts,vue} : Leverage ref, reactive, and computed for reactive state management
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-25T05:26:11.312Z
Learning: Applies to src/renderer/**/*.ts : Use the `usePresenter.ts` composable for renderer-to-main IPC communication to call presenter methods directly
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-11-25T05:28:20.513Z
Learning: Applies to src/main/**/*.ts : Use the Presenter pattern in the main process for UI coordination
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-25T05:26:11.312Z
Learning: Applies to src/main/**/*.ts : Use EventBus from `src/main/eventbus.ts` for main-to-renderer communication, broadcasting events via `mainWindow.webContents.send()`
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: .cursor/rules/electron-best-practices.mdc:0-0
Timestamp: 2025-11-25T05:26:24.867Z
Learning: Applies to src/main/**/*.ts : Use EventBus pattern for inter-process communication within the main process to decouple modules
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: .cursor/rules/llm-agent-loop.mdc:0-0
Timestamp: 2025-11-25T05:27:12.209Z
Learning: Applies to src/main/presenter/llmProviderPresenter/index.ts : In `src/main/presenter/llmProviderPresenter/index.ts`, listen for standardized events yielded by `coreStream` and handle them accordingly: buffer text content (`currentContent`), handle `tool_call_start/chunk/end` events by collecting tool details and calling `presenter.mcpPresenter.callTool`, send frontend events via `eventBus` with tool call status, format tool results for the next LLM call, and set `needContinueConversation = true`
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: .cursor/rules/llm-agent-loop.mdc:0-0
Timestamp: 2025-11-25T05:27:12.209Z
Learning: Implement separation of concerns where `src/main/presenter/llmProviderPresenter/index.ts` manages the Agent loop and conversation history, while Provider files handle LLM API interactions, Provider-specific request/response formatting, tool definition conversion, and native vs non-native tool call mechanisms
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-11-25T05:28:20.513Z
Learning: Applies to src/**/*.ts : Use EventBus for inter-process communication events
Learnt from: CR
Repo: ThinkInAIXYZ/deepchat PR: 0
File: .cursor/rules/llm-agent-loop.mdc:0-0
Timestamp: 2025-11-25T05:27:12.209Z
Learning: Applies to src/main/presenter/llmProviderPresenter/index.ts : In `src/main/presenter/llmProviderPresenter/index.ts`, handle `reasoning`, `text`, `image_data`, and `usage` events by processing and forwarding them through `STREAM_EVENTS.RESPONSE` events to the frontend

@zerob13 zerob13 merged commit f8a2c62 into dev Jan 5, 2026
2 checks passed
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.

2 participants