@chaoset/adaptive-perf 0.6.0 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md ADDED
@@ -0,0 +1,186 @@
1
+ # Changelog
2
+
3
+ ## [0.7.0](https://github.com/winliyou/dsh-plugins) (2026-08-18)
4
+
5
+ ### Features
6
+
7
+ * **first-round anchoring, resident catalog after promotion (anchored-standard semantics).** Only request #1 is composed under Minimal conditions (real Minimal tool pair + minimal persona + suppressed global guide sections + stripped `skill-catalog`/`agent-instructions` injections + suppressed runtime snapshot); after the first persistent promotion signal (first `tool/call` or `assistant/message`) the session enters the **resident phase**: the bootstrap tool pair stays resident together with the discovery tools (`dev_tool_search`/`skill_search`/`skill_load`), the full catalog is unlocked on demand via `dev_tool_search`, and normal context injection becomes visible again. Performance is raised without reducing functionality — dumping the full catalog at promotion pulls the trajectory back to standard-like (the reference implementation's post-promotion regression), so the full catalog is fetched on demand instead. The tool/skill/web-search/plan/goal/subagent/workflow abilities of each mode remain fully available
8
+
9
+ * **promotion is now persistent.** `scanPhase`/`observePhase` no longer reset on `compaction/end` (epoch-aware boundary removed); promotion is remembered per session like the reference implementation, so resume/reload and post-compaction rounds keep the resident catalog
10
+
11
+ * **catalog is zero-trimmed by default.** `leanByDefault` defaults to `false`: orchestration tool families (subagent/workflow/ralph/goal) are never hidden unless explicitly opted in. `suppressInjectedContext` defaults to `true` (injections stay stripped for the whole session; visibility is carried by the resident discovery tools — measured: restoring injections after promotion pulls the trajectory back to standard-like, "Let me…" narration returns). Setting it to `false` restores post-promotion injections as an opt-in
12
+
13
+ * **creator mode (cordis) is a target preset.** `presets` defaults to `["standard", "code", "cordis"]` in the bundle patch, the settings UI, and DEFAULT_CONFIG — the creator preset gets the same minimal-anchored first round
14
+
15
+ ### ⚠ Breaking (config)
16
+
17
+ * **removed `skillDiscovery`, `instructionHint`, `bootstrap.compactionTools`; restored `bootstrap.discoveryTools`.** Under resident-catalog semantics the on-demand discovery is done by the resident `dev_tool_search`, so the one-shot instruction hint and the post-compaction work set are no longer needed; `bootstrap.discoveryTools` (default `dev_tool_search`/`skill_search`/`skill_load`) is restored as the resident post-promotion discovery set. The discovery tool factories (`createDevToolSearch`/`createSkillSearch`/`createSkillLoad`/`extractSkillBody`) and `loadUnlockedFromEvents` are back; saved configs ignore the removed fields; the settings UI renders the discovery-tools control again; `leanByDefault` keeps its new default (false) while `suppressInjectedContext` defaults to `true`
18
+
19
+ ## [0.6.0](https://github.com/winliyou/dsh-plugins) (2026-08-17)
20
+
21
+
22
+ ### ⚠ Breaking (behavior)
23
+
24
+ * **function-first defaults — every optimization is now opt-in.** The previous defaults broke standard/PTC functionality: tool families removed from the catalog (PTC program calls hit `UNKNOWN_TOOL` outright), skill-catalog/AGENTS.md injections stripped, official prompt sections shadowed, request #1 restricted to two tools. These mechanisms have no lossless form (their savings come from removing context/tools), so `leanByDefault`, `suppressRuntimeContext`, `suppressInjectedContext`, `minimalPrompt.enabled`, and `bootstrap.enabled` all default to **false**: a fresh install is a zero-intervention no-op and official presets keep full functionality. Enable any mechanism on demand from the settings page; compensation paths (keyword/failure-signal escalation, `skill_search` discovery, instruction-hint) activate together with them. Tests now cover both the zero-intervention defaults and each mechanism under explicit opt-in config
25
+
26
+ ## [0.5.3](https://github.com/winliyou/dsh-plugins) (2026-08-17)
27
+
28
+
29
+ ### Bug Fixes
30
+
31
+ * pass the live config snapshot as `base` when registering the settings namespace: without `base`, a schema without defaults (adaptive-perf's `any()`) made `settings.describe()` return `value: undefined`, and the settings page's wire validation (`invalid_type: nonoptional` at `namespaces[n].value`) failed hard, breaking the whole settings UI. With `base` the resolved value is always the full config object
32
+
33
+ ## [0.5.2](https://github.com/winliyou/dsh-plugins) (2026-08-17)
34
+
35
+
36
+ ### Bug Fixes
37
+
38
+ * register the config namespace into the host settings service (`ctx.settings.register`) so the settings page's configurable-plugins tab lists it: the tab dispatches cards from `settings.describe()`, and a namespace that was never registered renders nothing even with a correctly keyed card. Registration is visibility-only — the card still reads/writes through the plugin's own config gateway (config.json stays authoritative, hot-reload preserved). Fail-safe when schemastery or the settings service is unavailable; duplicate registrations (HMR) are ignored
39
+
40
+ ## [0.5.1](https://github.com/winliyou/dsh-plugins) (2026-08-17)
41
+
42
+
43
+ ### Bug Fixes
44
+
45
+ * settings card registration: pass `key` (the settings namespace, matching the host-side service key) when registering into `settings.plugin.item` — the host `dsh-client-ui-slots` 0.1.0-rc.7 declares it as a keyed slot, and a registration without `key` fails the whole client bundle apply ("Failed to load plugins: keyed slot requires options.key")
46
+
47
+ ## [0.5.0](https://github.com/winliyou/dsh-plugins) (2026-08-16)
48
+
49
+
50
+ ### Features
51
+
52
+ * real Minimal tool pair on request #1 (`bootstrap.realPair`)
53
+
54
+ The bootstrap phase previously only *narrowed* the standard/PTC catalog, so
55
+ request #1 still exposed the sandboxed standard `bash` schema (and no
56
+ `str_replace_editor` at all — the standard preset does not mount it).
57
+ Per dsh-anchored-standard issue #11 the first-request trajectory is decided
58
+ by the *byte-identical* tool schema: the real Minimal pair anchors 5/5 while
59
+ every standard-family schema (including sandboxed bash) falls standard-like
60
+ 11/11. The plugin now mounts the official minimal-preset plugins — the
61
+ persistent PTY bash (`@deepseek-ai/dsh-tool-bash-persistent` over
62
+ `dsh-terminal` + `dsh-terminal-bash`, with the exact minimal description)
63
+ and `str_replace_editor` over the bare local fs (`dsh-fs-local`) — into each
64
+ target agent's scoped tool layer, where scoped registrations shadow the
65
+ inherited sandboxed `bash` by name and own-layer registrations are exempt
66
+ from restrictions. The `tool:bash` guidance section is shadowed to empty at
67
+ the same time. The packages are optionalDependencies; when they cannot be
68
+ resolved (or on Windows, where the PTY backend is unavailable) the plugin
69
+ degrades to the previous catalog-only behavior with a warning.
70
+
71
+ * permanent injected-context suppression (`suppressInjectedContext`)
72
+
73
+ The skill-catalog reminder and the AGENTS.md digest were previously stripped
74
+ only on request #1 and re-injected after promotion. The reference implementation
75
+ removes both injections entirely: even post-promotion they perturb the
76
+ trajectory and cost thousands of tokens per request. With
77
+ `suppressInjectedContext: true` (default) the strip now applies to every
78
+ request of the session; `skill_search` / `skill_load` (resident after
79
+ promotion, gated by `skillDiscovery`) replace the ~9KB catalog dump, and the
80
+ new one-shot `instruction-hint` (`instructionHint`, default on) tells the
81
+ model once per session that instruction files exist and should be read when
82
+ relevant, instead of embedding their content. User-initiated skill gestures
83
+ (`skill-invocation`) are never filtered.
84
+
85
+ * resident discovery set now includes skill_search / skill_load
86
+
87
+ `bootstrap.discoveryTools` defaults to `[dev_tool_search, skill_search,
88
+ skill_load]` so the promoted catalog keeps the on-demand discovery surface of
89
+ the reference's resident set; skills stay reachable while the catalog
90
+ injection stays off.
91
+
92
+ ## [0.4.0](https://github.com/winliyou/dsh-plugins) (2026-08-16)
93
+
94
+
95
+ ### Features
96
+
97
+ * minimal-prompt layer (register anchoring, per dsh-anchored-standard)
98
+
99
+ The reference's full anchoring condition is the *complete minimal system
100
+ prompt*, not just the tool catalog: tool narrowing alone leaves the global
101
+ orientation sections (harness:identity / harness:source / app:web-surface)
102
+ and the standard persona in the prompt, and the model keeps narrating in the
103
+ standard-like register ("Let me…" thinking chains). The new `minimalPrompt`
104
+ layer shadows those sections to empty per target agent (same effect as
105
+ minimal's `complete` persona; plan-mode and the PTC SDK sections are
106
+ untouched) and shadows `deployment:persona` with the exact minimal-mode text
107
+ ("You are a helpful software engineer assistant."), so the assembled system
108
+ prompt for standard / PTC sessions drops to the minimal register from request
109
+ #1 onward — including for resumed/already-promoted sessions, which the
110
+ bootstrap phase never touches. All knobs are configurable and hot-applied
111
+ (`minimalPrompt.enabled` / `.persona` / `.suppressSections`).
112
+
113
+ ## [0.3.2](https://github.com/winliyou/dsh-plugins) (2026-08-16)
114
+
115
+
116
+ ### Bug Fixes
117
+
118
+ * bootstrap tool narrowing now uses tools.restrict instead of filtering assembly.tools
119
+
120
+ In PTC/code mode the assembled tool catalog contains only run_code, so
121
+ filtering it down to the Minimal pair always hit the fail-safe and the
122
+ first request kept the full SDK (verified live: the model still saw 15
123
+ tools). tools.restrict drives both the API catalog and the PTC SDK
124
+ reference section (the same mechanism the family trimming uses), so the
125
+ bootstrap phase now temporarily denies everything except
126
+ run_code + the Minimal pair (plus the post-compaction work set) and
127
+ lifts the restriction on the first durable promotion signal. Verified
128
+ live: on request #1 the model reports run_code as the only direct tool
129
+ and the SDK declarations contain only the Minimal pair.
130
+
131
+ ## [0.3.1](https://github.com/winliyou/dsh-plugins) (2026-08-16)
132
+
133
+
134
+ ### Bug Fixes
135
+
136
+ * raise engines.node to >=22.19.0 (node 20 is EOL; aligns with the reference preset baseline and the current LTS floor)
137
+
138
+ ## [0.3.0](https://github.com/winliyou/dsh-plugins/compare/adaptive-perf-v0.2.2...adaptive-perf-v0.3.0) (2026-08-16)
139
+
140
+
141
+ ### Features
142
+
143
+ * first-request bootstrap anchoring (inspired by dsh-anchored-standard)
144
+
145
+ Request #1 for target presets now exposes only the real Minimal tool pair
146
+ (bash + str_replace_editor) and strips auto-injected context
147
+ (skill-catalog reminder, AGENTS.md digest), which anchors the first-request
148
+ trajectory on minimal conditions (the community measurements: the Minimal
149
+ pair anchors 5/5 at the adapter-default budget while every standard-family
150
+ schema falls into standard-like behavior 11/11, and a present skill catalog
151
+ breaks the anchor 0/9). The session promotes after its first durable
152
+ tool/call or assistant/message (promoteOn: either, or tool-call /
153
+ assistant-message) — phase derived from durable session events, resume-safe.
154
+ A compaction resets the phase (epoch-aware): after compaction/end the
155
+ session falls back to the bootstrap pair plus a configurable compactionTools
156
+ work set until a new promotion signal. bootstrap.maxTokens optionally caps
157
+ request #1's output budget and is stripped after promotion.
158
+
159
+ Wiring uses the harness's public waterfalls: system-prompt/assemble (tool
160
+ catalog narrowing), agent/pre-step (context stripping, prepend-registered so
161
+ the strip is the final transform), agent/request (budget cap), and
162
+ session/event (phase feed). Degrades to the full catalog on any filter
163
+ failure so a plugin bug can never brick a session.
164
+
165
+ ## [0.2.2](https://github.com/winliyou/dsh-plugins/compare/adaptive-perf-v0.2.1...adaptive-perf-v0.2.2) (2026-08-16)
166
+
167
+
168
+ ### Bug Fixes
169
+
170
+ * register config-gateway endpoints via a typert-loader host artifact (lib/typert.host.js) so the api-gateway claims them regardless of module-instance identity ([dsh-plugins#registry-install](https://github.com/winliyou/dsh-plugins))
171
+
172
+ When the package is installed from the npm registry, its typert-protocol copy differs from the harness's, so the Remote-decorator SRC markers are invisible to the gateway and settings-page calls fail with "transport failure ... HTTP 404". The typert artifact registers the same get/set endpoints into ctx.typert.local through the official loader mechanism.
173
+
174
+ ## [0.2.1](https://github.com/winliyou/dsh-plugins/compare/adaptive-perf-v0.2.0...adaptive-perf-v0.2.1) (2026-08-16)
175
+
176
+
177
+ ### Bug Fixes
178
+
179
+ * mount remote config namespaces in client bundles ([a647484](https://github.com/winliyou/dsh-plugins/commit/a64748489ddf003cb29c0527016ea089748e0c7b))
180
+
181
+ ## [0.2.0](https://github.com/winliyou/dsh-plugins/compare/adaptive-perf-v0.1.2...adaptive-perf-v0.2.0) (2026-08-15)
182
+
183
+
184
+ ### Features
185
+
186
+ * convert plugins to DSH bundle installation ([caae797](https://github.com/winliyou/dsh-plugins/commit/caae797acd12c70af52b0868ec352d91a0a7ef12))
package/README.md CHANGED
@@ -1,15 +1,22 @@
1
1
  # @chaoset/adaptive-perf — DSH 极简性能自适应插件
2
2
 
3
- > **默认策略(0.6.0,功能优先)**:本插件的性能收益本质是"砍上下文/砍工具换
4
- > token",没有无损形态——旧版把下列机制默认开启,导致 standard/PTC 模式功能
5
- > 缺失(编排类工具族从目录删除、PTC 程序调用直接 `UNKNOWN_TOOL`;技能目录与
6
- > AGENTS.md 摘要被剥离;官方引导段被屏蔽;首轮只剩两个工具)。**0.6.0 起全部
7
- > 机制默认关闭,安装后对会话零干预,官方 preset 功能完整**;需要省 token 时在
8
- > 设置页按需开启下列任意机制(补偿机制——关键词/失败信号放行、`skill_search`
9
- > 按需发现——随开启自动生效)。下文描述的是各机制**开启后**的行为。
10
-
11
- **标准模式(standard)** 与 **PTC 模式(code)** 达到 **极简模式(minimal)**
12
- 级别的高性能,同时保留完整能力——不是静态裁剪,而是**动态自适应**:
3
+ > **默认策略(0.7.0,首轮锚定、晋升后 resident 目录)**:只提高性能,不减少功能。
4
+ > 非极简模式会话的**请求 #1** 按极简模式条件组装——真实 Minimal 工具对
5
+ > 锚定首轮轨迹、极简 persona + 屏蔽全局引导段对齐语域、剥离技能目录/指令
6
+ > 摘要注入、抑制运行时快照;首个**持久**晋升信号(首个 `tool/call`
7
+ > `assistant/message`)后进入 **resident 阶段**——保留 bootstrap 工具对 +
8
+ > 常驻发现工具(`dev_tool_search` / `skill_search` / `skill_load`),完整
9
+ > 目录经 `dev_tool_search` 按需解锁,常规上下文注入恢复可见(与
10
+ > [dsh-anchored-standard](https://github.com/xiaobright/dsh-anchored-standard/)
11
+ > 语义一致:晋升按会话记忆化,compaction 不重置;晋升时一次性倒出完整目录
12
+ > 会把轨迹拉回 standard-like,故完整目录按需取用)。工具目录默认**零裁剪**
13
+ > (编排类工具族始终可用);`leanByDefault` 是省 token 的 opt-in 开关,
14
+ > `suppressInjectedContext` 默认开启(注入剥离由发现工具承担可见性),
15
+ > 设置页按需调整。
16
+
17
+ 让 **标准模式(standard)**、**PTC 模式(code)** 与 **创造模式(cordis)**
18
+ 达到 **极简模式(minimal)** 级别的高性能,同时保留完整能力——不是静态裁剪,
19
+ 而是**动态自适应**:
13
20
 
14
21
  - **真实 Minimal 工具对(realPair)**:首轮"轨迹"由请求 #1 可见的**工具 schema**
15
22
  逐字决定——只有与 Minimal 完全相同的 schema 能锚定(参照
@@ -24,23 +31,20 @@
24
31
  - 请求 #1 剥离自动注入上下文(技能目录提醒 `skill-catalog`、AGENTS.md 摘要
25
32
  `agent-instructions`,用户主动的技能手势不过滤);
26
33
  - 会话出现首个**持久**晋升信号(首个 `tool/call` 或 `assistant/message`,
27
- `promoteOn` 可选 `either`/`tool-call`/`assistant-message`)后进入 **resident
28
- 目录**:bootstrap 工具对 + 常驻发现工具(`dev_tool_search` +
29
- `skill_search` + `skill_load`)+ 已解锁工具,而不是一次性 dump 完整
30
- Standard 目录(避免 post-promotion regression);阶段从持久会话事件推导,
31
- **resume / reload 不丢状态**;
32
- - `dev_tool_search` 可搜索完整目录并按名解锁工具,解锁结果下一请求生效;
33
- - compaction 会把会话打回"第二次首轮":`compaction/end` 之后回到受控目录
34
- (bootstrap 工具对 + `compactionTools` 核心工作集),直到出现新的晋升信号;
34
+ `promoteOn` 可选 `either`/`tool-call`/`assistant-message`)后进入
35
+ **resident 阶段**:保留 bootstrap 工具对 + 常驻发现工具(0.7.0 语义:
36
+ 只锚定首轮,不减少后续功能;完整目录经 `dev_tool_search` 按需解锁——
37
+ 晋升时一次性倒出完整目录会把轨迹拉回 standard-like,anchored-standard
38
+ 实测的"晋升后回退"问题),常规注入(技能目录提醒 + AGENTS.md 摘要)
39
+ 恢复可见;阶段从持久会话事件推导,**resume / reload 不丢状态**,晋升
40
+ 信号**持久**(`compaction/end` 不重置,与 dsh-anchored-standard 一致);
35
41
  - `maxTokens > 0` 时可给请求 #1 封顶输出预算(晋升后自动剥离)。
36
- - **常驻上下文抑制(suppressInjectedContext)**:技能目录提醒与 AGENTS.md 摘要
37
- **不再在晋升后恢复**——参考实现实测它们即使在后置阶段也扰动轨迹,且每个请求
38
- 多耗数千 token。替代品:
39
- - `skill_search` / `skill_load`:晋升后常驻的两个小工具,按需发现并注入单个
40
- 技能的完整说明(替代 ~9KB `<available_skills>` 目录注入);
41
- - `instruction-hint`:晋升后只注入**一次**的短提示——"指令文件存在,需要时
42
- 自己读",而不是每请求 dump 全文(探测项目链 AGENTS.md/CLAUDE.md 与
43
- `$DSH_HOME/AGENTS.md`,探测失败不注入,绝不抛错)。
42
+ - **常驻上下文抑制(suppressInjectedContext,默认开启)**:整个会话持续
43
+ 剥离技能目录提醒 + AGENTS.md 摘要注入——实测晋升后恢复注入会把轨迹拉回
44
+ standard-like("Let me…" 叙述回归),且每请求多耗数千 token。功能可见性
45
+ 由常驻发现工具承担:`dev_tool_search` 搜索完整目录并按名解锁、
46
+ `skill_search` / `skill_load` 按需搜索/加载技能说明。设为 `false` 时只剥
47
+ 离请求 #1,晋升后恢复常规注入(功能不减少但轨迹回退,opt-in)。
44
48
  - **运行时上下文抑制**:对目标 preset 的会话调用 `suppressRuntimeContext()`
45
49
  (与极简模式的 `includeRuntimeContext: false` 同一机制),每次模型请求省掉
46
50
  "Current runtime context" 快照文本,**零功能损失**。
@@ -56,9 +60,10 @@
56
60
  - 挂载真实工具对时按名阴影 `tool:bash` 引导段(与可见工具一致)。
57
61
  各处均为 agent 作用域的 prompt 段阴影,仅影响目标会话;**对已恢复/已晋升的
58
62
  旧会话同样生效**(不依赖 bootstrap 阶段)。
59
- - **工具目录自适应精简**:会话启动时按"工具族"默认隐藏高开销低频工具
60
- (子代理 / 工作流 / ralph / goal 等编排类),只保留核心编码工具
61
- (bash / 文件读写编辑 / 检索 / jobs / todo / 提问 / 网页搜索 / 技能 / 计划)。
63
+ - **工具目录自适应精简(leanByDefault,0.7.0 起为 opt-in)**:默认 `false` =
64
+ 工具目录零裁剪,编排类工具族(子代理 / 工作流 / ralph / goal)始终可用。
65
+ 设为 `true` 时会话启动按"工具族"隐藏高开销低频工具,只保留核心编码工具
66
+ (bash / 文件读写编辑 / 检索 / jobs / todo / 提问 / 网页搜索 / 技能 / 计划),
62
67
  标准模式的工具目录因此逼近极简;PTC 模式系统提示里的 **SDK 参考段同步缩小**。
63
68
  - **需求信号自动放行**(会话内单调升级,只升不降,限制请求缓存失效次数):
64
69
  - 关键词信号:用户消息命中工具族触发词(如"子代理"、"工作流")→ 放行该族;
@@ -70,12 +75,12 @@
70
75
 
71
76
  | 维度 | 极简模式 | 标准 / PTC 模式 | 本插件做法 |
72
77
  |---|---|---|---|
73
- | 首轮轨迹(决定后续行为风格) | Minimal 真实工具对锚定(5/5) | 任何 standard 系 schema(含 sandboxed bash)落入 standard-like(11/11) | realPair 挂载官方同款插件:请求 #1 的 schema 与 Minimal 逐字相同,首个持久信号后进 resident 目录 |
78
+ | 首轮轨迹(决定后续行为风格) | Minimal 真实工具对锚定(5/5) | 任何 standard 系 schema(含 sandboxed bash)落入 standard-like(11/11) | realPair 挂载官方同款插件:请求 #1 的 schema 与 Minimal 逐字相同 |
74
79
  | 首轮注入提醒 | 无 skill 目录/AGENTS.md 注入 | 自动注入(在场时锚定 0/9) | 请求 #1 剥离 `skill-catalog` + `agent-instructions` |
75
- | 后置阶段注入 | 永不注入 | 晋升后每请求恢复 ~9KB 目录 + AGENTS.md 全文 | `suppressInjectedContext`:整个会话抑制;替代品为 `skill_search`/`skill_load` + 一次性 `instruction-hint` |
80
+ | 后置阶段注入 | 永不注入 | 晋升后每请求恢复 ~9KB 目录 + AGENTS.md 全文 | 默认全程剥离(发现工具承担可见性);`suppressInjectedContext=false` opt-in 恢复 |
76
81
  | 系统提示语域(persona + 全局引导段) | 一句话 persona,无任何引导段 | identity/source/web-surface 引导段 + 标准 persona("Let me…" 叙述来源) | minimalPrompt 层按名阴影屏蔽 3 个全局段 + 替换极简 persona(对旧会话同样生效) |
77
82
  | 运行时上下文快照 | 关闭(`includeRuntimeContext: false`) | 每次请求注入文件策略/审批策略等快照 | 同一机制:`suppressRuntimeContext()` |
78
- | 模型可见工具目录 | 2 个(bash、str_replace_editor) | ~22 个工具 schema 全部进请求 | 首轮 2 个;晋升后 resident 目录(工具对 + 发现工具 + 已解锁),编排族默认隐藏按需放行 |
83
+ | 模型可见工具目录 | 2 个(bash、str_replace_editor) | ~22 个工具 schema 全部进请求 | 首轮 2 个;晋升后 resident(2 + 3 个发现工具,完整目录按需解锁);opt-in lean 时隐藏编排族按需放行 |
79
84
  | PTC SDK 参考段 | 无 | 全部工具的类型+描述渲染进提示 | 随目录缩小(同一 `visible` 视图驱动) |
80
85
 
81
86
  ## 安装(npm 生态方式)
@@ -120,12 +125,10 @@ dsh plugin --profile web remove @chaoset/adaptive-perf
120
125
  | 字段 | 默认值 | 说明 |
121
126
  |---|---|---|
122
127
  | `enabled` | `true` | 总开关 |
123
- | `presets` | `["standard", "code"]` | 应用自适应的 preset id |
128
+ | `presets` | `["standard", "code", "cordis"]` | 应用自适应的 preset id |
124
129
  | `suppressRuntimeContext` | `true` | 抑制运行时上下文快照(零功能损失) |
125
- | `suppressInjectedContext` | `true` | 整个会话剥离技能目录/AGENTS.md 注入(0.5.0;`false` = 只在请求 #1 剥离) |
126
- | `skillDiscovery` | `true` | 晋升后常驻 `skill_search` / `skill_load`(0.5.0) |
127
- | `instructionHint` | `true` | 晋升后一次性注入指令文件提示(0.5.0) |
128
- | `leanByDefault` | `true` | 会话启动即隐藏编排类工具族 |
130
+ | `suppressInjectedContext` | `true` | 常驻上下文抑制(默认开启):整个会话剥离技能目录/AGENTS.md 注入(发现工具承担可见性);`false` = 只在请求 #1 剥离,晋升后恢复 |
131
+ | `leanByDefault` | `false` | 工具目录精简(opt-in):`true` = 会话启动即隐藏编排类工具族;`false`(默认)= 零裁剪 |
129
132
  | `escalateOnKeyword` | `true` | 用户消息命中触发词 → 放行该族 |
130
133
  | `escalateOnUnknownTool` | `true` | 工具调用失败(UNKNOWN_TOOL)→ 放行该族 |
131
134
  | `coreTools` | 核心编码工具 | 展示用:不进入任何限制族 |
@@ -142,7 +145,6 @@ dsh plugin --profile web remove @chaoset/adaptive-perf
142
145
  "tools": ["bash", "str_replace_editor"],
143
146
  "promoteOn": "either",
144
147
  "suppressedContextSources": ["skill-catalog", "agent-instructions"],
145
- "compactionTools": ["read", "write", "edit", "glob", "grep", "todo_write", "ask_user_question"],
146
148
  "discoveryTools": ["dev_tool_search", "skill_search", "skill_load"],
147
149
  "maxTokens": 0
148
150
  }
@@ -155,12 +157,20 @@ dsh plugin --profile web remove @chaoset/adaptive-perf
155
157
  Windows(无 PTY 后端)时自动降级为"仅收窄目录"并告警。
156
158
  - `tools`:请求 #1 可见的工具(真实 Minimal 对)。
157
159
  - `promoteOn`:`either`(默认)/ `tool-call` / `assistant-message`。
158
- - `suppressedContextSources`:剥离的自动注入 source.kind;`[]` 关闭剥离。
159
- - `compactionTools`:compaction/end 之后、再次晋升前可用的核心工作集。
160
- - `discoveryTools`:晋升后 resident 目录里的按需发现工具
161
- (`dev_tool_search` 解锁工具;`skill_search`/`skill_load` 按需加载技能)。
160
+ - `suppressedContextSources`:首轮剥离的自动注入 source.kind;`[]` 关闭剥离。
161
+ - `discoveryTools`:晋升后 resident 目录的常驻发现工具——`dev_tool_search`
162
+ (搜索完整目录并按名解锁,解锁结果下一请求生效且会话内保持)、
163
+ `skill_search` / `skill_load`(无门控,按需搜索/加载技能说明,替代常驻
164
+ ~9KB 技能目录)。
162
165
  - `maxTokens`:请求 #1 输出预算封顶(0 = 不封顶,opt-in)。
163
166
 
167
+ > 0.7.0 破坏性变更:移除 `skillDiscovery` / `instructionHint` /
168
+ > `bootstrap.compactionTools` 三个字段(resident 语义下不再需要:
169
+ > `dev_tool_search` 常驻提供按需发现,无压缩回退、无指令提示补偿);
170
+ > `bootstrap.discoveryTools` **恢复**为 resident 目录的常驻发现工具
171
+ > (默认 `dev_tool_search` / `skill_search` / `skill_load`)。已保存的旧配置
172
+ > 会自动忽略被移除字段。
173
+
164
174
  `minimalPrompt`(极简提示词层,0.4.0 新增):
165
175
 
166
176
  ```json