From 16a997850a5aa0e4e5c69ff64325bf82ca646fc2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Almeida?= <57680069+zeval@users.noreply.github.com> Date: Fri, 13 Mar 2026 11:37:16 +0000 Subject: [PATCH] fix: skip executor preparer for repo-less tasks like config chat (#432) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix: skip environment preparer for repo-less tasks like config chat Config chat sessions created without repository associations would crash with "no repository path provided" when the workspace default executor had a registered preparer (e.g. worktree). The preparer was selected based on executor type but had no repository to work with. Skip any environment preparer when RepositoryPath is empty — the session falls through to the quick-chat workspace path instead. --- .../internal/agent/lifecycle/manager_launch.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/apps/backend/internal/agent/lifecycle/manager_launch.go b/apps/backend/internal/agent/lifecycle/manager_launch.go index 1f8cc32ac8..1e82a9404d 100644 --- a/apps/backend/internal/agent/lifecycle/manager_launch.go +++ b/apps/backend/internal/agent/lifecycle/manager_launch.go @@ -294,6 +294,17 @@ func (m *Manager) runEnvironmentPreparer( return nil } + // Skip environment preparation for repo-less tasks (e.g. config chat). + // Preparers assume a repository is available; without one the session + // falls through to the quick-chat workspace path instead. + if req.RepositoryPath == "" { + m.logger.Debug("skipping environment preparer — no repository path", + zap.String("task_id", req.TaskID), + zap.String("session_id", req.SessionID), + zap.String("preparer", preparer.Name())) + return nil + } + prepReq := &EnvPrepareRequest{ TaskID: req.TaskID, SessionID: req.SessionID,