Jokul
0d55b10822
fix: Key Statistics 表格宽度拉满
2026-07-11 14:34:13 +08:00
Jokul
c68306b26b
feat: 标题栏和占位图使用 icon.svg 替代 JRD 文字
2026-07-11 14:22:07 +08:00
Jokul
d804e377a3
fix: 右键菜单删除项使用 common.delete i18n key
2026-07-11 00:33:21 +08:00
Jokul
260cbb36d0
fix: 右键删除国际化 + 移除连接卡片左键事件
...
- 修复删除确认弹窗使用正确的 i18n key (connection.deleteConfirm)
- 删除按钮使用 common.delete 而非不存在的 connection.delete
- 新增 switchTo i18n key (5 种语言)
- ConnectionCard 移除 @click 左键事件
- 右键菜单新增「切换到」选项 (已连接但非活跃时显示)
2026-07-11 00:30:47 +08:00
Jokul
b032c15164
feat: 连接卡片右键菜单 (连接/断开、编辑、复制、删除)
...
- ConnectionCard 移除悬浮操作按钮, 简化为纯展示+左键连接
- ConnectionList 新增右键上下文菜单 (Teleport to body)
- 菜单项: 连接/断开(按状态切换)、编辑、复制连接、删除
- 删除前确认弹窗, 支持点击外部/右键关闭菜单
2026-07-11 00:24:24 +08:00
Jokul
eda30250c6
refactor: 迁移至 electron-vite 官方推荐目录结构
...
- electron/* -> src/main/* (主进程)
- electron/preload.ts -> src/preload/index.ts (预加载)
- src/electron-api.d.ts -> src/preload/index.d.ts (类型声明)
- src/* -> src/renderer/src/* (渲染进程)
- src/index.html -> src/renderer/index.html
- electron.vite.config.ts 简化为自动入口检测 (零配置)
- tsconfig.app.json -> tsconfig.web.json, 更新 includes/paths
- 构建产物 dist-electron/ -> out/ (修复 main/preload 输出覆盖 bug)
- 更新 package.json main 字段 + electron-builder files
- 更新 .gitignore + eslint ignores
- 更新 AGENTS.md 架构文档
2026-07-10 23:46:34 +08:00
Jokul
bdcf4fe299
refactor: restructure project layout
...
- Move main process to electron/main/
- Move preload to electron/preload/
- Add shared types in electron/shared/
- Split redis-service into modular redis/ directory
- Flatten renderer to src/ (remove src/renderer/ nesting)
- Update electron.vite.config.ts paths
- Update tsconfig paths
- Output to electron-dist/
2026-07-04 21:12:50 +08:00
Jokul
687fea4018
fix: 更新所有图标为 JRD
...
- 任务栏图标使用 nativeImage
- Linux 使用 app.setIcon()
- TitleBar logo 改为 JRD
- MainArea placeholder 改为 JRD
2026-07-04 20:34:34 +08:00
Jokul
d3f09f0e87
fix: 默认语言改为中文
2026-07-04 20:22:36 +08:00
Jokul
7f2c753470
fix: 修复 preload 路径 (.mjs 而不是 .js)
...
- electron-vite v3 输出 .mjs 文件
- 更新 preload 路径为 index.mjs
- 这是 window.electronAPI undefined 的根本原因
2026-07-04 20:10:58 +08:00
Jokul
b9d64ed851
fix: register Element Plus icons globally
...
- Import and register all @element-plus/icons-vue
- Fixes icons showing as squares/rectangles
2026-07-04 19:54:34 +08:00
Jokul
4075f20c07
fix: test connection passing auth instead of password
...
- testConnection now maps auth -> password for Redis service
- fixes test connection failing even with correct credentials
2026-07-04 19:52:30 +08:00
Jokul
7c0cce3e64
feat(phase7): pattern search, health check, keyboard shortcuts
...
- KeyList: pattern input for Redis MATCH, local filter, Go button
- ConnectionStore: health check interval (5s ping), healthOk state
- StatusBar: health indicator (unstable = yellow pulse)
- RedisService: ping, isConnected methods
- Sidebar: Delete key (Del), deselect (Esc), refresh (F5)
- useKeyboard: expanded shortcut map
2026-07-04 19:39:22 +08:00
Jokul
0ac0436cfd
feat(phase6): test connection, keyboard shortcuts, import/export
...
- NewConnectionDialog: test connection button before save
- useKeyboard composable: Ctrl+N (new), Ctrl+R (refresh keys)
- ConnectionList: import/export JSON buttons
- ConnectionStore: testConnection, exportConnections, importConnections
- i18n support in Sidebar (keyboard shortcuts)
2026-07-04 19:35:03 +08:00
Jokul
6b9c6a1ed5
feat(phase5): stream editor, i18n, settings, key management
...
- StreamEditor: view/add/trim/delete entries with field management
- KeyDetail: TTL editor dialog, rename dialog, copy key name button
- i18n: English + Chinese locale system with composable
- SettingsView: theme selector, language switch, scan count, font size
- MainArea: added Settings tab
- RedisService: stream/rename/exists operations
- Preload: stream/rename/exists IPC channels
2026-07-04 18:26:51 +08:00
Jokul
4c66263477
feat(phase4e): batch delete with multi-select
...
- KeyList: multi-select mode with checkbox toggle
- Batch delete bar shows selected count + delete button
- RedisService: batchDelete using pipeline
- Preload: batchDelete IPC channel
2026-07-04 18:09:01 +08:00
Jokul
ff09f5dc03
feat(phase4): list/set/zset editors, CLI, slow log, DB selector
...
- ListEditor: pagination, push, edit, remove elements
- SetEditor: filter, add, remove members
- ZsetEditor: filter, add with score, remove members
- CliView: interactive terminal with command history
- SlowLogView: slow log table with time/duration/command
- DbSelector: dropdown to switch Redis databases (0-15)
- StatusBar integrated with DB selector
- MainArea: added CLI and Slow Log tabs
- KeyDetail: dispatch to List/Set/Zset editors
- RedisService: list/set/zset/slowlog/memory operations
- Preload: all new IPC channels typed
2026-07-04 18:07:33 +08:00
Jokul
272eb6b3af
feat(phase3): key browser MVP
...
- useKeyStore (Pinia): scan, tree view, key data cache, db switching
- KeyBrowser: split pane with KeyList + KeyDetail
- KeyList: SCAN pagination, filter, tree toggle, load more
- KeyDetail: type badge, TTL display, delete, type-based editor dispatch
- StringEditor: view/edit with JSON auto-format
- HashEditor: field table, add/edit/delete fields
- StatusView: INFO dashboard with stat cards + section grid
- MainArea: tab host (Status / Keys)
- RedisService: selectDb, dbSize
- Preload: selectDb, dbSize IPC channels
- App.vue updated with MainArea layout
2026-07-04 17:48:41 +08:00
Jokul
4f9398c65d
feat(phase2): connection management
...
- RedisService in main process (ioredis wrapper, execute, scan, hash ops)
- electron-store for connection/settings persistence
- safeStorage credential encrypt/decrypt
- IPC handlers for redis, storage, credential channels
- Preload API typed with all new channels
- useConnectionStore (Pinia) with connect/disconnect/save/delete
- ConnectionCard with 3D hover effect + status indicator
- ConnectionList with search filter
- NewConnectionDialog (create/edit connection form)
- Sidebar component
- StatusBar with live connection status + pulse animation
- App.vue updated with Sidebar layout
2026-07-04 17:45:19 +08:00
Jokul
7e5d61c099
feat(phase1): architecture skeleton
...
- Electron 33 main process with frameless window, IPC, win-state persistence
- Preload with contextBridge typed API (window, theme, dialog)
- Vue 3 + Pinia + Element Plus + Vue Router renderer
- Dark/light dual theme via CSS custom properties
- TitleBar with window controls + theme toggle
- StatusBar placeholder
- Design spec document
2026-07-04 17:21:00 +08:00