feat(desktop): support manual /compact context compaction - #3744
feat(desktop): support manual /compact context compaction#3744betterkite wants to merge 1 commit into
Conversation
|
| Filename | Overview |
|---|---|
| apps/desktop/src/renderer/features/cc-agent/CCAgentSessionView.tsx | 新增两条发送路径共享的 /compact 拦截、能力与远程门禁,以及会话级防重入处理;此前反馈的载荷丢失和 SSH 错投均已修复。 |
| apps/desktop/src/renderer/lib/slashCommands.ts | 新增仅匹配独立 /compact(允许首尾空白及大小写差异)的判定函数,带参数文本仍走普通发送路径。 |
| apps/desktop/src/renderer/tests/manualCompactCommand.test.ts | 覆盖精确命令识别、附加载荷回退、SSH 门禁和 NewMaker 首条消息拦截。 |
| packages/maker-core/src/agents/pi/tests/pi-compact.test.ts | 补充 Pi 不向共享命令面板发布 compact 内置命令的回归断言。 |
| packages/maker-core/src/agents/pi/index.ts | 仅调整类型导入格式,不改变运行时行为。 |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[用户发送消息] --> B{精确 /compact?}
B -- 否 --> C[普通发送路径]
B -- 是 --> D{存在附件或引用载荷?}
D -- 是 --> C
D -- 否 --> E{压缩通道可用?}
E -- 否 --> F[显示不可用提示]
E -- 是 --> G{SSH 远程或 Pi 正在运行?}
G -- 是 --> H[显示阻止原因]
G -- 否 --> I{Claude Code 或 Pi}
I -- Claude Code --> J[输入协调器 compact]
I -- Pi --> K[compact-session]
Reviews (4): Last reviewed commit: "feat(desktop): support manual /compact c..." | Re-trigger Greptile
|
@betterkite 👋 这个 PR 还有 2 条 review conversation 没 resolve(apps/desktop/src/renderer/features/cc-agent/CCAgentSessionView.tsx),auto-review 因此暂时跳过、没法继续审查 / 合并。 如果你已经按评论改完或回应了,请到对应 thread 上点 Resolve conversation;全部 resolve 后,下一轮 auto-review 会自动重新审查这个 PR。 |
|
这条 PR 会让输入 |
|
命中 UI 路径(apps/desktop/src/renderer/features/cc-agent/CCAgentSessionView.tsx / apps/desktop/src/renderer/lib/slashCommands.ts)但 description 未附界面效果证据——建议补充改动后效果:截图/录屏,或改动后界面的 HTML 页面(```html 代码块、.html 附件或在线预览链接),便于确认界面符合 DESIGN.md 设计规范 |
a75681b to
85a98ff
Compare
|
收到。关于界面效果证据的补充说明:本 PR 无新增视觉样式——未新增任何组件、颜色、字号或圆角;用户可见变化仅在交互/文案层(精确 |
|
Windows unit tests (1/2) 失败定性(按仓库 CI 跟进流程,未改代码,只记录证据): 失败的 5 项用例全部不在本 PR 触碰的文件里(本 PR 只改 renderer 会话视图 + maker-core pi + i18n,共 11 个文件):
环境性证据:
我没有上游仓库的 admin 权限,无法重跑该 job。请维护者重跑 |
85a98ff to
5ab6e75
Compare
MagicLizi
left a comment
There was a problem hiding this comment.
审查发现 P1 ×2,请在当前 head 上修复后再请求 review。
-
[P1] apps/desktop/src/renderer/features/cc-agent/CCAgentSessionView.tsx:4036 — NewMaker 首条
/compact不走拦截。草稿 pending 只调用maybeDispatchDesktopSlashCommand(compact是agent-builtin,handled=false),再sendMessage(pendingText),从不调用maybeCompactSession。拦截只挂在handleSend。从新建任务发出的精确/compact仍当普通 prompt;Pi 会经escapeLeadingSlashCommand变成字面/compact写入首条用户消息。请让 pending 消费与handleSend共用同一拦截。验证:新建 Pi 任务输入/compact发送,不得出现字面/compact用户消息。 -
[P1] packages/maker-core/src/agents/pi/commands.ts:3 — Pi 把
compact写进共享listAgentCommands白名单,桌面/手机命令面板都会展示;真正拦截只存在于桌面handleSend。Mobile 发送路径没有对等拦截,会把该命令当普通 prompt。这比原生 Pi 更难用,也与 Description 写的 Mobile: Not affected 不符。请所有发送面都拦截并走compactSessionRPC,或在未适配面不要暴露 Picompact目录项。
这些问题已在当前 head 的后续 commit 中修复(格式门/安全门已通过),自动 dismiss 旧的 CHANGES_REQUESTED 以解除合并阻塞。
|
@betterkite 👋 这个 PR 现在在等维护者确认,确认之前流程不会合并它 —— 不是卡住了,也不是在等你再改一版(你推的改动流程都读到了,判的就是最新一版代码)。
这条是流程自动发的状态提醒(同一版代码只发一次),不用回复。 |
d274ef8 to
37ba0f2
Compare
|
两条新 P1 已在 head 1. NewMaker 首条 /compact 不走拦截 2. Pi compact 目录项在未适配面暴露 容器内验证(run 65a53419):聚焦单测(含 newMakerOrcaCreateOrder / manualCompactCommand / sessionAgentSwitchRemoteRouting / pi-compact)、maker-core 严格 tsc(index.ts + md-raw 环境)、mobile typecheck、DCO 全部通过。 |
|
@betterkite 👋 这个 PR 现在在等维护者确认,确认之前流程不会合并它 —— 不是卡住了,也不是在等你再改一版(你推的改动流程都读到了,判的就是最新一版代码)。
这条是流程自动发的状态提醒(同一版代码只发一次),不用回复。 |
|
@betterkite 👋 这个 PR 目前与 请在本地 merge 最新的 |
在 SessionView 的发送路径上精确拦截 /compact 控制指令,复用既有手动压缩 通道:claude-code 走输入协调器 maker:input:compact,pi 走能力感知的 compact-session 通道。codex 及不支持压缩的场景给出明确提示,不静默吞掉 指令;pi 回合运行中与 SSH 远程会话分别给出阻塞/不可用提示。NewMaker 首条 pending 消费路径与 handleSend 共用同一拦截;不在共享面板暴露 pi compact 目录项(移动端发送面未适配)。补桌面回归测试与五语言文案。 Closes makecindy#3711 Signed-off-by: betterkite <1240167669@qq.com>
37ba0f2 to
f359b21
Compare
这次改了什么
摘要
在 SessionView 的两条发送路径(NewMaker 首条 pending 消费与 handleSend)精确拦截 /compact 控制指令,复用既有手动压缩通道:claude-code 走输入协调器 maker:input:compact,pi 走能力感知 compact-session 通道;codex、SSH 远程及不支持场景给出明确提示。不在共享命令面板暴露 pi compact 目录项(移动端发送面未适配)。补桌面回归测试与五语言文案。
变更类型
feat新功能fix缺陷修复refactor/perf重构或性能优化docs/test/chore文档、测试或工程维护范围
Remote and mobile adaptation
UI 变化
无新增视觉样式:未新增任何组件、颜色、字号或圆角。用户可见变化仅为交互/文案层——
/compact命令入口复用既有 composer 命令解析与命令面板交互,全部反馈提示复用既有 toast 组件,文案走既有 i18n 通道。DESIGN.md§4 (Component Stylings) 与 §7 (Do's and Don'ts)——本 PR 复用既有 toast / 命令面板组件,不引入新组件或新视觉样式,不新增色彩、圆角、阴影与字重;§7 的 Don'ts(无渐变、无装饰动画、≤150ms 功能性状态过渡)对新增提示同样适用。怎么验证的
自动验证
手工验证
Not run.
未执行的验证
风险
风险分类
影响与回滚
提交前检查
git commit -s,见 DCO)