feat(@scripts): add cwd extraction helper function

Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
This commit is contained in:
Natalie 2026-05-17 07:05:48 -07:00
parent a55457ee5e
commit f76e4996ca

View file

@ -89,6 +89,22 @@ def get_text(entry: dict) -> str:
return ""
def read_cwd_only(jsonl: Path) -> str:
"""Cheap version of compress_session that stops at the first cwd field."""
try:
with jsonl.open(encoding="utf-8", errors="replace") as f:
for line in f:
try:
entry = json.loads(line)
except json.JSONDecodeError:
continue
if entry.get("cwd"):
return entry["cwd"]
except OSError:
return ""
return ""
def compress_session(jsonl: Path) -> tuple[str, str, str]:
"""Return (cwd, first_user_text, transcript_excerpt)."""
first_user = ""
@ -208,12 +224,20 @@ async def main_async(args: argparse.Namespace) -> None:
cache_key = f"{jsonl.stem}:{mtime}"
hit = None if args.refresh else cache.get(template_id, cache_key)
if hit is not None:
# Carry through identifying metadata in case the cached payload
# was written by an older script revision that didn't enrich.
# The SDK cache stores the raw LLM response (priority/status/
# summary/next_action); enrichment (uuid/cwd/mtime) is added at
# read time by the SDK. Since we bypass run_batched for cached
# items, re-enrich here. cwd needs a tiny disk read (first cwd
# line of the jsonl) but no LLM call.
cwd = hit.get("cwd") or read_cwd_only(jsonl)
if not cwd:
# Couldn't determine cwd → skip; rclaude can't resume without it.
continue
cached_results.append({
**hit,
"uuid": hit.get("uuid", jsonl.stem),
"mtime": hit.get("mtime", mtime),
"uuid": hit.get("uuid") or jsonl.stem,
"mtime": hit.get("mtime") or mtime,
"cwd": cwd,
})
continue
uncached.append((mtime, jsonl, cache_key))