handoff-mcp-server 0.12.0 → 0.13.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.
@@ -47,6 +47,12 @@ pub fn handle_update(arguments: &Value) -> Result<String> {
47
47
  "settings.require_estimate_hours",
48
48
  "settings.ai_estimate_multiplier",
49
49
  "settings.context_files",
50
+ "settings.memory_enabled",
51
+ "settings.memory_dup_threshold",
52
+ "settings.memory_query_min_score",
53
+ "settings.memory_query_limit",
54
+ "settings.memory_stale_days",
55
+ "settings.memory_injected_gc_days",
50
56
  "dashboard.scan_dirs",
51
57
  "dashboard.exclude_patterns",
52
58
  "project.name",
@@ -116,6 +122,63 @@ pub fn handle_update(arguments: &Value) -> Result<String> {
116
122
  ));
117
123
  }
118
124
  }
125
+ "settings.memory_enabled" => {
126
+ let Some(b) = value.as_bool() else {
127
+ anyhow::bail!("settings.memory_enabled must be a boolean");
128
+ };
129
+ config.settings.memory_enabled = b;
130
+ applied.push(format!("settings.memory_enabled = {b}"));
131
+ }
132
+ "settings.memory_dup_threshold" => {
133
+ let Some(n) = value.as_f64() else {
134
+ anyhow::bail!("settings.memory_dup_threshold must be a number");
135
+ };
136
+ if !(0.0..=1.0).contains(&n) {
137
+ anyhow::bail!("settings.memory_dup_threshold must be between 0 and 1");
138
+ }
139
+ config.settings.memory_dup_threshold = n;
140
+ applied.push(format!("settings.memory_dup_threshold = {n}"));
141
+ }
142
+ "settings.memory_query_min_score" => {
143
+ let Some(n) = value.as_f64() else {
144
+ anyhow::bail!("settings.memory_query_min_score must be a number");
145
+ };
146
+ if n < 0.0 {
147
+ anyhow::bail!("settings.memory_query_min_score must be >= 0");
148
+ }
149
+ config.settings.memory_query_min_score = n;
150
+ applied.push(format!("settings.memory_query_min_score = {n}"));
151
+ }
152
+ "settings.memory_query_limit" => {
153
+ let Some(n) = value.as_u64() else {
154
+ anyhow::bail!("settings.memory_query_limit must be a non-negative integer");
155
+ };
156
+ if n == 0 {
157
+ anyhow::bail!("settings.memory_query_limit must be >= 1");
158
+ }
159
+ config.settings.memory_query_limit = n as u32;
160
+ applied.push(format!("settings.memory_query_limit = {n}"));
161
+ }
162
+ "settings.memory_stale_days" => {
163
+ let Some(n) = value.as_i64() else {
164
+ anyhow::bail!("settings.memory_stale_days must be an integer");
165
+ };
166
+ if n < 0 {
167
+ anyhow::bail!("settings.memory_stale_days must be >= 0");
168
+ }
169
+ config.settings.memory_stale_days = n;
170
+ applied.push(format!("settings.memory_stale_days = {n}"));
171
+ }
172
+ "settings.memory_injected_gc_days" => {
173
+ let Some(n) = value.as_i64() else {
174
+ anyhow::bail!("settings.memory_injected_gc_days must be an integer");
175
+ };
176
+ if n < 0 {
177
+ anyhow::bail!("settings.memory_injected_gc_days must be >= 0");
178
+ }
179
+ config.settings.memory_injected_gc_days = n;
180
+ applied.push(format!("settings.memory_injected_gc_days = {n}"));
181
+ }
119
182
  "dashboard.scan_dirs" => {
120
183
  if let Some(arr) = value.as_array() {
121
184
  config.dashboard.scan_dirs = arr
@@ -21,7 +21,7 @@ pub fn handle(arguments: &Value) -> Result<String> {
21
21
 
22
22
  Ok(format!(
23
23
  "Initialized handoff tracking for '{}' at {}/.handoff/\n\
24
- Created: config.toml, sessions/, tasks/",
24
+ Created: config.toml, sessions/, tasks/, memory/",
25
25
  project_name,
26
26
  project_dir.display()
27
27
  ))