This commit is contained in:
2026-03-18 12:24:37 -07:00
parent b0e89ff950
commit 7c526784a8
6 changed files with 729 additions and 245 deletions

View File

@@ -75,6 +75,60 @@ class _WorkerLogger:
pass
def _truncate_worker_text(value: Any, max_len: int = 120) -> str:
text = str(value or "").strip()
if len(text) <= max_len:
return text
if max_len <= 3:
return text[:max_len]
return f"{text[:max_len - 3].rstrip()}..."
def _summarize_worker_result(item: Dict[str, Any]) -> str:
title = (
item.get("title")
or item.get("name")
or item.get("path")
or item.get("url")
or item.get("hash")
or "Result"
)
details: list[str] = []
store_val = str(item.get("store") or item.get("source") or "").strip()
if store_val:
details.append(store_val)
ext_val = str(item.get("ext") or item.get("mime") or "").strip()
if ext_val:
details.append(ext_val)
hash_val = str(
item.get("hash") or item.get("file_hash") or item.get("hash_hex") or ""
).strip()
if hash_val:
details.append(hash_val[:12])
suffix = f" [{' | '.join(details)}]" if details else ""
return f"- {_truncate_worker_text(title)}{suffix}"
def _summarize_worker_results(results: Sequence[Dict[str, Any]], preview_limit: int = 8) -> str:
count = len(results)
lines = [f"{count} result(s)"]
if count <= 0:
return lines[0]
for item in results[:preview_limit]:
lines.append(_summarize_worker_result(item))
remaining = count - min(count, preview_limit)
if remaining > 0:
lines.append(f"... {remaining} more")
return "\n".join(lines)
class search_file(Cmdlet):
"""Class-based search-file cmdlet for searching storage backends."""
@@ -1127,7 +1181,7 @@ class search_file(Cmdlet):
except Exception:
pass
try:
append_worker_stdout(worker_id, json.dumps([], indent=2))
append_worker_stdout(worker_id, _summarize_worker_results([]))
update_worker(worker_id, status="completed")
except Exception:
pass
@@ -1195,7 +1249,7 @@ class search_file(Cmdlet):
ctx.set_current_stage_table(table)
try:
append_worker_stdout(worker_id, json.dumps(results_list, indent=2))
append_worker_stdout(worker_id, _summarize_worker_results(results_list))
update_worker(worker_id, status="completed")
except Exception:
pass
@@ -1498,7 +1552,7 @@ class search_file(Cmdlet):
if not results:
log(f"No results found for query: {query}", file=sys.stderr)
try:
append_worker_stdout(worker_id, json.dumps([], indent=2))
append_worker_stdout(worker_id, _summarize_worker_results([]))
update_worker(worker_id, status="completed")
except Exception:
pass
@@ -1534,7 +1588,7 @@ class search_file(Cmdlet):
ctx.set_current_stage_table(table)
try:
append_worker_stdout(worker_id, json.dumps(results_list, indent=2))
append_worker_stdout(worker_id, _summarize_worker_results(results_list))
update_worker(worker_id, status="completed")
except Exception:
pass
@@ -2034,8 +2088,7 @@ class search_file(Cmdlet):
ctx.set_last_result_table(table, results_list)
db.append_worker_stdout(
worker_id,
json.dumps(results_list,
indent=2)
_summarize_worker_results(results_list)
)
db.update_worker_status(worker_id, "completed")
return 0
@@ -2047,7 +2100,7 @@ class search_file(Cmdlet):
ctx.set_last_result_table_preserve_history(table, [])
except Exception:
pass
db.append_worker_stdout(worker_id, json.dumps([], indent=2))
db.append_worker_stdout(worker_id, _summarize_worker_results([]))
db.update_worker_status(worker_id, "completed")
return 0
@@ -2259,8 +2312,7 @@ class search_file(Cmdlet):
ctx.set_last_result_table(table, results_list)
db.append_worker_stdout(
worker_id,
json.dumps(results_list,
indent=2)
_summarize_worker_results(results_list)
)
else:
log("No results found", file=sys.stderr)
@@ -2270,7 +2322,7 @@ class search_file(Cmdlet):
ctx.set_last_result_table_preserve_history(table, [])
except Exception:
pass
db.append_worker_stdout(worker_id, json.dumps([], indent=2))
db.append_worker_stdout(worker_id, _summarize_worker_results([]))
db.update_worker_status(worker_id, "completed")
return 0