Aufräumrunde zur Bugfix-Runde: Suche entzerrt, Flatten-Fix vervollständigt

- archive_search: match_expr in search() aufgelöst. sanitize_query lief zweimal
  pro Anfrage, und die Leer-Entscheidung stand an zwei Stellen mit leicht
  abweichender Bedingung.
- Der Tag-Filter geht jetzt durch dieselbe Quoting-Regel wie der Volltext. Ein
  leerer Tag ergab tags:"" und damit einen Syntaxfehler — erreichbar durch das
  angetippte #, den ersten Tastendruck jeder Tag-Suche.
- sanitize_query von 26 auf 12 Zeilen: split('"') und split_whitespace statt
  handgeschriebenem Tokenizer. Gleiches Ergebnis fuer alle Testeingaben.
- TerminalConfig bekommt ebenfalls serde flatten. Der Block wird als Ganzes
  mitgeschrieben, ein terminal.fontSize waere also weiterhin verloren gegangen;
  set_terminal_config_in traegt die unbekannten Keys jetzt herueber.
- markdown.test.ts enthielt ein literales NUL-Byte, wodurch git die Datei als
  binaer behandelte. Der Test erzeugt das Zeichen jetzt selbst.
- Kleineres: commands_delete-Bedingung als direkter Vergleich, eine
  Verschachtelungsebene in pool.rs, zwei redundante Kommentarbloecke.
  commands_delete benennt sich in der Doku als Provisorium.
This commit is contained in:
marcusH
2026-07-19 23:22:25 +02:00
parent b127269e89
commit e245600235
8 changed files with 119 additions and 80 deletions
+5 -5
View File
@@ -263,10 +263,10 @@ fn register_mcp_server(pool_dir: &std::path::Path) {
// und MCP-Einträgen Dritter. Sie hier zu ersetzen macht aus einem
// reparierbaren Schaden einen endgültigen.
let mut v = match fs::read_to_string(&cfg) {
Ok(s) => match serde_json::from_str::<serde_json::Value>(&s) {
Ok(v) => v,
Err(_) => return,
},
Ok(s) => {
let Ok(v) = serde_json::from_str::<serde_json::Value>(&s) else { return };
v
}
Err(e) if e.kind() == std::io::ErrorKind::NotFound => serde_json::json!({}),
Err(_) => return,
};
@@ -820,7 +820,7 @@ mod tests {
set_terminal_config_in(
&p,
"proj",
TerminalConfig { theme: Some("dracula".into()), icon: None, title: None },
TerminalConfig { theme: Some("dracula".into()), ..Default::default() },
)
.unwrap();
delete_pool_in(&p, &store, &kunde).unwrap();