Files
claude-relay-service/.gitignore
iRubbish 1ee71ffbc9 feat: 完善 API Keys 批量删除功能并修复搜索跨选择问题
## 主要改进

### 🔧 核心修复
- 修复搜索时勾选状态无法保存的问题
- 优化全选/取消全选逻辑,支持跨搜索结果保持选择状态
- 改进批量删除的用户体验
- 添加 Unicode 字符处理中间件,提升请求体解析稳定性

### 🎯 具体变更
- **路由修复**: 解决批量删除路由匹配问题,调整路由顺序
- **API客户端**: 修复 DELETE 方法支持请求体数据传输
- **前端逻辑**: 分离筛选和搜索的监听器,搜索时保持已选中状态
- **全选优化**: 取消全选时只移除当前页选中项,保留其他页面选择
- **Unicode处理**: 添加无效 UTF-16 代理对清理和错误处理机制
- **配置管理**: 将 .mcp.json 添加到 .gitignore,避免本地配置被提交

### 🚀 用户体验提升
- 支持跨搜索结果批量选择和删除
- 批量删除按钮显示选中数量
- 智能的全选状态管理
- 更好的 Unicode 字符处理容错性

### 🧪 测试验证
- 验证搜索切换时选择状态保持
- 确认批量删除功能正常工作
- 检查 Redis 数据清理完整性
- 测试 Unicode 字符处理稳定性

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-19 09:59:54 +08:00

243 lines
2.8 KiB
Plaintext

# Dependencies
node_modules/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
# Environment variables
.env
.env.*
!.env.example
# Claude specific directories
.claude/
# MCP configuration (local only)
.mcp.json
# Data directory (contains sensitive information)
data/
!data/.gitkeep
# Redis data directory
redis_data/
# Logs directory
logs/
*.log
startup.log
app.log
# Configuration files (may contain sensitive data)
config/config.js
!config/config.example.js
# Runtime data
pids/
*.pid
*.seed
*.pid.lock
# Coverage directory used by tools like istanbul
coverage/
*.lcov
# nyc test coverage
.nyc_output
# Grunt intermediate storage
.grunt
# Bower dependency directory
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons
build/Release
# Dependency directories
jspm_packages/
# TypeScript cache
*.tsbuildinfo
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Optional stylelint cache
.stylelintcache
# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# parcel-bundler cache
.cache
.parcel-cache
# Next.js build output
.next
# Nuxt.js build / generate output
.nuxt
# Gatsby files
.cache/
public
# Vuepress build output
.vuepress/dist
# Serverless directories
.serverless/
# FuseBox cache
.fusebox/
# DynamoDB Local files
.dynamodb/
# TernJS port file
.tern-port
# Stores VSCode versions used for testing VSCode extensions
.vscode-test
# Temporary folders
tmp/
temp/
.tmp/
.temp/
# OS generated files
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
desktop.ini
# IDE files
.vscode/
.idea/
*.swp
*.swo
*~
# Backup files
*.bak
*.backup
*.backup.*
.env.backup.*
config.js.backup.*
*~
# Archive files (unless specifically needed)
*.7z
*.dmg
*.gz
*.iso
*.jar
*.rar
*.tar
*.zip
# Application specific files
# JWT secrets and encryption keys
secrets/
keys/
certs/
# Database dumps
*.sql
*.db
*.sqlite
*.sqlite3
# Redis dumps
dump.rdb
appendonly.aof
# PM2 files
ecosystem.config.js
.pm2/
# Docker files (keep main ones, ignore volumes)
.docker/
docker-volumes/
# Monitoring data
prometheus/
grafana/
# Test files and coverage
test-results/
coverage/
.nyc_output/
# Documentation build
docs/build/
docs/dist/
# Deployment files
deploy/
.deploy/
# Package lock files (choose one)
# Uncomment the one you DON'T want to track
# package-lock.json
# yarn.lock
# pnpm-lock.yaml
# Local development files
.local/
local/
# Debug files
debug.log
error.log
access.log
# Session files
sessions/
# Upload directories
uploads/
files/
# Cache directories
.cache/
cache/
# Build artifacts
build/
dist/
out/
# Runtime files
*.sock
# Old admin interface (deprecated)
web/admin/
web/apiStats/
# Admin SPA build files
web/admin-spa/dist/