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
@@ -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
|
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,
|
established who is asking. Empty for a project the caller cannot read,
|
||||||
never a partial answer."""
|
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):
|
if not await access.can_read_project(user_id, project_id):
|
||||||
return []
|
return []
|
||||||
return await live_rows(project_id)
|
return await live_rows(project_id)
|
||||||
|
|||||||
@@ -22,8 +22,6 @@ hook's own history is made of.
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from scribe.services.shape_ledger import (
|
from scribe.services.shape_ledger import (
|
||||||
|
|||||||
Reference in New Issue
Block a user