fix(vault,conversations): the envelope diff drops query blocks and frontmatter, history hands the envelope apart from the user's words
This commit is contained in:
1 parent
1d1285de46
commit
65564d8541
5 files changed
+139
-10
No files matched your search
+54
-1
@@ -7,7 +7,11 @@ from test_conversations import ScriptedClient, World, world
|
||||
|
||||
from beaver_gateway.conversations.service import UserSaid
|
||||
from beaver_gateway.conversations.envelope import Envelope, RecallContext, render
|
||||
from beaver_gateway.conversations.texts import EnvelopeTexts
|
||||
from beaver_gateway.conversations.texts import (
|
||||
ConversationTexts,
|
||||
EnvelopeTexts,
|
||||
split_service,
|
||||
)
|
||||
from beaver_gateway.vault.watch import Change, VaultWatch, WatchRules
|
||||
|
||||
__all__ = ["world"]
|
||||
@@ -77,6 +81,37 @@ def test_watch_reports_only_added_lines_with_mtime() -> None:
|
||||
assert only.added == ["- 14:00 снова"]
|
||||
|
||||
|
||||
def test_a_templated_note_shows_its_text_without_queries_or_frontmatter() -> None:
|
||||
root, watch = vault()
|
||||
rel = f"дни/{watch.today()}.md"
|
||||
diary = root / rel
|
||||
watch._seen.pop(rel)
|
||||
diary.write_text(
|
||||
"---\ntags:\n - дни\n---\n## сводка\n- \n\n\n---\n\n# планы\nпросрочены:\n"
|
||||
"```tasks\nnot done\ndue before 2026-10-13\n```\n"
|
||||
"обязательно сегодня:\n~~~dataview\nlist\n~~~\n"
|
||||
"```python\nprint(1)\n```\n06:04 - спать\n"
|
||||
)
|
||||
watch.note(diary)
|
||||
(change,) = watch.take()
|
||||
assert change.added == [
|
||||
"## сводка",
|
||||
"- ",
|
||||
"---",
|
||||
"# планы",
|
||||
"просрочены:",
|
||||
"обязательно сегодня:",
|
||||
"```python",
|
||||
"print(1)",
|
||||
"```",
|
||||
"06:04 - спать",
|
||||
]
|
||||
append(diary, "```tasks\ndone on 2026-10-13\n```\n07:10 - встал\n")
|
||||
watch.note(diary)
|
||||
(later,) = watch.take()
|
||||
assert later.added == ["07:10 - встал"]
|
||||
|
||||
|
||||
def test_envelope_respects_ceilings_and_names_only_window() -> None:
|
||||
root, watch = vault()
|
||||
today = watch.today()
|
||||
@@ -129,6 +164,24 @@ def test_render_hits_total_ceiling() -> None:
|
||||
assert lines[1] == "time: 2026-08-26 13:04 (Warsaw)"
|
||||
|
||||
|
||||
def test_the_users_words_part_from_what_the_gateway_put_under_them() -> None:
|
||||
texts = ConversationTexts()
|
||||
envelope = f"{HEADER}\ntime: 2026-10-13 10:00 (UTC)"
|
||||
bundle = texts.bundle_header.format(since="2026-10-13T10:00:00+00:00")
|
||||
injects = f"{bundle}\n- [cron] tick"
|
||||
assert split_service(f"hello\n\n{envelope}", texts) == ("hello", envelope)
|
||||
assert split_service(f"hello\n\n{envelope}\n\n{injects}", texts) == (
|
||||
"hello",
|
||||
f"{envelope}\n\n{injects}",
|
||||
)
|
||||
assert split_service(f"hello\n\n{injects}", texts) == ("hello", injects)
|
||||
assert split_service(f"\n\n{envelope}", texts) == ("", envelope)
|
||||
assert split_service("hello\n\n[a note of mine]\nmore", texts) == (
|
||||
"hello\n\n[a note of mine]\nmore",
|
||||
None,
|
||||
)
|
||||
|
||||
|
||||
async def test_master_turn_gets_envelope_after_text_and_before_injects(
|
||||
world: World,
|
||||
) -> None:
|
||||
|
||||
Reference in new issue
Block a user