2026-04-05 14:39:32 +00:00
|
|
|
|
# 🦐 龙虾记忆同步系统 - 变更日志
|
|
|
|
|
|
|
|
|
|
|
|
所有重要的项目变更都会记录在此文件中。
|
|
|
|
|
|
|
|
|
|
|
|
## [1.0.0] - 2026-04-05
|
|
|
|
|
|
|
|
|
|
|
|
### 🎉 首次发布
|
|
|
|
|
|
|
|
|
|
|
|
完整版本,包含所有核心功能。
|
|
|
|
|
|
|
|
|
|
|
|
### ✨ 新增功能
|
|
|
|
|
|
|
|
|
|
|
|
#### 后端
|
|
|
|
|
|
- ✅ **ChunkedReadStream**:流式文件读取器,内存限制 256MB
|
|
|
|
|
|
- 8KB 分块读取
|
|
|
|
|
|
- 最大缓存限制 256MB
|
|
|
|
|
|
- 流式哈希计算
|
|
|
|
|
|
- 自动内存清理
|
|
|
|
|
|
|
|
|
|
|
|
- ✅ **SmartDiffComparator**:智能差异对比器
|
|
|
|
|
|
- 大文件只对比头尾
|
|
|
|
|
|
- 中间部分计算哈希
|
|
|
|
|
|
- 内存占用不超过 256MB
|
|
|
|
|
|
|
|
|
|
|
|
- ✅ **MemoryMonitor**:内存监控器
|
|
|
|
|
|
- 监控当前内存使用
|
|
|
|
|
|
- 检查内存限制
|
|
|
|
|
|
|
|
|
|
|
|
- ✅ **FileAttribute 模型**:文件属性表
|
|
|
|
|
|
- 支持键值对存储
|
|
|
|
|
|
- 支持嵌套属性(点号分隔的路径)
|
|
|
|
|
|
- 支持属性类型(string/integer/float/boolean/json)
|
|
|
|
|
|
- 支持属性分类和元数据
|
|
|
|
|
|
|
|
|
|
|
|
- ✅ **SyncHistory 模型**:同步操作历史表
|
|
|
|
|
|
- 记录操作人、操作时间
|
|
|
|
|
|
- 记录数据源(local/database/manual)
|
|
|
|
|
|
- 记录变动行数
|
|
|
|
|
|
- 记录执行时间
|
|
|
|
|
|
- 记录属性变更
|
|
|
|
|
|
|
|
|
|
|
|
- ✅ **LobsterMemory 模型**:龙虾记忆表
|
|
|
|
|
|
- 新增 `summary` 字段(语义摘要)
|
|
|
|
|
|
- 新增 `has_attributes` 字段
|
|
|
|
|
|
- 新增 `hard_conflict` 状态
|
|
|
|
|
|
- 优化数据库索引
|
|
|
|
|
|
|
|
|
|
|
|
- ✅ **IgnorePattern**:.lobsterignore 模式匹配器
|
|
|
|
|
|
- 支持正则表达式匹配(`re:.*\.log$`)
|
|
|
|
|
|
- 支持通配符匹配(`*.pyc`, `node_modules/`)
|
|
|
|
|
|
- 支持目录递归匹配
|
|
|
|
|
|
- 默认忽略规则(`.git`, `__pycache__`, `.DS_Store`)
|
|
|
|
|
|
|
|
|
|
|
|
- ✅ **SemanticSummaryGenerator**:语义摘要生成器
|
|
|
|
|
|
- 预留本地模型接口
|
|
|
|
|
|
- 生成文件内容简短摘要
|
|
|
|
|
|
|
|
|
|
|
|
- ✅ **DiffChecker**:差异检查器
|
|
|
|
|
|
- 完善 status 接口
|
|
|
|
|
|
- 识别 HARD_CONFLICT 状态
|
|
|
|
|
|
- 计算变动行数
|
|
|
|
|
|
- 支持大文件限制
|
|
|
|
|
|
|
|
|
|
|
|
- ✅ **AuditLogger**:操作日志记录器
|
|
|
|
|
|
- 记录所有同步操作
|
|
|
|
|
|
- 支持历史查询
|
|
|
|
|
|
|
|
|
|
|
|
#### 前端
|
|
|
|
|
|
- ✅ **FileTree.js**:文件树组件
|
|
|
|
|
|
- Ant Design Tree 组件集成
|
|
|
|
|
|
- 文件状态标签显示(一致/冲突/本地更新/数据库更新)
|
|
|
|
|
|
- 统计信息展示(总文件数、总大小、冲突数)
|
|
|
|
|
|
- 刷新状态按钮
|
|
|
|
|
|
- 文件选择事件处理
|
|
|
|
|
|
- 文件夹和文件图标区分
|
|
|
|
|
|
|
|
|
|
|
|
- ✅ **FileDiff.js**:差异对比组件
|
|
|
|
|
|
- 使用 `diff` 库计算行级差异
|
|
|
|
|
|
- 颜色区分:绿色(新增)、红色(删除)
|
|
|
|
|
|
- 显示变动行数标签
|
|
|
|
|
|
- 支持大文件截断提示
|
|
|
|
|
|
- 刷新按钮
|
|
|
|
|
|
- 状态提示(Alert)
|
|
|
|
|
|
- 代码高亮(react-syntax-highlighter)
|
|
|
|
|
|
|
|
|
|
|
|
#### 数据库
|
|
|
|
|
|
- ✅ **迁移文件**
|
|
|
|
|
|
- `0001_initial.py`:初始表结构
|
|
|
|
|
|
- `0002_add_summary_and_audit_fields.py`:添加语义摘要和审计字段
|
|
|
|
|
|
- `0003_add_file_attribute.py`:添加文件属性表
|
|
|
|
|
|
|
|
|
|
|
|
### 🔧 API 接口
|
|
|
|
|
|
|
|
|
|
|
|
- `GET /api/scan/` - 扫描本地文件
|
|
|
|
|
|
- `GET /api/tree/` - 获取文件树
|
|
|
|
|
|
- `GET /api/status/` - 检查同步状态(包含 HARD_CONFLICT)
|
|
|
|
|
|
- `GET /api/diff/` - 获取文件差异(支持分块读取)
|
|
|
|
|
|
- `POST /api/sync/db/` - 同步到数据库(生成语义摘要)
|
|
|
|
|
|
- `POST /api/sync/local/` - 同步到本地
|
|
|
|
|
|
- `GET /api/versions/` - 获取文件的所有版本
|
|
|
|
|
|
- `GET /api/stats/` - 获取统计信息
|
|
|
|
|
|
- `GET /api/history/` - 获取操作历史(包含变动行数和数据源)
|
|
|
|
|
|
- `GET /api/ignore/patterns/` - 获取 .lobsterignore 模式列表
|
|
|
|
|
|
- `POST /api/ignore/reload/` - 重新加载 .lobsterignore 模式
|
|
|
|
|
|
|
|
|
|
|
|
### 📦 依赖更新
|
|
|
|
|
|
|
|
|
|
|
|
#### 后端
|
|
|
|
|
|
- Django 4.x
|
|
|
|
|
|
- Django REST Framework
|
|
|
|
|
|
- PostgreSQL 15
|
|
|
|
|
|
- Python 3.11
|
|
|
|
|
|
|
|
|
|
|
|
#### 前端
|
|
|
|
|
|
- React 18
|
|
|
|
|
|
- Ant Design 5.x
|
|
|
|
|
|
- diff ^5.1.0
|
|
|
|
|
|
- react-syntax-highlighter ^15.5.0
|
|
|
|
|
|
- Axios
|
|
|
|
|
|
|
|
|
|
|
|
### 🚀 部署
|
|
|
|
|
|
|
|
|
|
|
|
- Docker + Docker Compose
|
|
|
|
|
|
- Nginx 反向代理
|
|
|
|
|
|
- Let's Encrypt SSL
|
|
|
|
|
|
- 数据库自动备份
|
|
|
|
|
|
|
|
|
|
|
|
### 📝 文档
|
|
|
|
|
|
|
|
|
|
|
|
- README.md:项目文档
|
|
|
|
|
|
- DEPLOY.md:详细部署文档
|
|
|
|
|
|
- CHANGELOG.md:变更日志
|
|
|
|
|
|
- .lobsterignore.example:示例忽略文件
|
|
|
|
|
|
|
|
|
|
|
|
### 🧪 测试
|
|
|
|
|
|
|
|
|
|
|
|
- `test_simple.py`:简化功能测试
|
|
|
|
|
|
- .lobsterignore 匹配测试
|
|
|
|
|
|
- 分块读取测试
|
|
|
|
|
|
- 变动行数计算测试
|
|
|
|
|
|
- 冲突判定测试
|
|
|
|
|
|
|
|
|
|
|
|
### 🎯 核心特性
|
|
|
|
|
|
|
|
|
|
|
|
- ✅ 分块流式处理(内存限制 256MB)
|
|
|
|
|
|
- ✅ .lobsterignore 支持(正则表达式 + 通配符)
|
|
|
|
|
|
- ✅ 智能差异对比(行级差异,颜色区分)
|
|
|
|
|
|
- ✅ 属性目录结构(嵌套属性键值对)
|
|
|
|
|
|
- ✅ 完整审计日志(操作人、数据源、变动行数、执行时间)
|
|
|
|
|
|
- ✅ 语义摘要(自动生成文件内容摘要)
|
|
|
|
|
|
- ✅ 冲突判定(识别 HARD_CONFLICT 状态)
|
|
|
|
|
|
- ✅ 丝滑前端(Ant Design 树形控件,点选-对比-同步流程)
|
|
|
|
|
|
|
|
|
|
|
|
### 📊 Git 提交记录
|
2026-04-05 12:43:24 +00:00
|
|
|
|
|
|
|
|
|
|
```
|
2026-04-05 14:39:32 +00:00
|
|
|
|
5eb24ed - docs: 更新文档(README.md 和 DEPLOY.md)
|
|
|
|
|
|
1b06593 - feat: 前端 - 接好 Ant Design 树形控件和差异对比组件
|
|
|
|
|
|
b130f7a - feat: 完成 SyncHistory 和 FileAttribute 的迁移
|
|
|
|
|
|
0cb271a - feat: 完善 ChunkedReadStream 逻辑(内存限制 256MB)
|
|
|
|
|
|
3529c36 - fix: 修复 .lobsterignore 和变动行数计算
|
|
|
|
|
|
479d679 - feat: 完成所有功能模块并添加测试
|
|
|
|
|
|
7992ff0 - feat: 更新 API 视图和序列化器
|
|
|
|
|
|
a016335 - feat: 完善核心功能模块
|
2026-04-05 12:43:24 +00:00
|
|
|
|
```
|
|
|
|
|
|
|
2026-04-05 14:39:32 +00:00
|
|
|
|
### 🎉 里程碑
|
2026-04-05 12:43:24 +00:00
|
|
|
|
|
2026-04-05 14:39:32 +00:00
|
|
|
|
- [x] 项目初始化
|
|
|
|
|
|
- [x] 后端核心功能完成
|
|
|
|
|
|
- [x] 前端核心功能完成
|
|
|
|
|
|
- [x] 部署配置完成
|
|
|
|
|
|
- [x] 分块流式处理完成
|
|
|
|
|
|
- [x] .lobsterignore 支持完成
|
|
|
|
|
|
- [x] 审计日志完成
|
|
|
|
|
|
- [x] 语义摘要完成
|
|
|
|
|
|
- [x] 冲突判定完成
|
|
|
|
|
|
- [x] 前端丝滑体验完成
|
|
|
|
|
|
- [x] 数据库迁移完成
|
|
|
|
|
|
- [x] 文档更新完成
|
|
|
|
|
|
- [x] 推送到 Git 仓库
|
2026-04-05 12:43:24 +00:00
|
|
|
|
|
2026-04-05 14:39:32 +00:00
|
|
|
|
### 🌟 致谢
|
2026-04-05 12:43:24 +00:00
|
|
|
|
|
2026-04-05 14:39:32 +00:00
|
|
|
|
感谢逍遥子的宝贵建议和指导!
|
2026-04-05 12:43:24 +00:00
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
2026-04-05 14:39:32 +00:00
|
|
|
|
**项目仓库**: http://10.2.0.100:8989/daotong/lobster-memory-sync.git
|
|
|
|
|
|
**维护者**: 道童
|
|
|
|
|
|
**版本**: 1.0.0
|
|
|
|
|
|
**发布日期**: 2026-04-05
|