* 🐛 fix(ui): truncate long Bash command in tag with popover Add automatic truncation for Bash commands exceeding 200 characters in the tag display. When truncated, users can hover over the tag to view the full command in a popover. - Add MAX_TAG_LENGTH constant (200 chars) - Implement command truncation logic - Add Popover component for full command display on hover - Prevent UI overflow issues with long commands 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * ♻️ refactor(ui): reduce MAX_TAG_LENGTH to 100 for smaller screens Reduce the command truncation threshold from 200 to 100 characters to better support smaller screen sizes and improve readability. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * docs: remove emoji requirement from conventional commits Update commit message guidelines to use standard Conventional Commit format without emoji prefixes for better compatibility and consistency. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> --------- Co-authored-by: Claude <noreply@anthropic.com>
2.7 KiB
2.7 KiB
AI Assistant Guide
This file provides guidance to AI coding assistants when working with code in this repository. Adherence to these guidelines is crucial for maintaining code quality and consistency.
Guiding Principles (MUST FOLLOW)
- Keep it clear: Write code that is easy to read, maintain, and explain.
- Match the house style: Reuse existing patterns, naming, and conventions.
- Search smart: Prefer
ast-grepfor semantic queries; fall back torg/grepwhen needed. - Log centrally: Route all logging through
loggerServicewith the right context—noconsole.log. - Research via subagent: Lean on
subagentfor external docs, APIs, news, and references. - Always propose before executing: Before making any changes, clearly explain your planned approach and wait for explicit user approval to ensure alignment and prevent unwanted modifications.
- Write conventional commits: Commit small, focused changes using Conventional Commit messages (e.g.,
feat:,fix:,refactor:,docs:).
Development Commands
- Install:
yarn install- Install all project dependencies - Development:
yarn dev- Runs Electron app in development mode with hot reload - Debug:
yarn debug- Starts with debugging enabled, usechrome://inspectto attach debugger - Build Check:
yarn build:check- REQUIRED before commits (lint + test + typecheck)- If having i18n sort issues, run
yarn sync:i18nfirst to sync template - If having formatting issues, run
yarn formatfirst
- If having i18n sort issues, run
- Test:
yarn test- Run all tests (Vitest) across main and renderer processes - Single Test:
yarn test:main- Run tests for main process onlyyarn test:renderer- Run tests for renderer process only
- Lint:
yarn lint- Fix linting issues and run TypeScript type checking - Format:
yarn format- Auto-format code using Biome
Project Architecture
Electron Structure
- Main Process (
src/main/): Node.js backend with services (MCP, Knowledge, Storage, etc.) - Renderer Process (
src/renderer/): React UI with Redux state management - Preload Scripts (
src/preload/): Secure IPC bridge
Key Components
- AI Core (
src/renderer/src/aiCore/): Middleware pipeline for multiple AI providers. - Services (
src/main/services/): MCPService, KnowledgeService, WindowService, etc. - Build System: Electron-Vite with experimental rolldown-vite, yarn workspaces.
- State Management: Redux Toolkit (
src/renderer/src/store/) for predictable state.
Logging
import { loggerService } from '@logger'
const logger = loggerService.withContext('moduleName')
// Renderer: loggerService.initWindowSource('windowName') first
logger.info('message', CONTEXT)