From 4dafea4e79673ef1a1a43ed85b093ec6734d2a1b Mon Sep 17 00:00:00 2001 From: Dotta Date: Tue, 11 Aug 2026 21:05:57 +0000 Subject: [PATCH] fix(repositories): lazily initialize heartbeat access services Keep the repository and authorization services scoped to the heartbeat context path so unrelated issue-route fixtures do not need repository-specific service mocks. Co-Authored-By: Paperclip --- server/src/routes/issues.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/server/src/routes/issues.ts b/server/src/routes/issues.ts index 9be3456ccda..37ea2358d4c 100644 --- a/server/src/routes/issues.ts +++ b/server/src/routes/issues.ts @@ -2737,8 +2737,6 @@ export function issueRoutes( const instanceSettings = instanceSettingsService(db); const agentsSvc = agentService(db); const projectsSvc = projectService(db); - const repositoryAccessSvc = repositoryAccessService(db); - const authorizationSvc = authorizationService(db); const goalsSvc = goalService(db); const issueApprovalsSvc = issueApprovalService(db); const recoveryActionsSvc = issueRecoveryActionService(db); @@ -5829,11 +5827,11 @@ export function issueRoutes( includeForIssueComment: wakeCommentId !== null, }); const effectiveRepositories = issue.assigneeAgentId - ? ((await repositoryAccessSvc.listEffectiveRepositories({ + ? ((await repositoryAccessService(db).listEffectiveRepositories({ companyId: issue.companyId, agentId: issue.assigneeAgentId, canAccessProject: async (candidate) => { - const decision = await authorizationSvc.decide({ + const decision = await authorizationService(db).decide({ actor: { type: "agent", agentId: issue.assigneeAgentId,