Add bulk clear-params action that re-extracts from retained logs (ticket 052)
DELETE /api/params clears the entire standalone-param set — manual and auto-derived alike — then immediately re-runs auto_declare_params against every IndexKey::IngestedLog entry still held in the engine's index (oldest to newest), so params come back fresh from currently-retained log text without requiring new lines to be ingested. This is a deliberate full reset, unlike reload_engine_declarations's profile-switch cleanup, which preserves auto-derived params since those are engine-discovered facts rather than profile state; here the immediate re-extraction step makes clearing them safe. Settings::clear_param_declarations empties the active profile's persisted params so they don't reappear on restart. The webapp's Params section gets a single "Clear all" button (with a confirm dialog and a status line reporting removed/re-derived/logs_considered) rather than a per-param delete loop; logs_considered surfaces that lines already evicted by max_logs can't regain their params. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XFUNZwCvz3kcod3352ZR2o
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
d17cfe9b83
commit
4e37e2a7ee
@@ -600,6 +600,26 @@ impl Settings {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
/// Empties `profile_name`'s stored param declarations, persisting settings — the counterpart to
|
||||
/// `record_param_declaration` for `DELETE /api/params` (ticket 052). A profile only ever stores
|
||||
/// manually-declared params (auto-derived ones live only in the engine, never persisted here), so
|
||||
/// this is enough to keep the whole set from reappearing on next load; the engine-side clear
|
||||
/// re-derives whatever auto params the retained log text still supports.
|
||||
pub fn clear_param_declarations(
|
||||
&mut self,
|
||||
settings_path: &Path,
|
||||
profile_name: &str,
|
||||
) -> Result<(), ProfileError> {
|
||||
let profile = self
|
||||
.profiles
|
||||
.iter_mut()
|
||||
.find(|p| p.name == profile_name)
|
||||
.ok_or(ProfileError::NotFound)?;
|
||||
profile.params.clear();
|
||||
self.save(settings_path)?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
/// Records/updates a declared param into `profile_name`'s stored declarations (matched by param
|
||||
/// name), persisting settings. Intended to be called by the HTTP API alongside declaring against
|
||||
/// the engine, so declarations survive a restart.
|
||||
|
||||
Reference in New Issue
Block a user