The Systems question rides every read and write — unified seam, create_system dedup gate, sweeps-are-discovery prose #107

Merged
bvandeusen merged 3 commits from dev into main 2026-08-09 16:04:58 -04:00
Showing only changes of commit 75bdb9c148 - Show all commits
+5 -1
View File
@@ -106,6 +106,7 @@ async def test_untagged_hint_zero_systems_prompts_first_create_and_fails_open():
@pytest.mark.asyncio
async def test_create_system_same_normalized_name_is_duplicate_gated():
existing = _fake_system(sid=7, name="Scrape Pipeline")
existing.id = 7
existing.name = "Scrape Pipeline"
with patch("scribe.mcp.tools.systems.current_user_id", return_value=1), \
patch("scribe.mcp.tools.systems.systems_svc") as svc:
@@ -150,7 +151,10 @@ async def test_create_task_untagged_in_project_carries_the_question():
@pytest.mark.asyncio
async def test_create_task_tagged_shows_systems_and_projectless_gets_neither():
note = MagicMock(); note.id = 61; note.to_dict.return_value = {"id": 61}
note = MagicMock(); note.id = 61
# Fresh dict per call — a shared return_value dict lets the first create's
# mutation leak into the second create's response.
note.to_dict.side_effect = lambda: {"id": 61}
tagged_sys = MagicMock(); tagged_sys.to_dict.return_value = {"id": 4, "name": "plugin-hooks"}
with patch("scribe.mcp.tools.tasks.current_user_id", return_value=1), \
patch("scribe.mcp.tools.tasks.notes_svc") as notes_svc, \