准备开始追踪。

模块 · zh-CN

按下回车之后:一次 LLM 回合如何穿过 dsh-tui-pi 的六块界面

跟着一个回合的事件流,看思考面板、子代理、页脚计数器、DCP 压缩和提问面板如何接力协作。

事实阶梯

先说人话,再把事实讲到底。

把一次回合想象成餐厅里的一道菜:你下单(回车),厨师边做边亮出小灯牌(思考/工具面板),忙不过来就喊帮厨(子代理),墙上黑板实时记着用量(页脚),仓库快满了就按规矩清货架(DCP),缺关键配料时服务员会回来问你(提问面板)。

故事语法

模块契约

入口

你在输入框按下回车

输出

最终回答渲染进记录

答案回流为工具结果

拒答信封回落

源码锚点

/Users/fliu56/github/dsh-tui-pi/src/session.ts/Users/fliu56/github/dsh-tui-pi/src/footer.ts/Users/fliu56/github/dsh-tui-pi/src/session.ts/Users/fliu56/github/dsh-tui-pi/src/activity.ts/Users/fliu56/github/dsh-tui-pi/ARCHITECTURE.md/Users/fliu56/github/dsh-tui-pi/src/subagent-policy.ts/Users/fliu56/github/dsh-dcp/README.md/Users/fliu56/github/dsh-tui-pi/README.md/Users/fliu56/github/dsh-tui-pi/src/session.ts/Users/fliu56/github/dsh-tui-pi/README.md
追踪模式

跟着一个对象走完整条链路

准备开始追踪。

01

回合开始前:规则早已装填

主代理会话创建时读取一次 APPEND_SYSTEM.md 并缓存;用户按下回车后请求才真正出发。

ev-append-read-onceev-append-seedev-append-scopeev-legacy-stripanalogy-restaurant

参与者

你在输入框按下回车

回合的唯一入口:这条消息连同系统提示一起发往当前 provider/model 路由。

ev-footer-stats
带上缓存的常驻规则→ ~/.dsh/APPEND_SYSTEM.md(已缓存)

存储

~/.dsh/APPEND_SYSTEM.md(已缓存)

主代理会话创建时读取一次并缓存;缺失则首次从模板播种,已有文件永不被整体覆盖。编辑只对下一个会话生效。

ev-append-read-onceev-append-seed
只进主 agent 的层→ 作用域:仅主代理

决策

作用域:仅主代理

该文件注册在主 agent 自己的 prompt 层,子代理的作用域从不合并它——『只派活不动手』这类规则不会传染给孩子。

ev-append-scope
组装完成,发送→ 请求发出

事件

请求发出

消息进入模型路由,流式响应开始返回,事件流点亮后续各块界面。

ev-footer-stats
场景内证据

这一节的结论依据

默认显示本节依据;播放时会聚焦当前步骤对应的来源。

已验证APPEND_SYSTEM 创建时读一次并缓存

核心依据src/session.ts:40-46 及 commit 44cd112:非逐请求热加载,编辑对下一会话生效。

支持结论~/.dsh/APPEND_SYSTEM.md(已缓存)

本地来源/Users/fliu56/github/dsh-tui-pi/src/session.ts
查看完整证据记录
已验证播种一次、不覆盖用户内容、todo 块幂等

核心依据src/append-system.ts:99-114:缺失时自模板播种;标记块幂等维护。

支持结论~/.dsh/APPEND_SYSTEM.md(已缓存)

本地来源/Users/fliu56/github/dsh-tui-pi/src/append-system.ts
查看完整证据记录
已验证作用域仅主代理

核心依据src/session.ts:34-46 installAppendSystem 注册于主 agent scoped context,子代理不合并。

支持结论作用域:仅主代理

本地来源/Users/fliu56/github/dsh-tui-pi/src/session.ts
查看完整证据记录
已验证旧 ~/.dsh/AGENTS.md 块一次性剥离

核心依据ARCHITECTURE.md:245-246 启动时迁移剥离,避免重复投递。

本地来源/Users/fliu56/github/dsh-tui-pi/ARCHITECTURE.md
查看完整证据记录
类比餐厅帮厨类比

核心依据仅建立直觉:子代理≈帮厨、页脚≈黑板记账。不代表实现结构。

这是教学类比或跨来源归纳,没有外部定位链接。

查看完整证据记录
02

进行时:固定面板原位刷新

流式思考和工具调用各占一个固定面板,事件覆盖式刷新;聊天记录保持干净。

ev-panel-oneev-panel-heightev-tail-limitsev-spawn-tools

处理

ThinkPanel(唯一一个)

整个运行期只有一个思考面板,新事件原地覆盖旧内容;没有活动时占零行、自动隐藏。

ev-panel-one
高度由配置决定→ dsh-tui.panelHeight

处理

ToolPanel(唯一一个)

工具调用同理:一个面板原位刷新,完成后消失而不是堆进聊天记录。

ev-panel-one
同一套配置→ dsh-tui.panelHeight
委派工具例外→ 委派工具绕行

决策

dsh-tui.panelHeight

默认 1:一行无边框;5/7/10 画盒子且正文只有 N−1 行;all 打全文——流式思考留 200 行尾巴,落定工具结果最多 2000 行。

ev-panel-heightev-tail-limits

决策

委派工具绕行

use_agent / subagent / workflow / ralph 这四个委派工具从不打开工具块——它们的可见产物是孩子,显示在编辑器下方的运行行里。

ev-spawn-tools
场景内证据

这一节的结论依据

默认显示本节依据;播放时会聚焦当前步骤对应的来源。

已验证一类一面、原位刷新、空即隐藏

核心依据src/activity.ts:397-403 单 ThinkPanel/ToolPanel 原位更新,空面板零行隐藏。

支持结论ThinkPanel(唯一一个)ToolPanel(唯一一个)

本地来源/Users/fliu56/github/dsh-tui-pi/src/activity.ts
查看完整证据记录
已验证panelHeight 默认 1,盒高 N 显 N−1 行正文

核心依据src/activity.ts:358 盒子总高含标题行。

支持结论dsh-tui.panelHeight

本地来源/Users/fliu56/github/dsh-tui-pi/src/activity.ts
查看完整证据记录
已验证all 尾巴上限:流式 200 行 / 工具结果 2000 行

核心依据src/activity.ts:63 与 :69 分别定义两类尾部行数上限。

支持结论dsh-tui.panelHeight

本地来源/Users/fliu56/github/dsh-tui-pi/src/activity.ts
查看完整证据记录
已验证委派工具不开工具块

核心依据src/subagent-policy.ts:41 委派类工具被排除在工具块渲染外。

支持结论委派工具绕行

本地来源/Users/fliu56/github/dsh-tui-pi/src/subagent-policy.ts
查看完整证据记录
03

分身:每个孩子一行状态

spawn 与 fork 产生的委派子会话被统一追踪,折叠成一行行状态条,可用 Ctrl+G 深入查看甚至中途改指令。

ev-child-metaev-value-gateev-fork-resumeev-viewerev-steerev-maxagentsev-maxrounds

处理

childSessionMeta 打标

显式 spawn 和进程内 fork 都经同一入口创建,写入 origin:'subagent' + delegationDepth 预算,头部发现靠这对标记认领。

ev-child-meta
标记接受预算校验→ 按值把关,不看字段有无

决策

按值把关,不看字段有无

jsonl 恢复会给每个头部补上 delegationDepth:0,所以门槛是预算 >0;Session.fork 的普通对话分支没有预算,不上板、仍可经 /resume 恢复。

ev-value-gateev-fork-resume
上榜孩子渲染成行→ 编辑器下方状态行

存储

编辑器下方状态行

每行:转圈+名字、重试 ↻N≤M、当前上下文占用 X/Y(不是累计花费!)、轮次 round N/M、耗时,以及策略注入时的 ⚡ 标记。

ev-viewerev-maxrounds
Ctrl+G 下钻→ Ctrl+G 查看器
受两帽约束→ 两顶帽子:maxAgents=4 · maxRounds=75

参与者

Ctrl+G 查看器

80% 宽选择器(运行中优先,再列最近结束的 5 个);Enter 进入约每秒刷新 3 次的实况转录,可发 steer:运行中→下一步边界注入,空闲→排队为下一回合,已结束→拒绝。

ev-viewerev-steer

决策

两顶帽子:maxAgents=4 · maxRounds=75

超 maxAgents 大致拒新(并发突发可短暂超出,有兜底清理);到 maxRounds 只注入一条可见的 ⚡ 收尾指令,永不强制停止——是否收工取决于模型听话。

ev-maxagentsev-maxrounds
场景内证据

这一节的结论依据

默认显示本节依据;播放时会聚焦当前步骤对应的来源。

已验证childSessionMeta 双标记

核心依据ARCHITECTURE.md:272-274 spawn 与 fork 均写 origin:'subagent' + delegationDepth 预算。

支持结论childSessionMeta 打标

本地来源/Users/fliu56/github/dsh-tui-pi/ARCHITECTURE.md
查看完整证据记录
已验证jsonl 恢复读出 delegationDepth:0 → 按值把关

核心依据持久化恢复会补 materialise delegationDepth:0,故门槛须为预算 >0(ARCHITECTURE.md §Bridge 及对应实现)。

支持结论按值把关,不看字段有无

本地来源/Users/fliu56/github/dsh-tui-pi/ARCHITECTURE.md
查看完整证据记录
已验证fork 对话不上板、可 /resume

核心依据src/sessions.ts:609-611 isResumableSessionHeader 过滤恰排除委派子会话。

支持结论按值把关,不看字段有无

本地来源/Users/fliu56/github/dsh-tui-pi/src/sessions.ts
查看完整证据记录
已验证Ctrl+G 选择器与实况查看器参数

核心依据src/subagent-viewer.ts:57-59,850:80% 宽、5 个已落定上限、约 3 次/秒刷新。

支持结论编辑器下方状态行Ctrl+G 查看器

本地来源/Users/fliu56/github/dsh-tui-pi/src/subagent-viewer.ts
查看完整证据记录
已验证steer 三态路由

核心依据test/subagent-viewer.test.mjs:268-275:running→步骤边界、idle→排队、ended→拒绝。

支持结论Ctrl+G 查看器

本地来源/Users/fliu56/github/dsh-tui-pi/test/subagent-viewer.test.mjs
查看完整证据记录
已验证maxAgents 默认 4,近似上限+兜底清理

核心依据src/subagent-policy.ts:250-261 并发突发可短暂超出,backstop 于 subagent/start 清理。

支持结论两顶帽子:maxAgents=4 · maxRounds=75

本地来源/Users/fliu56/github/dsh-tui-pi/src/subagent-policy.ts
查看完整证据记录
已验证maxRounds 默认 75,单次 ⚡ 注入、绝不强停

核心依据src/subagent-policy.ts:286-324 到顶注入一条 wrap-up,运行中下一步边界送达、空闲作下一回合。

支持结论编辑器下方状态行两顶帽子:maxAgents=4 · maxRounds=75

本地来源/Users/fliu56/github/dsh-tui-pi/src/subagent-policy.ts
查看完整证据记录
04

仪表与瘦身:页脚计数器和 DCP

页脚七段读 O(1) 计数器实时反映用量;DCP 插件按确定性规则在空闲边界修剪上下文,让数字回落。

ev-footer-statsev-clock-segev-pct-capev-ctx-priceev-ch-cumulativeev-ch-testev-dcp-zeroev-dcp-mountev-dcp-triggerev-dcp-notice

存储

页脚 O(1) 计数器

七个数据段读持续维护的计数器,渲染从不去扫会话日志——读多长会话都一样快。时钟独立于数据段单独走秒。

ev-footer-statsev-clock-seganalogy-odometer
供数→ Context 百分比怎么算
供数→ CHxx% 缓存命中率

处理

Context 百分比怎么算

=最近一次请求的计费输入+输出,加上其后消息的 CJK 估算,除以上下文窗口;不是累计花费,封顶 100%。

ev-ctx-priceev-pct-capinference-cjk

存储

CHxx% 缓存命中率

全会话累计:总缓存读 ÷ 总计费输入流量;切换 provider/model 不归零、不重置。

ev-ch-cumulativeev-ch-test

处理

DCP 确定性修剪

零 LLM 调用的压缩插件,需手动挂载:dsh plugin --profile tui add @aiwayds/dsh-dcp。按 roundInterval 数 assistant/message 事件或按 thresholdRatio 压力触发,在空闲边界剪上下文。

ev-dcp-zeroev-dcp-mountev-dcp-trigger
压缩后数字回落→ Context 百分比怎么算
留下可见痕迹→ 🧹 可见痕迹

事件

🧹 可见痕迹

子代理日志中每次压缩追加一行 notice,Ctrl+G 转录用 🧹 标记渲染,选择器行带 🧹 N× 计数。

ev-dcp-notice
场景内证据

这一节的结论依据

默认显示本节依据;播放时会聚焦当前步骤对应的来源。

已验证时钟独立于七个数据段

核心依据src/footer.ts:198-239 时钟单独走秒;七个数据段之外独立渲染。

支持结论页脚 O(1) 计数器

本地来源/Users/fliu56/github/dsh-tui-pi/src/footer.ts
查看完整证据记录
已验证百分比封顶 100

核心依据src/footer.ts:221 对百分比做 cap 100 处理,窗口是硬天花板。

支持结论Context 百分比怎么算

本地来源/Users/fliu56/github/dsh-tui-pi/src/footer.ts
查看完整证据记录
已验证Context 定价口径

核心依据README.md:121,162:最近请求计费输入输出 + 后续消息 CJK 估算 ÷ 窗口,非累计花费。

支持结论Context 百分比怎么算

本地来源/Users/fliu56/github/dsh-tui-pi/README.md
查看完整证据记录
已验证CH% 会话累计不重置

核心依据src/session.ts:821-830 缓存命中率为会话级累计计算,provider/model 变更不重置。

支持结论CHxx% 缓存命中率

本地来源/Users/fliu56/github/dsh-tui-pi/src/session.ts
查看完整证据记录
已验证CH 不重置回归测试

核心依据test/session-ch-cache.test.mjs:107 固化了换路由不归零的行为。

支持结论CHxx% 缓存命中率

本地来源/Users/fliu56/github/dsh-tui-pi/test/session-ch-cache.test.mjs
查看完整证据记录
已验证DCP 零 LLM 确定性压缩

核心依据dsh-dcp README:3,61 明示 zero-LLM、规则驱动修剪。

支持结论DCP 确定性修剪

本地来源/Users/fliu56/github/dsh-dcp/README.md
查看完整证据记录
已验证依赖 ≠ 挂载,需 opt-in

核心依据dsh-tui-pi README.md:154-160:列为依赖但不自动挂载,需 dsh plugin --profile tui add。

支持结论DCP 确定性修剪

本地来源/Users/fliu56/github/dsh-tui-pi/README.md
查看完整证据记录
已验证roundInterval + thresholdRatio 双触发

核心依据dsh-dcp README:93,103:轮次计数触发 + 独立的压力比触发。

支持结论DCP 确定性修剪

本地来源/Users/fliu56/github/dsh-dcp/README.md
查看完整证据记录
已验证🧹 压缩痕迹可见

核心依据dsh-tui-pi README.md:164:子日志 notice 行、Ctrl+G 🧹 标记与 N× 计数。

支持结论🧹 可见痕迹

本地来源/Users/fliu56/github/dsh-tui-pi/README.md
查看完整证据记录
类比里程表类比

核心依据计数器像里程表逐格累加、即读即得;但 Context 百分比可在压缩后回落,这点与里程表相反。

支持结论页脚 O(1) 计数器

这是教学类比或跨来源归纳,没有外部定位链接。

查看完整证据记录
推断CJK 估算的教学化表述

核心依据『宽度感知估算』是对源码行为的通俗概括,具体算法细节未在本故事展开。

支持结论Context 百分比怎么算

本地来源/Users/fliu56/github/dsh-tui-pi/src/session.ts
查看完整证据记录
05

暂停点:模型向你提问

ask_user_question 把工具调用挂起为输入框上方的停靠表单;你的回答作为普通工具结果送回,回合继续。

ev-ask-dockev-ask-tabsev-ask-escev-ask-guideanalogy-dialog

事件

ask_user_question 调用

模型回合中途调用提问工具,工具调用保持 pending;TUI 接管应答侧——面板钉在 Todos 槽位,不开浮窗,打开期间独占键盘。

ev-ask-dock
弹出表单→ 一题一屏 + 标签条

决策

一题一屏 + 标签条

[1] · 2✓ · 3:方括号是焦点、✓ 是已答;单选答完自动跳下一题,多选只切换不自动前进;≥2 题先进确认复查页。

ev-ask-tabs
Esc×2 分岔→ 双 Esc = 拒答
提交→ 答案回流为工具结果

决策

双 Esc = 拒答

200ms 内两次 Esc 返回拒答信封(模型读到『未作答』的正常回复);按住不放的自动重复会被过滤。

ev-ask-esc
落定为拒答→ 拒答信封回落

事件

答案回流为工具结果

提交的回答作为普通 tool result 交还模型,挂起的调用落定,回合继续推进。

ev-ask-dock
回合继续至完成→ 最终回答渲染进记录

事件

拒答信封回落

拒绝同样以正常回复落定:模型得知没有答案,可以自行调整计划而不是报错中断。

ev-ask-esc

参与者

最终回答渲染进记录

回合结束时聊天记录里只有干净的对话与通知——中间机器痕迹早被面板自我擦除了。

ev-panel-oneanalogy-dialog
场景内证据

这一节的结论依据

默认显示本节依据;播放时会聚焦当前步骤对应的来源。

已验证停靠面板 + 键盘接管 + 工具结果回流

核心依据dsh-tui-pi README.md:204:Todos 槽位停靠、pending 工具调用、答案作为普通工具结果返回。

支持结论ask_user_question 调用答案回流为工具结果

本地来源/Users/fliu56/github/dsh-tui-pi/README.md
查看完整证据记录
已验证标签条与自动前进语义

核心依据test/ask-user.test.mjs:824:[1]·2✓·3 标签、单选自动前进、多选不前进。

支持结论一题一屏 + 标签条

本地来源/Users/fliu56/github/dsh-tui-pi/test/ask-user.test.mjs
查看完整证据记录
已验证双 Esc 200ms 拒答、过滤自动重复

核心依据src/ask-user.ts:62-68,113 DOUBLE_ESC_WINDOW_MS=200。

支持结论双 Esc = 拒答拒答信封回落

本地来源/Users/fliu56/github/dsh-tui-pi/src/ask-user.ts
查看完整证据记录
已验证保守使用引导

核心依据dsh-tui-pi README.md 提问节:系统提示引导 1–3 题、每题 2–4 选项。

本地来源/Users/fliu56/github/dsh-tui-pi/README.md
查看完整证据记录
类比IDE 模态对话框类比

核心依据提问面板形似模态框,但只有那个工具调用在等待,面板还能 Ctrl+T 折叠;且何时弹窗由模型决定。

支持结论最终回答渲染进记录

这是教学类比或跨来源归纳,没有外部定位链接。

查看完整证据记录
已验证一类一面、原位刷新、空即隐藏

核心依据src/activity.ts:397-403 单 ThinkPanel/ToolPanel 原位更新,空面板零行隐藏。

支持结论最终回答渲染进记录

本地来源/Users/fliu56/github/dsh-tui-pi/src/activity.ts
查看完整证据记录
术语表

值得记住的词

回合(turn)
从你提交消息到模型完成答复的一次完整往返,本故事的『旅行物』就是其间的事件流。
O(1) 计数器
随事件增量维护、随取随读的数值;页脚渲染永远不回头重扫会话日志。
Context 百分比
最近一次请求的计费输入+输出加上其后消息的 CJK 估算,除以窗口大小;不是累计花费。
CHxx%
提示缓存命中率,全会话累计:总缓存读÷总计费输入流量;换模型不重置。
委派工具
use_agent / subagent / workflow / ralph 四个生成子代理的工具,从不打开工具块。
delegationDepth 预算
子会话头上的委派深度预算;TUI 以『预算 >0』为准绳判定谁上子代理板。
steer
向运行中的子代理中途注入的用户指令;送达时机取决于孩子自身的步骤边界。
⚡ 收尾注入
到达 maxRounds 后 TUI 注入的一条可见收尾指令;从不强制停止,全凭模型配合。
DCP / 压缩
零 LLM 调用的确定性上下文修剪插件 @aiwayds/dsh-dcp,需手动挂载才生效。
空闲边界
两个 LLM 往返之间会话不在生成的间隙,DCP 选在此处动手修剪。
CJK 估算
对中日韩宽字符消息 token 占用的宽度感知估算法。
拒答信封
双 Esc 返回的结构化回复,告诉模型这次没有得到答案;不是错误也不是中断。
证据地图

每个结论依据什么

  1. 已验证时钟独立于七个数据段

    src/footer.ts:198-239 时钟单独走秒;七个数据段之外独立渲染。

    /Users/fliu56/github/dsh-tui-pi/src/footer.ts
  2. 已验证百分比封顶 100

    src/footer.ts:221 对百分比做 cap 100 处理,窗口是硬天花板。

    /Users/fliu56/github/dsh-tui-pi/src/footer.ts
  3. 已验证Context 定价口径

    README.md:121,162:最近请求计费输入输出 + 后续消息 CJK 估算 ÷ 窗口,非累计花费。

    /Users/fliu56/github/dsh-tui-pi/README.md
  4. 已验证CH% 会话累计不重置

    src/session.ts:821-830 缓存命中率为会话级累计计算,provider/model 变更不重置。

    /Users/fliu56/github/dsh-tui-pi/src/session.ts
  5. 已验证CH 不重置回归测试

    test/session-ch-cache.test.mjs:107 固化了换路由不归零的行为。

    /Users/fliu56/github/dsh-tui-pi/test/session-ch-cache.test.mjs
  6. 已验证一类一面、原位刷新、空即隐藏

    src/activity.ts:397-403 单 ThinkPanel/ToolPanel 原位更新,空面板零行隐藏。

    /Users/fliu56/github/dsh-tui-pi/src/activity.ts
  7. 已验证panelHeight 默认 1,盒高 N 显 N−1 行正文

    src/activity.ts:358 盒子总高含标题行。

    /Users/fliu56/github/dsh-tui-pi/src/activity.ts
  8. 已验证all 尾巴上限:流式 200 行 / 工具结果 2000 行

    src/activity.ts:63 与 :69 分别定义两类尾部行数上限。

    /Users/fliu56/github/dsh-tui-pi/src/activity.ts
  9. 已验证委派工具不开工具块

    src/subagent-policy.ts:41 委派类工具被排除在工具块渲染外。

    /Users/fliu56/github/dsh-tui-pi/src/subagent-policy.ts
  10. 已验证childSessionMeta 双标记

    ARCHITECTURE.md:272-274 spawn 与 fork 均写 origin:'subagent' + delegationDepth 预算。

    /Users/fliu56/github/dsh-tui-pi/ARCHITECTURE.md
  11. 已验证jsonl 恢复读出 delegationDepth:0 → 按值把关

    持久化恢复会补 materialise delegationDepth:0,故门槛须为预算 >0(ARCHITECTURE.md §Bridge 及对应实现)。

    /Users/fliu56/github/dsh-tui-pi/ARCHITECTURE.md
  12. 已验证fork 对话不上板、可 /resume

    src/sessions.ts:609-611 isResumableSessionHeader 过滤恰排除委派子会话。

    /Users/fliu56/github/dsh-tui-pi/src/sessions.ts
  13. 已验证Ctrl+G 选择器与实况查看器参数

    src/subagent-viewer.ts:57-59,850:80% 宽、5 个已落定上限、约 3 次/秒刷新。

    /Users/fliu56/github/dsh-tui-pi/src/subagent-viewer.ts
  14. 已验证steer 三态路由

    test/subagent-viewer.test.mjs:268-275:running→步骤边界、idle→排队、ended→拒绝。

    /Users/fliu56/github/dsh-tui-pi/test/subagent-viewer.test.mjs
  15. 已验证maxAgents 默认 4,近似上限+兜底清理

    src/subagent-policy.ts:250-261 并发突发可短暂超出,backstop 于 subagent/start 清理。

    /Users/fliu56/github/dsh-tui-pi/src/subagent-policy.ts
  16. 已验证maxRounds 默认 75,单次 ⚡ 注入、绝不强停

    src/subagent-policy.ts:286-324 到顶注入一条 wrap-up,运行中下一步边界送达、空闲作下一回合。

    /Users/fliu56/github/dsh-tui-pi/src/subagent-policy.ts
  17. 已验证DCP 零 LLM 确定性压缩

    dsh-dcp README:3,61 明示 zero-LLM、规则驱动修剪。

    /Users/fliu56/github/dsh-dcp/README.md
  18. 已验证依赖 ≠ 挂载,需 opt-in

    dsh-tui-pi README.md:154-160:列为依赖但不自动挂载,需 dsh plugin --profile tui add。

    /Users/fliu56/github/dsh-tui-pi/README.md
  19. 已验证roundInterval + thresholdRatio 双触发

    dsh-dcp README:93,103:轮次计数触发 + 独立的压力比触发。

    /Users/fliu56/github/dsh-dcp/README.md
  20. 已验证🧹 压缩痕迹可见

    dsh-tui-pi README.md:164:子日志 notice 行、Ctrl+G 🧹 标记与 N× 计数。

    /Users/fliu56/github/dsh-tui-pi/README.md
  21. 已验证APPEND_SYSTEM 创建时读一次并缓存

    src/session.ts:40-46 及 commit 44cd112:非逐请求热加载,编辑对下一会话生效。

    /Users/fliu56/github/dsh-tui-pi/src/session.ts
  22. 已验证播种一次、不覆盖用户内容、todo 块幂等

    src/append-system.ts:99-114:缺失时自模板播种;标记块幂等维护。

    /Users/fliu56/github/dsh-tui-pi/src/append-system.ts
  23. 已验证作用域仅主代理

    src/session.ts:34-46 installAppendSystem 注册于主 agent scoped context,子代理不合并。

    /Users/fliu56/github/dsh-tui-pi/src/session.ts
  24. 已验证旧 ~/.dsh/AGENTS.md 块一次性剥离

    ARCHITECTURE.md:245-246 启动时迁移剥离,避免重复投递。

    /Users/fliu56/github/dsh-tui-pi/ARCHITECTURE.md
  25. 已验证停靠面板 + 键盘接管 + 工具结果回流

    dsh-tui-pi README.md:204:Todos 槽位停靠、pending 工具调用、答案作为普通工具结果返回。

    /Users/fliu56/github/dsh-tui-pi/README.md
  26. 已验证标签条与自动前进语义

    test/ask-user.test.mjs:824:[1]·2✓·3 标签、单选自动前进、多选不前进。

    /Users/fliu56/github/dsh-tui-pi/test/ask-user.test.mjs
  27. 已验证双 Esc 200ms 拒答、过滤自动重复

    src/ask-user.ts:62-68,113 DOUBLE_ESC_WINDOW_MS=200。

    /Users/fliu56/github/dsh-tui-pi/src/ask-user.ts
  28. 已验证保守使用引导

    dsh-tui-pi README.md 提问节:系统提示引导 1–3 题、每题 2–4 选项。

    /Users/fliu56/github/dsh-tui-pi/README.md
  29. 推断CJK 估算的教学化表述

    『宽度感知估算』是对源码行为的通俗概括,具体算法细节未在本故事展开。

    /Users/fliu56/github/dsh-tui-pi/src/session.ts
  30. 类比餐厅帮厨类比

    仅建立直觉:子代理≈帮厨、页脚≈黑板记账。不代表实现结构。

  31. 类比里程表类比

    计数器像里程表逐格累加、即读即得;但 Context 百分比可在压缩后回落,这点与里程表相反。

  32. 类比IDE 模态对话框类比

    提问面板形似模态框,但只有那个工具调用在等待,面板还能 Ctrl+T 折叠;且何时弹窗由模型决定。

复述检验

现在能用自己的话讲清楚吗?

页脚的 Context 百分比和子代理行的 X/Y 是同一个东西吗?它们是累计花费吗?

子代理跑到 maxRounds 上限会被强制杀掉吗?

改了 ~/.dsh/APPEND_SYSTEM.md,为什么当前会话没反应?