A canon is only urged on a shape that could be it, the ledger can say what looks wrong, and the agent is the judge #173

Merged
bvandeusen merged 7 commits from dev into main 2026-09-20 23:07:04 -04:00
2 changed files with 4 additions and 2 deletions
Showing only changes of commit 2be17828a9 - Show all commits
+4
View File
@@ -444,6 +444,10 @@ async def live_rows_for(user_id: int, project_id: int) -> list[CodeShape]:
outside (an MCP tool, a route) rather than from a job that already
established who is asking. Empty for a project the caller cannot read,
never a partial answer."""
# Deferred, like every other access import in this module: services/access
# reaches back here, and a module-level import closes the cycle.
from scribe.services import access
if not await access.can_read_project(user_id, project_id):
return []
return await live_rows(project_id)
-2
View File
@@ -22,8 +22,6 @@ hook's own history is made of.
"""
import pytest
from scribe.services.shape_ledger import (