(feat) runtime settings — six scalar knobs hot-editable via settings.yaml / /acp config - #76
(feat) runtime settings — six scalar knobs hot-editable via settings.yaml / /acp config#76Tyan66666 wants to merge 5 commits into
Conversation
…yaml / /acp config Phase 1 of issue #75: the six scalar knobs (modelContextLimit, autoModelContextLimit, nudgeMin/Max/EmergencyPct, autoNudge) now resolve through the host settings layer (installSettingsSection seam) — editing ~/.dsh/settings.yaml or the new /acp config subcommand applies to running sessions without a restart. Window-key changes clear the probe cache so a fixed gateway re-probes; settingsEnabled:false is a composition-only kill switch. New deps: peer @deepseek-ai/dsh-settings (dual-tuple range) + schemastery peer; dev deps pinned exact (token-meter caret fixed). 188 tests pass incl. E2E via an in-memory provider + the HMR remount gate.
…TS.md module map + design doc Config table rows carry runtime-adjustable markers, a new README section covers settings.yaml / /acp config usage and the kill switch, the window probe-failure copy now points at /acp config, and the docs index lists the new design doc.
…6-09-06 exploration)
a1f9bd1 to
ec4cd15
Compare
更新说明(rebase 到最新 main + 勘探结论 + dist 重建)本 PR 原基于 v0.2.13( 冲突解决(union 原则:main 新行为 + 本 PR 新增)
新增提交
dist 重建
验证
|
…son — unbreak CI on linux
CI 修复:package-lock.json 丢了跨平台 optional 依赖(fcef379)现象:首次推送后 CI 在 Typecheck 步骤失败(12 秒),报 原因:rebase 解冲突时我用 修复:以 main 的 package-lock.json 为基底,只注入本 PR 的真实增量(根条目:dsh-settings devDep 钉版、dsh-token-meter 精确钉版、peer 新增 dsh-settings/schemastery 两行;新增 结论:CI 已转绿( |
|
我来协助看一下这个问题,请分析并回复处理结果。 |
已按你的要求完整分析并本地验证完毕。结论先行:代码审查通过、功能实现质量高,可以合入;当前唯一的阻塞项是 main 在 PR 打开期间前进了 7 个提交(到 v0.2.21),分支需要 rebase。我用一次试验性合并证明了所有冲突都可干净解决,合并后全套 228/228 测试通过。细节如下。 一、PR head(fcef379)独立验证 —— 全绿在干净的临时目录里
PR 描述里声称的验证数据属实。 二、代码审查意见整体评价:设计克制、边界清晰,符合本仓库的既有规范(kernel owns / engine wires、docs-self-documenting、peer range 的 semver 元组规则都有守)。
三、阻塞项:需要 rebase 到 main(v0.2.21)main 在 PR 基于 08c68d5 之后落了 7 个提交,c96c73e(#106 输出预留)、49aff6f(#107 shadow claim 用固定启发价)、d0a5aa9(#125 tool-pairing 镜像,issue #124)与本 PR 有实质交叉。GitHub 现在报 mergeable_state=dirty(floor 2 说的 CLEAN 是当时的状态)。
四、试验合并证明(已完成)我在仓库内
即:rebase 成本很低,没有隐藏地雷,唯一需要人做判断的就是上面第 4 点那个词级修改(我已按"投影与探测都走 live 门控"解决)。 五、建议的收尾步骤(merge 由你操作)
另注:floor 1 提到的 DSH 0.1.2 settings 动态命名空间( |
Problem
The plugin's configuration lived only in the composition row (
cordis.patch.yml): changing a knob likenudgeMaxContextLimitPctmeant editing YAML and restarting the process. There was no way to adjust the config-file-configurable settings at runtime.Cause
The engine read its six scalar knobs once at construction from the resolved config; with no runtime settings layer, a file edit could not reach a running session.
Fix (phase 1 of #75)
Wire the six scalar knobs (
modelContextLimit,autoModelContextLimit,nudgeMinContextLimitPct,nudgeMaxContextLimitPct,nudgeEmergencyThresholdPct,autoNudge) through the host settings layer via the officialinstallSettingsSectionseam (@deepseek-ai/dsh-settings, namespacecompaction-acp):~/.dsh/settings.yaml— or the new/acp configsubcommand — hot-applies to running sessions, no restart;config:) → user settings section;/acp config resetreturns a key to the composition row / engine default;settingsEnabled: falseis a composition-only kill switch (deliberately not exposed through settings itself — a switch cannot turn off its own plumbing);prompts/coreOverrides/countTokens(object/function values) that must never enter the settings layer;/acp configinstead of "restart only".Design:
docs/settings-integration-design.md(reviewed by three agent review teams before implementation).Verification
false-value parse regression, E2E with a real engine + in-memory settings provider, kill switch, HMR-style remount gate; the peer-range test now also guards the dsh-settings dual-tuple range);npm run typecheckandnpm run buildgreen;@deepseek-ai/dsh-settings(^0.1.0-rc.6 || ^0.1.1-rc.1, per issue peerDependencies "dsh-compaction@^0.1.0-rc.6" 永远匹配不了 0.1.1-rc.2(semver 预发布元组规则)— 最新 DSH 上装不上 #68) +@deepseek-ai/schemastery(^3.18.1); dev deps pinned exact (legacydsh-token-metercaret fixed);Part of #75 — the browser settings card (phase 3) remains blocked upstream (
WEB_SETTINGS_NAMESPACESallowlist in dsh-host-apiproxy).