fix(recall): notes file is '<имя> - наблюдения.md' so [[имя]] stays unambiguous
This commit is contained in:
@@ -2,11 +2,11 @@
|
|||||||
|
|
||||||
Gateway путей не знает; здесь - что искать по тексту сообщения и куда писать
|
Gateway путей не знает; здесь - что искать по тексту сообщения и куда писать
|
||||||
сказанное. ``Recall.block`` отдаёт указатели, не выводы: карточка упомянутого
|
сказанное. ``Recall.block`` отдаёт указатели, не выводы: карточка упомянутого
|
||||||
человека, записки агента о нём (`мета/бобер/наблюдения/`), дни дневника, где
|
человека, его записки о нём (`мета/бобер/наблюдения/<имя> - наблюдения.md`),
|
||||||
он встречался, и раз в день - подошедшие сроки из досок. ``ReplyLog.write``
|
дни дневника, где он встречался, и раз в день - подошедшие сроки из досок.
|
||||||
кладёт каждую реплику Бобра из мастера и веток в `мета/бобер/реплики/YYYY-MM.md`
|
``ReplyLog.write`` кладёт каждую реплику Бобра из мастера и веток в
|
||||||
- единственное место, где они grep-абельны: транскрипт живёт в Postgres,
|
`мета/бобер/реплики/YYYY-MM.md` - единственное место, где они grep-абельны:
|
||||||
а глубокие чаты и так лежат файлами в `💬 чаты/`.
|
транскрипт живёт в Postgres, а глубокие чаты и так лежат файлами в `💬 чаты/`.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
@@ -32,7 +32,7 @@ KINDS = {"master": "мастер", "branch": "ветка"}
|
|||||||
@dataclass(frozen=True, slots=True)
|
@dataclass(frozen=True, slots=True)
|
||||||
class Person:
|
class Person:
|
||||||
name: str
|
name: str
|
||||||
"""Имя файла карточки без `.md` - им же называется файл записок."""
|
"""Имя файла карточки без `.md`; записки - `<имя> - наблюдения.md`."""
|
||||||
aliases: tuple[str, ...]
|
aliases: tuple[str, ...]
|
||||||
path: str
|
path: str
|
||||||
"""Путь карточки от корня vault."""
|
"""Путь карточки от корня vault."""
|
||||||
@@ -188,7 +188,7 @@ class Recall:
|
|||||||
|
|
||||||
def person_line(self, person: Person) -> str:
|
def person_line(self, person: Person) -> str:
|
||||||
parts = [f"👤 {person.name} - карточка `{person.path}`"]
|
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)
|
rel = notes.relative_to(self.vault)
|
||||||
if notes.exists():
|
if notes.exists():
|
||||||
entries = [
|
entries = [
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ def _vault(tmp_path: Path) -> Recall:
|
|||||||
(diary / "2026-08-01.md").write_text("[[Зина]] ещё раз\n", encoding="utf-8")
|
(diary / "2026-08-01.md").write_text("[[Зина]] ещё раз\n", encoding="utf-8")
|
||||||
notes = tmp_path / "мета" / "бобер" / "наблюдения"
|
notes = tmp_path / "мета" / "бобер" / "наблюдения"
|
||||||
notes.mkdir(parents=True)
|
notes.mkdir(parents=True)
|
||||||
(notes / "Зина.md").write_text(
|
(notes / "Зина - наблюдения.md").write_text(
|
||||||
"# Зина\n\n- 2026-08-26 · перенесла встречу на час · [[2026-08-26]]\n"
|
"# Зина\n\n- 2026-08-26 · перенесла встречу на час · [[2026-08-26]]\n"
|
||||||
"- 2026-08-31 · прислала список покупок · транскрипт\n",
|
"- 2026-08-31 · прислала список покупок · транскрипт\n",
|
||||||
encoding="utf-8",
|
encoding="utf-8",
|
||||||
@@ -92,7 +92,7 @@ def test_block_points_to_card_notes_diary_and_deadlines_once(tmp_path: Path) ->
|
|||||||
lines = block.splitlines()
|
lines = block.splitlines()
|
||||||
assert lines[0] == LABEL
|
assert lines[0] == LABEL
|
||||||
assert lines[1].startswith(
|
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[1].endswith("дневник: [[2026-08-31]], [[2026-08-26]], [[2026-08-13]]")
|
||||||
assert lines[2:] == [
|
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
|
assert again is not None and "📆" not in again
|
||||||
branch = recall.block(RecallContext(text="Фёдор звонил", kind="branch", now=now))
|
branch = recall.block(RecallContext(text="Фёдор звонил", kind="branch", now=now))
|
||||||
assert branch is not None
|
assert branch is not None
|
||||||
assert "записок нет (`мета/бобер/наблюдения/Фёдор Плюшкин.md`)" in branch
|
assert (
|
||||||
|
"записок нет (`мета/бобер/наблюдения/Фёдор Плюшкин - наблюдения.md`)" in branch
|
||||||
|
)
|
||||||
assert "дневник: [[2026-08-26]]" in branch
|
assert "дневник: [[2026-08-26]]" in branch
|
||||||
assert (
|
assert (
|
||||||
recall.block(RecallContext(text="просто привет", kind="branch", now=now))
|
recall.block(RecallContext(text="просто привет", kind="branch", now=now))
|
||||||
|
|||||||
Reference in New Issue
Block a user