diff --git a/agent.py b/agent.py index 0324a0b..5f78e8c 100644 --- a/agent.py +++ b/agent.py @@ -358,14 +358,17 @@ def _parse_inbox(inbox_text: str) -> list[dict[str, str]]: normalized = inbox_text.replace("\r\n", "\n").strip() blocks = [block.strip() for block in re.split(r"\n\s*---+\s*\n", normalized) if block.strip()] if len(blocks) == 1: - # Also split common pasted inbox format with repeated From: headers. + # Single unstructured paragraphs should ask for a clearer paste instead of + # inventing a sender/subject. Repeated From: headers are still accepted. + if not re.search(r"(?im)^\s*(from|sender)\s*:", normalized): + return [] blocks = [b.strip() for b in re.split(r"(?=\n?From\s*:)", normalized) if b.strip()] out: list[dict[str, str]] = [] for idx, block in enumerate(blocks, start=1): - sender = _field(block, "from") or _field(block, "sender") or "unknown@example.com" - subject = _field(block, "subject") or f"People inbox message {idx}" + sender = _field(block, "from") or _field(block, "sender") + subject = _field(block, "subject") body = _field(block, "body") or _strip_headers(block) - if len(body.strip()) < 8 and subject.startswith("People inbox message"): + if not sender or not subject or len(body.strip()) < 8: continue out.append( {