diff --git a/src/khoj/processor/org_mode/org_to_entries.py b/src/khoj/processor/org_mode/org_to_entries.py index 04ce97e4..c84ab48f 100644 --- a/src/khoj/processor/org_mode/org_to_entries.py +++ b/src/khoj/processor/org_mode/org_to_entries.py @@ -100,12 +100,13 @@ class OrgToEntries(TextToEntries): continue todo_str = f"{parsed_entry.todo} " if parsed_entry.todo else "" - # Prepend filename as top heading to entry - filename = Path(entry_to_file_map[parsed_entry]).stem + + # Prepend ancestor headings, filename as top heading to entry for context + ancestors_trail = " / ".join(parsed_entry.ancestors) or Path(entry_to_file_map[parsed_entry]) if parsed_entry.heading: - heading = f"* {filename}\n** {todo_str}{parsed_entry.heading}." + heading = f"* Path: {ancestors_trail}\n** {todo_str}{parsed_entry.heading}." else: - heading = f"* {filename}." + heading = f"* Path: {ancestors_trail}." compiled = heading if state.verbose > 2: diff --git a/tests/test_org_to_entries.py b/tests/test_org_to_entries.py index 1eddcf95..76e2a8a7 100644 --- a/tests/test_org_to_entries.py +++ b/tests/test_org_to_entries.py @@ -45,9 +45,10 @@ def test_configure_heading_entry_to_jsonl(tmp_path): assert is_none_or_empty(jsonl_data) -def test_entry_split_when_exceeds_max_words(tmp_path): +def test_entry_split_when_exceeds_max_words(): "Ensure entries with compiled words exceeding max_words are split." # Arrange + tmp_path = "/tmp/test.org" entry = f"""*** Heading \t\r Body Line @@ -55,7 +56,7 @@ def test_entry_split_when_exceeds_max_words(tmp_path): data = { f"{tmp_path}": entry, } - expected_heading = f"* {tmp_path.stem}\n** Heading" + expected_heading = f"* Path: {tmp_path}\n** Heading" # Act # Extract Entries from specified Org files