Commit Graph

8 Commits

Author SHA1 Message Date
道童
1b06593938 feat: 前端 - 接好 Ant Design 树形控件和差异对比组件
前端更新内容:
1. FileTree.js
   - Ant Design Tree 组件集成
   - 文件状态标签显示(一致/冲突/本地更新/数据库更新)
   - 统计信息展示(总文件数、总大小、冲突数)
   - 刷新状态按钮
   - 文件选择事件处理

2. FileDiff.js
   - 丝滑的差异对比组件
   - 使用 diff 库计算行级差异
   - 颜色区分:绿色(新增)、红色(删除)
   - 显示变动行数标签
   - 支持大文件截断提示
   - 刷新按钮

3. package.json
   - 新增 diff 依赖(行级差异计算)
   - 新增 react-syntax-highlighter 依赖(代码高亮)

用户体验:
- 点选文件 → 自动加载差异
- 实时状态显示
- 一键同步按钮
- 流畅的动画效果

点选-对比-同步流程完整实现!
2026-04-05 14:21:47 +00:00
道童
b130f7a17d feat: 完成 SyncHistory 和 FileAttribute 的迁移
数据库迁移内容:
1. 新增 FileAttribute 表(文件属性)
   - 支持键值对存储
   - 支持嵌套属性(点号分隔的路径)
   - 支持属性类型(string/integer/float/boolean/json)
   - 支持属性分类和元数据

2. 更新 LobsterMemory 表
   - 新增 has_attributes 字段
   - 关联 FileAttribute

3. 更新 SyncHistory 表
   - 新增 attributes_changed 字段(属性变更记录)
   - 新增 is_attribute_sync 字段(属性同步标记)

属性目录结构逻辑:
- 使用点号分隔的键名(如 'author.name', 'metadata.tags')
- 支持属性继承和嵌套查询
- 支持属性分类和索引优化

已完成迁移文件:
- 0003_add_file_attribute.py
2026-04-05 14:21:00 +00:00
道童
0cb271aa4a feat: 完善 ChunkedReadStream 逻辑(内存限制 256MB)
新增内容:
1. ChunkedReadStream 类
   - 单次读取限制 8KB
   - 最大缓存限制 256MB
   - 流式哈希计算
   - 自动内存清理

2. SmartDiffComparator 类
   - 智能差异对比(内存限制版本)
   - 大文件只对比头尾
   - 中间部分计算哈希
   - 内存占用不超过 256MB

3. MemoryMonitor 类
   - 监控内存使用
   - 检查内存限制

确保大文件对比时不占用超过 256MB 的内存。
2026-04-05 14:20:23 +00:00
道童
3529c3647d fix: 修复 .lobsterignore 和变动行数计算
修复内容:
1. .lobsterignore 匹配
   - 修复目录匹配逻辑
   - 支持嵌套目录匹配(node_modules/, .git/, __pycache__/)
   - 正确处理目录下的文件

2. 变动行数计算
   - 修复空字符串处理
   - 空文件 -> 有内容正确计算
   - 有内容 -> 空文件正确计算

测试验证:
- test_simple.py 所有测试通过
- .lobsterignore 匹配正确
- 分块读取正常
- 变动行数计算准确
- 冲突判定逻辑完整(包含 HARD_CONFLICT)
2026-04-05 14:18:32 +00:00
道童
479d67923c feat: 完成所有功能模块并添加测试
完成内容:
1. 数据库迁移文件
   - 0001_initial.py: 初始表结构
   - 0002_add_summary_and_audit_fields.py: 添加语义摘要和审计字段
   - 新增 summary 字段
   - 新增 source, lines_changed 字段
   - 新增 hard_conflict 状态
   - 添加数据库索引优化查询

2. 功能测试脚本
   - test_services.py: 完整功能测试
   - 测试分块读取
   - 测试 .lobsterignore 匹配(含正则表达式)
   - 测试审计日志(包含变动行数和数据源)
   - 测试语义摘要生成
   - 测试冲突判定(包含 HARD_CONFLICT)
   - 测试变动行数计算

所有功能已完成并提交,代码注释清晰。
2026-04-05 14:17:31 +00:00
道童
7992ff0b89 feat: 更新 API 视图和序列化器
更新内容:
1. views.py
- 集成分块读取(所有文件操作强制使用 chunked=True)
- 集成语义摘要生成(SemanticSummaryGenerator)
- 记录变动行数(lines_changed)
- 记录数据源(source: local/database/manual)
- 完善 check_sync_status 支持 HARD_CONFLICT 状态
- get_file_diff 返回变动行数
- get_ignore_patterns 返回模式类型(glob/regex)

2. serializers.py
- 添加 status_display, source_display 字段
- 更新 LobsterMemorySerializer 包含 summary 字段
- 更新 SyncHistorySerializer 包含 lines_changed, source 字段

所有 API 接口已更新,支持完整功能。
2026-04-05 14:16:15 +00:00
道童
a0163356a6 feat: 完善核心功能模块
1. 分块与流式处理
- 所有文件读取使用 8KB 分块,避免大文件内存问题
- 实现流式哈希计算和流式文件读取
- 禁止一次性 .read() 大文件

2. .lobsterignore 支持
- 支持正则表达式匹配 (re:.*\.log$)
- 支持通配符匹配 (*.pyc, node_modules/)
- 默认过滤 .git, node_modules, .pyc, __pycache__

3. 审计日志 (Audit Log)
- 记录操作人、操作时间
- 记录数据源 (local/database/manual)
- 记录变动行数
- 记录执行时间

4. 语义摘要
- 新增 SemanticSummaryGenerator 类
- 预留本地模型接口
- 生成文件内容简短摘要

5. 冲突判定逻辑
- 完善 status 接口
- 识别 HARD_CONFLICT 状态
- 基于版本号和时间判定严重冲突

代码注释清晰,功能完整。
2026-04-05 14:15:08 +00:00
道童
4374379d3f feat: 龙虾记忆同步系统完整版本
功能特性:
- 文件树展示
- 差异对比
- 双向同步(本地 <-> 数据库)
- 版本历史追踪
- 统计信息展示

核心补丁:
1. 分块读取与流式传输(防止大文件内存飙升)
2. .lobsterignore 机制(排除临时文件)
3. 操作溯源(Audit Log,记录同步历史)

技术栈:
- 后端: Django + DRF + PostgreSQL
- 前端: React + Ant Design
- 部署: Docker + Docker Compose

项目已完整部署,可直接使用 docker-compose up -d 启动
2026-04-05 12:43:24 +00:00