Compare commits
10
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
58338f132a | ||
|
|
f3e4d51e4e | ||
|
|
a0fe09811d | ||
|
|
b6c5050d69 | ||
|
|
dac34e505b | ||
|
|
9737167c76 | ||
|
|
4592623ff5 | ||
|
|
04fc4dc177 | ||
|
|
27c4e68b6e | ||
|
|
9c3262cba8 |
No files matched your search
@@ -400,7 +400,8 @@ class ReplyLog:
|
|||||||
if said.agent in self.mute:
|
if said.agent in self.mute:
|
||||||
return
|
return
|
||||||
text = said.text
|
text = said.text
|
||||||
if text.startswith("[сид:"):
|
seeded = text.startswith("[сид:")
|
||||||
|
if seeded:
|
||||||
# спавн ветки с текстом: строка сида едет над самим сообщением
|
# спавн ветки с текстом: строка сида едет над самим сообщением
|
||||||
text = text.split("\n\n", 1)[1] if "\n\n" in text else ""
|
text = text.split("\n\n", 1)[1] if "\n\n" in text else ""
|
||||||
flat = " ⏎ ".join(ln.strip() for ln in text.strip().splitlines() if ln.strip())
|
flat = " ⏎ ".join(ln.strip() for ln in text.strip().splitlines() if ln.strip())
|
||||||
@@ -412,6 +413,9 @@ class ReplyLog:
|
|||||||
where = KINDS.get(said.kind, said.kind)
|
where = KINDS.get(said.kind, said.kind)
|
||||||
if said.kind != "master" and said.title:
|
if said.kind != "master" and said.title:
|
||||||
where = f"{where} «{said.title}»"
|
where = f"{where} «{said.title}»"
|
||||||
|
if seeded:
|
||||||
|
# не человек сказал, а механизм спавна: видно по источнику, не по тексту
|
||||||
|
where = f"{where} (бриф)"
|
||||||
path = self.dir / f"{local:%Y-%m}.md"
|
path = self.dir / f"{local:%Y-%m}.md"
|
||||||
self.dir.mkdir(parents=True, exist_ok=True)
|
self.dir.mkdir(parents=True, exist_ok=True)
|
||||||
if not path.exists():
|
if not path.exists():
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ from beaver_gateway.conversations.texts import UserSaid
|
|||||||
from beaver_gateway.conversations.envelope import RecallContext
|
from beaver_gateway.conversations.envelope import RecallContext
|
||||||
|
|
||||||
from beaver_agent.hands.calendars import Calendars, Event, Feed
|
from beaver_agent.hands.calendars import Calendars, Event, Feed
|
||||||
|
from beaver_agent.memory.curator import new_replies
|
||||||
from beaver_agent.memory.recall import (
|
from beaver_agent.memory.recall import (
|
||||||
LABEL,
|
LABEL,
|
||||||
Recall,
|
Recall,
|
||||||
@@ -171,8 +172,14 @@ def test_reply_log_appends_one_line_per_message_and_strips_seed(tmp_path: Path)
|
|||||||
assert text.startswith("# реплики Бобра, 2026-09\n")
|
assert text.startswith("# реплики Бобра, 2026-09\n")
|
||||||
assert text.endswith(
|
assert text.endswith(
|
||||||
"- 2026-09-01 14:04 · мастер · привет ⏎ ты меня любишь\n"
|
"- 2026-09-01 14:04 · мастер · привет ⏎ ты меня любишь\n"
|
||||||
"- 2026-09-01 14:04 · ветка «крипто-карта» · сравни Trustee и RedotPay\n"
|
"- 2026-09-01 14:04 · ветка «крипто-карта» (бриф) · "
|
||||||
|
"сравни Trustee и RedotPay\n"
|
||||||
)
|
)
|
||||||
|
since = datetime(2026, 9, 1, 0, 0, tzinfo=UTC)
|
||||||
|
# пометка брифа не мешает куратору разбирать строку
|
||||||
|
assert new_replies(tmp_path / "реплики", since, "Europe/Warsaw") == [
|
||||||
|
line for line in text.splitlines() if line.startswith("- ")
|
||||||
|
]
|
||||||
assert date.fromisoformat("2026-09-01") # tz shift stays inside the month here
|
assert date.fromisoformat("2026-09-01") # tz shift stays inside the month here
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user