Skip to content
Open

M004 #27

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
6ba4871
Merge pull request #26 from MoDa-Browser/dev
MoDa-Browser Apr 17, 2026
989ffad
feat(M004): 扩展IPC模块 - 添加消息优先级、TTL、广播通道、安全通信增强
MoDa-Browser Apr 17, 2026
ddd3372
feat(M004): 添加零拷贝消息类型和通道管理器
MoDa-Browser Apr 17, 2026
c4a0142
test(M004): 添加IPC模块单元测试
MoDa-Browser Apr 17, 2026
fa3989d
docs(M004): 更新开发日志
MoDa-Browser Apr 17, 2026
7c8598d
fix(M004): 修复通道管理器错误处理和会话令牌验证漏洞
MoDa-Browser Apr 17, 2026
6a4a060
fix(M004): 修复BroadcastChannel广播逻辑错误和add_receiver返回类型
MoDa-Browser Apr 17, 2026
684da5c
fix(M004): 修复generate_session_token中的unwrap调用,改用安全的错误处理
MoDa-Browser Apr 17, 2026
f6f0b3f
fix(M004): 改进receive_with_timeout通道断开时的错误信息
MoDa-Browser Apr 17, 2026
00083d8
fix(M004): 修复get_receiver_count方法中的unwrap调用
MoDa-Browser Apr 17, 2026
66ce973
fix(M004): 将连接劫持检测的时间阈值改为可配置参数
MoDa-Browser Apr 17, 2026
a1be48b
fix(M004): 修复签名验证逻辑,将 nonce 与签名一起存储和传输
MoDa-Browser Apr 17, 2026
018a259
fix(M004): 在 validate_message 中添加 max_message_age_seconds 检查
MoDa-Browser Apr 17, 2026
68b0d1e
fix(M004): 改进锁中毒错误信息和签名验证逻辑
MoDa-Browser Apr 17, 2026
5f2d45d
fix(M004): 为 ZeroCopyMessage 添加序列化支持
MoDa-Browser Apr 17, 2026
6f4dfe3
chore(M004): 格式化代码
MoDa-Browser Apr 17, 2026
38a5ce8
fix(M004): 为 IpcChannel 添加 Clone trait 实现
MoDa-Browser Apr 17, 2026
23f253e
fix(M004): 删除未使用的 message_signatures 字段
MoDa-Browser Apr 17, 2026
b3bcbd0
fix(M004): 修复广播通道消息过期检查和签名算法安全风险
MoDa-Browser Apr 17, 2026
9dcbc91
style(ipc): 移除多余空行并统一代码格式
MoDa-Browser Apr 17, 2026
40b5f06
refactor(security): 提取消息年龄检查逻辑到独立方法并修复加密标签长度
MoDa-Browser Apr 17, 2026
add12dc
perf(ipc): 优化广播消息时的克隆操作
MoDa-Browser Apr 17, 2026
5fad7b7
fix(ipc): 正确处理系统时间错误并添加时间错误类型
MoDa-Browser Apr 17, 2026
4e217b0
refactor(ipc): 改进时间错误处理并重构过期检查逻辑
MoDa-Browser Apr 17, 2026
1a14c12
fix(ipc): 使用checked_add防止时间戳整数溢出
MoDa-Browser Apr 17, 2026
767db49
feat(security): 使用HKDF派生独立的加密和签名密钥
MoDa-Browser Apr 17, 2026
51eecc6
refactor(ipc): 使用 #[derive(Default)] 替代手动实现
MoDa-Browser Apr 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
106 changes: 106 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

37 changes: 37 additions & 0 deletions docs/compass/MoDa-Browser-dev.md
Original file line number Diff line number Diff line change
Expand Up @@ -811,4 +811,41 @@ ctest --output-on-failure

---

### 2026年4月17日 - M004 开发日志

**今日工作:**

1. **M004 进程间通信机制开发**
- 评估现有IPC模块实现
- 扩展IPC架构:添加了消息优先级、TTL、消息类型等功能
- 实现了异步通道和广播通道支持
- 增强安全通信:添加了能力验证、会话令牌和防劫持机制
- 实现零拷贝消息传输优化(使用 `bytes::Bytes`)
- 添加通道管理器(ChannelManager)用于管理多个通道

2. **技术实现细节**
- 消息优先级:Low, Normal, High, Critical
- 消息类型:Request, Response, Event, Command, Heartbeat
- 消息TTL支持,防止过期消息被处理
- 安全通信:支持AES-256-GCM加密、消息签名和验证
- 防劫持:会话令牌验证、时间戳检查
- 通道管理器:支持创建、删除、列出通道

3. **测试覆盖**
- 添加了完整的单元测试
- 测试覆盖:消息创建、通道操作、广播、通道管理、超时接收等

**技术要点:**
- 使用 `bytes::Bytes` 实现零拷贝传输,减少内存分配
- 使用 `Arc<RwLock<>>` 实现线程安全的通道管理
- 安全模块使用 `ring` crate 提供加密和签名功能
- 消息序列化使用 `serde` 和 `serde_json`

**下一步计划:**
- 集成测试和性能基准测试
- 更新IPC模块文档
- 开始M005任务(渲染进程生命周期管理)

---

**让我们开始构建未来!** 🚀
4 changes: 4 additions & 0 deletions src/ipc/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,7 @@ bytes = "1.5"
uuid = { version = "1.6", features = ["v4"] }
bincode = "1.3"
ring = "0.17"
hex = "0.4"
hmac = "0.12"
sha2 = "0.10"
hkdf = "0.12"
Loading
Loading