From fe26760b8495181e028372819656cf92c3ac7b01 Mon Sep 17 00:00:00 2001 From: h Date: Tue, 1 Sep 2026 16:21:46 +0200 Subject: [PATCH] =?UTF-8?q?fix(recall):=20notes=20file=20is=20'<=D0=B8?= =?UTF-8?q?=D0=BC=D1=8F>=20-=20=D0=BD=D0=B0=D0=B1=D0=BB=D1=8E=D0=B4=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F.md'=20so=20[[=D0=B8=D0=BC=D1=8F]]=20stays=20?= =?UTF-8?q?unambiguous?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- recall.py | 14 +++++++------- tests/test_recall.py | 8 +++++--- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/recall.py b/recall.py index 6020f43..1f1fc6c 100644 --- a/recall.py +++ b/recall.py @@ -2,11 +2,11 @@ Gateway путей не знает; здесь - что искать по тексту сообщения и куда писать сказанное. ``Recall.block`` отдаёт указатели, не выводы: карточка упомянутого -человека, записки агента о нём (`мета/бобер/наблюдения/`), дни дневника, где -он встречался, и раз в день - подошедшие сроки из досок. ``ReplyLog.write`` -кладёт каждую реплику Бобра из мастера и веток в `мета/бобер/реплики/YYYY-MM.md` -- единственное место, где они grep-абельны: транскрипт живёт в Postgres, -а глубокие чаты и так лежат файлами в `💬 чаты/`. +человека, его записки о нём (`мета/бобер/наблюдения/<имя> - наблюдения.md`), +дни дневника, где он встречался, и раз в день - подошедшие сроки из досок. +``ReplyLog.write`` кладёт каждую реплику Бобра из мастера и веток в +`мета/бобер/реплики/YYYY-MM.md` - единственное место, где они grep-абельны: +транскрипт живёт в Postgres, а глубокие чаты и так лежат файлами в `💬 чаты/`. """ from __future__ import annotations @@ -32,7 +32,7 @@ KINDS = {"master": "мастер", "branch": "ветка"} @dataclass(frozen=True, slots=True) class Person: name: str - """Имя файла карточки без `.md` - им же называется файл записок.""" + """Имя файла карточки без `.md`; записки - `<имя> - наблюдения.md`.""" aliases: tuple[str, ...] path: str """Путь карточки от корня vault.""" @@ -188,7 +188,7 @@ class Recall: def person_line(self, person: Person) -> str: parts = [f"👤 {person.name} - карточка `{person.path}`"] - notes = self.notes_dir / f"{person.name}.md" + notes = self.notes_dir / f"{person.name} - наблюдения.md" rel = notes.relative_to(self.vault) if notes.exists(): entries = [ diff --git a/tests/test_recall.py b/tests/test_recall.py index 4da8f09..c566f69 100644 --- a/tests/test_recall.py +++ b/tests/test_recall.py @@ -37,7 +37,7 @@ def _vault(tmp_path: Path) -> Recall: (diary / "2026-08-01.md").write_text("[[Зина]] ещё раз\n", encoding="utf-8") notes = tmp_path / "мета" / "бобер" / "наблюдения" notes.mkdir(parents=True) - (notes / "Зина.md").write_text( + (notes / "Зина - наблюдения.md").write_text( "# Зина\n\n- 2026-08-26 · перенесла встречу на час · [[2026-08-26]]\n" "- 2026-08-31 · прислала список покупок · транскрипт\n", encoding="utf-8", @@ -92,7 +92,7 @@ def test_block_points_to_card_notes_diary_and_deadlines_once(tmp_path: Path) -> lines = block.splitlines() assert lines[0] == LABEL assert lines[1].startswith( - "👤 Зина - карточка `👤 люди/личное/Зина.md`; записки `мета/бобер/наблюдения/Зина.md`: 2 стр., последняя: 2026-08-31 · четыре смягчения" + "👤 Зина - карточка `👤 люди/личное/Зина.md`; записки `мета/бобер/наблюдения/Зина - наблюдения.md`: 2 стр., последняя: 2026-08-31 · четыре смягчения" ) assert lines[1].endswith("дневник: [[2026-08-31]], [[2026-08-26]], [[2026-08-13]]") assert lines[2:] == [ @@ -103,7 +103,9 @@ def test_block_points_to_card_notes_diary_and_deadlines_once(tmp_path: Path) -> assert again is not None and "📆" not in again branch = recall.block(RecallContext(text="Фёдор звонил", kind="branch", now=now)) assert branch is not None - assert "записок нет (`мета/бобер/наблюдения/Фёдор Плюшкин.md`)" in branch + assert ( + "записок нет (`мета/бобер/наблюдения/Фёдор Плюшкин - наблюдения.md`)" in branch + ) assert "дневник: [[2026-08-26]]" in branch assert ( recall.block(RecallContext(text="просто привет", kind="branch", now=now))