MCPcopy Create free account
hub / github.com/ScriptedAlchemy/tracedecay / uninstall_context_server

Function uninstall_context_server

src/agents/zed.rs:134–178  ·  view source on GitHub ↗

Remove context server entry from Zed settings.json. Does not delete settings.json even if object is otherwise empty.

(settings_path: &Path)

Source from the content-addressed store, hash-verified

132/// Remove context server entry from Zed settings.json.
133/// Does not delete settings.json even if object is otherwise empty.
134fn uninstall_context_server(settings_path: &Path) {
135 if !settings_path.exists() {
136 eprintln!(" {} not found, skipping", settings_path.display());
137 return;
138 }
139
140 let mut settings = load_jsonc_file(settings_path);
141
142 let removed = if let Some(map) = settings
143 .get_mut("context_servers")
144 .and_then(|v| v.as_object_mut())
145 {
146 map.remove("tracedecay").is_some()
147 } else {
148 false
149 };
150
151 if !removed {
152 eprintln!(
153 " No tracedecay context server in {}, skipping",
154 settings_path.display()
155 );
156 return;
157 }
158
159 // Clean up empty "context_servers" object
160 let cs_empty = settings
161 .get("context_servers")
162 .and_then(|v| v.as_object())
163 .is_some_and(serde_json::Map::is_empty);
164 if cs_empty {
165 settings
166 .as_object_mut()
167 .map(|o| o.remove("context_servers"));
168 }
169
170 // Always write back (never delete settings.json — it has other Zed settings).
171 // backup_and_write_json leaves a .bak so any mistake is recoverable (issue #63).
172 if backup_and_write_json(settings_path, &settings) {
173 eprintln!(
174 "\x1b[32m✔\x1b[0m Removed tracedecay context server from {}",
175 settings_path.display()
176 );
177 }
178}
179
180// ---------------------------------------------------------------------------
181// Healthcheck helpers

Callers 1

uninstallMethod · 0.85

Calls 3

load_jsonc_fileFunction · 0.85
backup_and_write_jsonFunction · 0.85
existsMethod · 0.80

Tested by

no test coverage detected