Skip to content

Commit 7136d20

Browse files
committed
docs: update README with new config schema
1 parent 0643888 commit 7136d20

File tree

1 file changed

+37
-38
lines changed

1 file changed

+37
-38
lines changed

README.md

Lines changed: 37 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,35 @@ DCP uses its own config file:
6060
"enabled": true,
6161
// Enable debug logging to ~/.config/opencode/logs/dcp/
6262
"debug": false,
63-
// Summary display: "off", "minimal", or "detailed"
64-
"pruningSummary": "detailed",
65-
// Strategies for pruning tokens from chat history
63+
// Notification display: "off", "minimal", or "detailed"
64+
"pruneNotification": "detailed",
65+
// Protect from pruning for <turns> message turns
66+
"turnProtection": {
67+
"enabled": false,
68+
"turns": 4
69+
},
70+
// LLM-driven context pruning tools
71+
"tools": {
72+
// Shared settings for all prune tools
73+
"settings": {
74+
// Nudge the LLM to use prune tools (every <nudgeFrequency> tool results)
75+
"nudgeEnabled": true,
76+
"nudgeFrequency": 10,
77+
// Additional tools to protect from pruning
78+
"protectedTools": []
79+
},
80+
// Removes tool content from context without preservation (for completed tasks or noise)
81+
"discard": {
82+
"enabled": true
83+
},
84+
// Distills key findings into preserved knowledge before removing raw content
85+
"extract": {
86+
"enabled": true,
87+
// Show distillation content as an ignored message notification
88+
"showDistillation": false
89+
}
90+
},
91+
// Automatic pruning strategies
6692
"strategies": {
6793
// Remove duplicate tool calls (same tool with same arguments)
6894
"deduplication": {
@@ -74,40 +100,6 @@ DCP uses its own config file:
74100
"supersedeWrites": {
75101
"enabled": true
76102
},
77-
// Removes tool content from context without preservation (for completed tasks or noise)
78-
"discardTool": {
79-
"enabled": true,
80-
// Additional tools to protect from pruning
81-
"protectedTools": [],
82-
// Protect from pruning for <turn protection> message turns
83-
"turnProtection": {
84-
"enabled": false,
85-
"turns": 4
86-
},
87-
// Nudge the LLM to use the discard tool (every <frequency> tool results)
88-
"nudge": {
89-
"enabled": true,
90-
"frequency": 10
91-
}
92-
},
93-
// Distills key findings into preserved knowledge before removing raw content
94-
"extractTool": {
95-
"enabled": true,
96-
// Additional tools to protect from pruning
97-
"protectedTools": [],
98-
// Protect from pruning for <turn protection> message turns
99-
"turnProtection": {
100-
"enabled": false,
101-
"turns": 4
102-
},
103-
// Nudge the LLM to use the extract tool (every <frequency> tool results)
104-
"nudge": {
105-
"enabled": true,
106-
"frequency": 10
107-
},
108-
// Show distillation content as an ignored message notification
109-
"showDistillation": false
110-
},
111103
// (Legacy) Run an LLM to analyze what tool calls are no longer relevant on idle
112104
"onIdle": {
113105
"enabled": false,
@@ -126,12 +118,19 @@ DCP uses its own config file:
126118

127119
</details>
128120

121+
### Turn Protection
122+
123+
When enabled, turn protection prevents tool outputs from being pruned for a configurable number of message turns. This gives the AI time to reference recent tool outputs before they become prunable. Applies to both `discard` and `extract` tools, as well as automatic strategies.
124+
129125
### Protected Tools
130126

131127
By default, these tools are always protected from pruning across all strategies:
132128
`task`, `todowrite`, `todoread`, `discard`, `extract`, `batch`
133129

134-
The `protectedTools` arrays in each strategy add to this default list.
130+
The `protectedTools` arrays in each section add to this default list:
131+
- `tools.settings.protectedTools` — Protects tools from the `discard` and `extract` tools
132+
- `strategies.deduplication.protectedTools` — Protects tools from deduplication
133+
- `strategies.onIdle.protectedTools` — Protects tools from on-idle analysis
135134

136135
### Config Precedence
137136

0 commit comments

Comments
 (0)