dsh-loopx-plugin
loopx-project/loopxLoopX——面向长周期 Agent 的提供商中立、本地优先状态内核与控制平面:在 DeepSeek Harness 执行层之上持久化 Goal、Todo、门禁、证据、配额、恢复与交接状态;插件负责引导安装 CLI 与技能、准入有界的同会话续跑,并为精确绑定的工作循环提供本地 GoalBar。
在底部聊天输入框的模型选择弹窗中扩展第三行【上下文窗口】,支持 64K~2M 档位切换、自定义容量输入、提供商批量同步与自适应压缩防失败守卫。
DeepSeek Harness (DSH) 上下文窗口手动配置与自适应压缩防失败守卫插件(Manual Context Window Selector & Adaptive Compaction Guard for DeepSeek Harness)。
在底部聊天输入框的模型选择下拉弹窗中,原汁原味扩展第三行 【上下文窗口】(Context window) 及二级配置面板(64K / 128K / 256K / 512K / 1M / 2M + 手动自定义输入),支持直接写回 cordis.patch.yml、实时刷新当前会话的右下角 Context Pressure 进度条,并内置自适应压缩预算联动与**「高切低先自动压缩再降窗」三层防失败保护**。
conversation.input.model)的 priority: -10 优先级选举机制无损接管底部模型选择菜单,保留 100% 原生模型搜索、分组置顶与推理等级(Effort)交互;禁用或卸载插件后自动无感回退至内置组件,零侵入 app.asar。pane === "root")的「模型」与「推理等级」下方追加第三行 「上下文窗口」(Context window),实时展示当前选中模型的上下文容量(如 64K、128K、256K、512K、1M、2M)。trigger)上并列紧凑展示当前上下文容量(可在插件设置中独立开关)。pane === "context"),提供 64K ~ 2M 六档常用预设。300000)或带 k/m 单位简写(按 1024 进制换算,如 256k、500k、1.5m),按 Enter 或点击「应用」立即生效。TargetPressureConfigError):DSH 内置 compaction-basic 默认预留 32K/256K (maxTokens) + 64K (headroomTokens),直接将模型改小到 64K 或 128K 会导致 pressureBudgetTokens <= 0 而使 80% 预防性自动压缩失效。本插件自动按窗口容量的 12.5% 收敛模型 maxTokens、按 7.5% 动态注入 compaction.config.modelPolicies 的 headroomTokens 与 maxTokens(调回大窗口时自动恢复默认),确保任意小窗口下 80% 自动压缩精准触发。先压缩(Auto-compact) 徽标,并在写入低窗口配置前先在原高窗口预算下自动执行 /compact 压缩历史对话。requestHeader 残留钳制与进度条即时同步:自动钳制上一轮大窗口遗留的 requestHeader.config.maxTokens,并在模型或窗口变更时立即向活跃会话追加 "request/context" 事件,无需等待下一轮发消息即可刷新右下角 Context Pressure 进度条分母。


flowchart LR
UI["底部模型弹窗二级面板<br/>选择 64K~2M 或自定义输入"] --> Check{"已用 Token >=<br/>新窗口 80% 阈值?"}
Check -- "是 (高切低超限)" --> PreCompact["先按原高窗口执行 /compact<br/>安全收敛历史消息"]
Check -- "否" --> Mutate["settings.mutate 写回 cordis.patch.yml<br/>联动缩放 contextWindow + maxTokens"]
PreCompact --> Mutate
Mutate --> HostSync["宿主端动态注入 modelPolicies<br/>headroomTokens(7.5%) + 追加 request/context"]
HostSync --> Meter["右下角 Context Pressure 进度条<br/>与 80% 自动压缩阈值实时刷新"]
style UI fill:#e3f2fd,stroke:#1565c0,color:#0d47a1
style Check fill:#fff8e1,stroke:#ff8f00,color:#e65100
style PreCompact fill:#fce4ec,stroke:#ad1457,color:#880e4f
style Mutate fill:#e0f2f1,stroke:#00695c,color:#004d40
style HostSync fill:#e8f5e9,stroke:#2e7d32,color:#1b5e20
style Meter fill:#c8e6c9,stroke:#2e7d32,color:#1b5e20
| 预设档位 | contextWindow (Tokens) | 自适应 maxTokens (12.5%) | 自适应 headroomTokens (7.5%) | 剩余消息预算 (pressureBudgetTokens) | 80% 自动压缩触发线 (thresholdTokens) |
|---|---|---|---|---|---|
64K | 65,536 | 8,192 (8K) | 4,915 (~4.8K) | 52,429 | 52,428 (80%) |
128K | 131,072 | 16,384 (16K) | 9,830 (~9.6K) | 104,858 | 104,857 (80%) |
256K | 262,144 | 32,768 (32K) | 19,660 (~19.2K) | 209,716 | 209,715 (80%) |
512K | 512 × 1024 | 65,536 (64K) | 39,321 (~38.4K) | 419,431 | 419,430 (80%) |
1M | 1,048,576 | 65,536 (64K) | 65,536 (64K) | 917,504 | 838,860 (80%) |
2M | 2,097,152 | 65,536 (64K) | 65,536 (64K) | 1,966,080 | 1,677,721 (80%) |
npm install dsh-context-window
在 Profile 的 package.json 中添加 "dsh-context-window" 依赖与 dsh.profile.bundles 项,并在 cordis.patch.yml 中声明:
- id: context-window
name: dsh-context-window
config:
enabled: true
showInTrigger: true
defaultSyncAllProviderModels: true
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
enabled | boolean | true | 是否在底部聊天输入框的模型选择弹窗中启用第三行「上下文窗口」配置功能 |
showInTrigger | boolean | true | 是否在底部模型触发按钮上并列紧凑显示当前模型的上下文窗口容量(如 256K) |
defaultSyncAllProviderModels | boolean | true | 打开二级面板时,「同步应用到该提供商下所有模型」复选框的默认勾选状态 |
npm test
MIT © xt765