diff --git a/apps/backend/cmd/kandev/agents.go b/apps/backend/cmd/kandev/agents.go index bbcf3de5ba..b80461fedd 100644 --- a/apps/backend/cmd/kandev/agents.go +++ b/apps/backend/cmd/kandev/agents.go @@ -66,7 +66,7 @@ func provideLifecycleManager( executorRegistry.Register(dockerExec) log.Info("Docker runtime registered") } else if cfg.Docker.Enabled && dockerClient == nil { - log.Warn("Docker runtime enabled but Docker client not available") + log.Debug("Docker runtime enabled but Docker client not available") } // Register Remote Docker runtime (always available, instances are created lazily per host) diff --git a/apps/backend/cmd/kandev/helpers.go b/apps/backend/cmd/kandev/helpers.go index 1347bcd47f..8880f5cd11 100644 --- a/apps/backend/cmd/kandev/helpers.go +++ b/apps/backend/cmd/kandev/helpers.go @@ -49,11 +49,11 @@ import ( func initDockerClient(ctx context.Context, cfg *config.Config, log *logger.Logger) *docker.Client { dockerClient, err := docker.NewClient(cfg.Docker, log) if err != nil { - log.Warn("Failed to initialize Docker client - agent features will be disabled", zap.Error(err)) + log.Debug("Failed to initialize Docker client - agent features will be disabled", zap.Error(err)) return nil } if err := dockerClient.Ping(ctx); err != nil { - log.Warn("Docker daemon not available - agent features will be disabled", zap.Error(err)) + log.Debug("Docker daemon not available - agent features will be disabled", zap.Error(err)) _ = dockerClient.Close() return nil } diff --git a/apps/backend/internal/agent/docker/client.go b/apps/backend/internal/agent/docker/client.go index e18bd4d1fc..94b91b65f0 100644 --- a/apps/backend/internal/agent/docker/client.go +++ b/apps/backend/internal/agent/docker/client.go @@ -492,7 +492,7 @@ func (c *Client) Ping(ctx context.Context) error { _, err := c.cli.Ping(ctx) if err != nil { - c.logger.Warn("Docker ping failed", zap.Error(err)) + c.logger.Debug("Docker ping failed", zap.Error(err)) return fmt.Errorf("docker ping failed: %w", err) } diff --git a/apps/backend/internal/agent/docker/handlers.go b/apps/backend/internal/agent/docker/handlers.go index a63e1a2c37..08d697ae3d 100644 --- a/apps/backend/internal/agent/docker/handlers.go +++ b/apps/backend/internal/agent/docker/handlers.go @@ -36,7 +36,7 @@ type stopContainerRequest struct { // RegisterDockerRoutes registers Docker management HTTP routes on the given router. func RegisterDockerRoutes(router *gin.Engine, dockerClient *Client, log *logger.Logger) { if dockerClient == nil { - log.Warn("Docker client is nil, skipping Docker route registration") + log.Debug("Docker client is nil, skipping Docker route registration") return } diff --git a/apps/backend/internal/agent/lifecycle/executor_remote_docker.go b/apps/backend/internal/agent/lifecycle/executor_remote_docker.go index 3a9af9283a..70d9677b78 100644 --- a/apps/backend/internal/agent/lifecycle/executor_remote_docker.go +++ b/apps/backend/internal/agent/lifecycle/executor_remote_docker.go @@ -34,7 +34,7 @@ func (r *RemoteDockerExecutor) Name() executor.Name { func (r *RemoteDockerExecutor) HealthCheck(ctx context.Context) error { // Remote docker health is checked per-host when creating instances. // The runtime itself is always "available" as a capability. - r.logger.Warn("remote_docker runtime is registered but not yet implemented; health check is a no-op") + r.logger.Debug("remote_docker runtime is registered but not yet implemented; health check is a no-op") return nil } diff --git a/apps/cli/src/run.ts b/apps/cli/src/run.ts index 209ce1ee02..74d099f81a 100644 --- a/apps/cli/src/run.ts +++ b/apps/cli/src/run.ts @@ -71,6 +71,7 @@ async function prepareReleaseBundle({ const actualWebPort = webPort ?? (await pickAvailablePort(DEFAULT_WEB_PORT)); const agentctlPort = await pickAvailablePort(DEFAULT_AGENTCTL_PORT); const backendUrl = `http://localhost:${actualBackendPort}`; + const logLevel = process.env.KANDEV_LOG_LEVEL?.trim() || "warn"; fs.mkdirSync(DATA_DIR, { recursive: true }); const dbPath = path.join(DATA_DIR, "kandev.db"); @@ -83,7 +84,7 @@ async function prepareReleaseBundle({ KANDEV_SERVER_PORT: String(actualBackendPort), KANDEV_AGENT_STANDALONE_PORT: String(agentctlPort), KANDEV_DATABASE_PATH: dbPath, - KANDEV_LOG_LEVEL: "warn", + KANDEV_LOG_LEVEL: logLevel, }; const webEnv: NodeJS.ProcessEnv = {