feat(config,recall): people recall block in the envelope, reply log in мета/бобер/реплики

This commit is contained in:
hh
2026-09-01 16:08:55 +02:00
parent c30a8377f3
commit dd649e568a
3 changed files with 471 additions and 1 deletions
+27 -1
View File
@@ -45,6 +45,7 @@ from policy import (
skill_tracker,
vault_zones,
)
from recall import Recall, ReplyLog
TZ = "Europe/Warsaw"
VAULT = Path("/vault")
@@ -57,6 +58,10 @@ SKILLS = BEAVER / "скиллы"
DAYS = BEAVER / "дни"
DIGESTS = BEAVER / "выжимки"
INDEX = BEAVER / "индекс.md"
NOTES = BEAVER / "наблюдения"
REPLIES = BEAVER / "реплики"
PEOPLE = VAULT / "👤 люди"
BOARDS = VAULT / "📆 доски"
STATE = BEAVER / "состояние.md"
STATE_MAX_LINES = 60
# §4.5: ночное закрытие трогает только чаты с активностью после запуска.
@@ -545,11 +550,30 @@ watch = VaultWatch(
"📶 ресерчи/**",
"мета/бобер/**",
),
ignore=("💬 чаты/**", "мета/**", "**/attachments/**", ".obsidian/**"),
ignore=(
"💬 чаты/**",
"мета/**",
"мета/бобер/реплики/**", # пишет сам gateway на каждое сообщение
"**/attachments/**",
".obsidian/**",
),
),
tz=TZ,
)
# §3.3: справка под сообщением - карточка и записки агента по упомянутым людям,
# дни, где они встречались, раз в день сроки из досок; лог реплик Бобра -
# единственное grep-абельное место для сказанного в телеге (§6.0 «спящее»).
recall = Recall(
vault=VAULT,
people_dir=PEOPLE,
notes_dir=NOTES,
diary_dir=DIARY,
boards_dir=BOARDS,
tz=TZ,
)
replies = ReplyLog(REPLIES, tz=TZ)
# §4.5 джобы. Хендлер только ставит работу в очередь и выходит.
async def rotate(run: JobRun) -> None:
@@ -781,6 +805,8 @@ gateway = Gateway(
# счётчику Claude Code), считаем как он - вход последнего API-вызова.
rotation=RotationPolicy(tz=TZ, max_context_tokens=500_000),
watch=watch,
recall=recall.block,
user_sink=replies.write,
budget=Budget(threshold=0.7),
distiller=Distiller(agent="beaver-distiller", dir=DIGESTS, index=INDEX),
tz=TZ,