Skip to content

Commit 969ca72

Browse files
committed
Merge feature/conv-middleware into main for v0.3.3
2 parents 566a645 + ce9b8ca commit 969ca72

4 files changed

Lines changed: 53 additions & 24 deletions

File tree

DEVLOG.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -244,3 +244,28 @@ New feature: conversation recording with a built-in conversation viewer. Records
244244

245245
- GUI release: `v0.3.2`
246246
- Embedded proxy: upstream `main` @ `b162b63` (post-`v0.3.1`)
247+
248+
## 2026-03-17 — v0.3.3 middleware refactor
249+
250+
### Summary
251+
252+
Refactored conversation recording from handler-level hooks to a single Hono middleware. This eliminates upstream merge conflicts when handler code changes, reducing fork maintenance from 4 modified files to 2 (1 new file + 2 lines in server.ts).
253+
254+
### Architecture change
255+
256+
- Replaced `conversation-log.ts` + 3 handler hooks with `conversation-middleware.ts`
257+
- Middleware intercepts requests/responses at the Hono layer, before/after handlers
258+
- Non-streaming: clones response and reads JSON
259+
- Streaming: uses `ReadableStream.tee()` to observe SSE chunks without affecting client delivery
260+
- Only `server.ts` modified (+2 lines: import + use), zero handler changes
261+
262+
### Why
263+
264+
- v0.3.2 handler hooks conflicted with upstream updates to the same files
265+
- Middleware approach means upstream can freely change handlers without affecting our conversation recording
266+
- Evaluated and rejected log-parsing approach (upstream logs truncate payloads to 400 chars, no full content)
267+
268+
### Reference release
269+
270+
- GUI release: `v0.3.3`
271+
- Embedded proxy: fork `conv-middleware` branch based on upstream `b162b63`

RELEASE_NOTES_TEMP.md

Lines changed: 26 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,37 @@
11
# What's New / 新功能
22

3-
## 💬 Conversation Recording / 对话记录
3+
## Conversation Recording / 对话记录
44

5-
• Record full request/response content to local JSON files (streaming auto-assembled) / 完整记录请求与 AI 回复到本地 JSON 文件(流式自动拼接)
6-
• Built-in conversation viewer with session sidebar and message panel / 内置对话浏览器,左栏会话列表 + 右栏消息面板
7-
• Auto-detect client type: Claude Code, Cursor, Continue, Cline, etc. / 自动识别客户端来源:Claude Code、Cursor、Continue、Cline 等
8-
• Session grouping by client + model with 15-min idle timeout / 按客户端+模型分组会话,15 分钟空闲自动断开
9-
• Sessions organized by date (Today / Yesterday / older dates) / 会话按日期归类(今天 / 昨天 / 更早日期)
10-
• Full-text search with matching text highlight / 全文搜索,匹配文本高亮显示
11-
• Multi-select sessions + batch delete / 多选会话 + 批量删除
12-
• Real-time: new entries appear instantly in open viewer / 实时推送:新对话即时出现在已打开的浏览器中
13-
• Theme and language sync with main window / 配色与语言跟随主窗口实时切换
14-
• Toggle in Settings > Service Config (off by default, requires service restart) / 在 设置 > 服务参数 中开关控制(默认关闭,需重启服务生效)
5+
Refactored to middleware-based architecture for better upstream compatibility.
6+
重构为中间件架构,更好地兼容上游更新。
157

16-
## 🚀 UX / 体验优化
8+
- Record full request/response content to local JSON files (streaming auto-assembled) / 完整记录请求与 AI 回复到本地 JSON 文件(流式自动拼接)
9+
- Built-in conversation viewer with session sidebar and message panel / 内置对话浏览器,左栏会话列表 + 右栏消息面板
10+
- Auto-detect client type: Claude Code, Cursor, Continue, Cline, etc. / 自动识别客户端来源
11+
- Session grouping by client + model with 15-min idle timeout / 按客户端+模型分组会话,15 分钟空闲自动断开
12+
- Sessions organized by date (Today / Yesterday / older dates) / 会话按日期归类
13+
- Full-text search with matching text highlight / 全文搜索,匹配文本高亮显示
14+
- Multi-select sessions + batch delete / 多选会话 + 批量删除
15+
- Real-time: new entries appear instantly in open viewer / 实时推送:新对话即时出现在已打开的浏览器中
16+
- Theme and language sync with main window / 配色与语言跟随主窗口实时切换
17+
- Toggle in Settings > Service Config (off by default, requires service restart) / 在设置 > 服务参数中开关控制(默认关闭,需重启服务生效)
1718

18-
• Reorder header buttons: Theme → Language → Conversations → Logs → Settings → About / 顶栏按钮重新排序:配色 → 语言 → 对话 → 日志 → 设置 → 关于
19-
• Fix settings checkbox alignment / 修复设置页面复选框对齐
19+
## Architecture Improvement / 架构改进
2020

21-
## ⬇️ Download / 下载
21+
- Replaced handler-level hooks with a single Hono middleware / 将分散在各 handler 中的 hook 替换为统一的 Hono 中间件
22+
- Only 2 lines added to upstream `server.ts` (import + use) / 上游 server.ts 仅增加 2 行
23+
- Zero handler modifications = zero conflict risk with upstream updates / handler 零修改 = 与上游更新零冲突风险
24+
25+
## Download / 下载
2226

2327
| Platform | File | Note |
2428
| -------- | ---- | ---- |
25-
| Windows (Installer) | Copilot.Proxy.GUI-0.3.2-setup.exe | **Recommended** / 推荐,supports lightweight update / 支持轻量更新 |
26-
| Windows (Portable) | Copilot.Proxy.GUI-0.3.2-portable.exe | No installation needed / 无需安装,双击即用 |
27-
| macOS (Apple Silicon) | Copilot.Proxy.GUI-0.3.2-arm64.dmg | M1/M2/M3/M4 Mac |
28-
| macOS (Intel) | Copilot.Proxy.GUI-0.3.2-x64.dmg | Intel Mac |
29+
| Windows (Installer) | Copilot.Proxy.GUI-0.3.3-setup.exe | **Recommended** / 推荐,supports lightweight update / 支持轻量更新 |
30+
| Windows (Portable) | Copilot.Proxy.GUI-0.3.3-portable.exe | No installation needed / 无需安装,双击即用 |
31+
| macOS (Apple Silicon) | Copilot.Proxy.GUI-0.3.3-arm64.dmg | M1/M2/M3/M4 Mac |
32+
| macOS (Intel) | Copilot.Proxy.GUI-0.3.3-x64.dmg | Intel Mac |
2933

30-
> macOS first launch / macOS 首次启动: Right-click the app Open click "Open" in the dialog. If blocked, go to System Settings Privacy & Security click "Open Anyway".
31-
> 右键点击应用 打开 在弹窗中点击"打开"。如被阻止,前往系统设置 隐私与安全性 点击"仍要打开"。
34+
> macOS first launch / macOS 首次启动: Right-click the app > Open > click "Open" in the dialog. If blocked, go to System Settings > Privacy & Security > click "Open Anyway".
35+
> 右键点击应用 > 打开 > 在弹窗中点击"打开"。如被阻止,前往系统设置 > 隐私与安全性 > 点击"仍要打开"。
3236
33-
Full Changelog: [v0.3.1...v0.3.2](https://github.com/kylefu8/copilot-proxy-gui/compare/v0.3.1...v0.3.2)
37+
Full Changelog: [v0.3.2...v0.3.3](https://github.com/kylefu8/copilot-proxy-gui/compare/v0.3.2...v0.3.3)

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "copilot-proxy-gui",
33
"private": true,
4-
"version": "0.3.2",
4+
"version": "0.3.3",
55
"description": "Desktop GUI for copilot-proxy — Electron + React + Vite",
66
"type": "module",
77
"main": "electron/main.cjs",

0 commit comments

Comments
 (0)