fix(recall): notes file is '<имя> - наблюдения.md' so [[имя]] stays unambiguous

This commit is contained in:
hh
2026-09-01 16:22:06 +02:00
parent 7709da4489
commit 65bc32a1cf
2 changed files with 12 additions and 10 deletions
+7 -7
View File
@@ -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 = [
+5 -3
View File
@@ -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))