Eliminate nested and N+1 relation reads #204
Description
Delivered
- Relation endpoint kinds are loaded in one batch instead of one lookup per relation.
- Authorized task titles are loaded in one project-scoped batch.
- Authorized active memory titles are loaded in one visibility-filtered batch.
- Private, inaccessible, archived, expired, and unpublished memory targets remain hidden.
- Task targets remain hidden from users without task-project membership.
-
ProjectItemService.Resolvedisposes its lookup context before authorization services run. -
KnowledgeService.GetProjectMemorydisposes its number lookup context before loading history. - Relation ordering, provenance, and direction are preserved.
- Focused resolver, visibility, task-patch, and MCP contract tests pass: 4/4.
- Commit
dabb48fdeployed to Conderis.