From 7a449676f4988f148cc8790c73b1ed8e5082f33f Mon Sep 17 00:00:00 2001 From: Davide Mendolia Date: Sun, 18 Jan 2026 18:21:35 +0100 Subject: [PATCH 1/2] Change default mode from serve to serve-only Update all 6 language implementations to use serve-only as the default operation mode instead of serve. This prevents automatic database migrations from running when the server starts without explicit configuration. Co-Authored-By: Claude Opus 4.5 --- src/csharp/LampControlApi/Program.cs | 2 +- src/go/cmd/lamp-control-api/main.go | 2 +- .../main/java/org/openapitools/ApplicationMode.java | 8 ++++---- .../src/main/kotlin/com/lampcontrol/Application.kt | 2 +- src/python/src/openapi_server/cli.py | 10 +++++----- src/typescript/src/cli.ts | 6 +++--- 6 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/csharp/LampControlApi/Program.cs b/src/csharp/LampControlApi/Program.cs index 285f7c72..b0353e10 100644 --- a/src/csharp/LampControlApi/Program.cs +++ b/src/csharp/LampControlApi/Program.cs @@ -5,7 +5,7 @@ using Microsoft.EntityFrameworkCore; // Parse operation mode from command line arguments -var mode = args.FirstOrDefault(arg => arg.StartsWith("--mode="))?.Split('=')[1] ?? "serve"; +var mode = args.FirstOrDefault(arg => arg.StartsWith("--mode="))?.Split('=')[1] ?? "serve-only"; // Handle migrate-only mode if (mode == "migrate") diff --git a/src/go/cmd/lamp-control-api/main.go b/src/go/cmd/lamp-control-api/main.go index 6d69b1c1..b1572154 100644 --- a/src/go/cmd/lamp-control-api/main.go +++ b/src/go/cmd/lamp-control-api/main.go @@ -124,7 +124,7 @@ func initializeRepository(ctx context.Context, runMigrations bool, requireDB boo func main() { port := flag.String("port", "8080", "Port for test HTTP server") requireDB := flag.Bool("require-db", false, "Fail if PostgreSQL connection is configured but fails") - mode := flag.String("mode", "serve", "Operation mode: 'serve' (migrate and start server), 'migrate' (run migrations only), 'serve-only' (start server without migrations)") + mode := flag.String("mode", "serve-only", "Operation mode: 'serve-only' (start server without migrations, default), 'serve' (migrate and start server), 'migrate' (run migrations only)") flag.Parse() // Handle migrate-only mode diff --git a/src/java/src/main/java/org/openapitools/ApplicationMode.java b/src/java/src/main/java/org/openapitools/ApplicationMode.java index a40b827d..58c06f11 100644 --- a/src/java/src/main/java/org/openapitools/ApplicationMode.java +++ b/src/java/src/main/java/org/openapitools/ApplicationMode.java @@ -14,9 +14,9 @@ public class ApplicationMode { private static final Logger logger = LoggerFactory.getLogger(ApplicationMode.class); public enum Mode { - SERVE, // Default: run migrations then start server - MIGRATE, // Run migrations only and exit - SERVE_ONLY // Start server without running migrations + SERVE_ONLY, // Default: start server without running migrations + SERVE, // Run migrations then start server + MIGRATE // Run migrations only and exit } /** Run migrations only and exit */ @@ -88,7 +88,7 @@ public static Mode parseMode(String[] args) { } } } - return Mode.SERVE; // Default mode + return Mode.SERVE_ONLY; // Default mode } /** Configure Spring properties based on the mode */ diff --git a/src/kotlin/src/main/kotlin/com/lampcontrol/Application.kt b/src/kotlin/src/main/kotlin/com/lampcontrol/Application.kt index 899c0c6c..6a836b09 100644 --- a/src/kotlin/src/main/kotlin/com/lampcontrol/Application.kt +++ b/src/kotlin/src/main/kotlin/com/lampcontrol/Application.kt @@ -13,7 +13,7 @@ private val logger = LoggerFactory.getLogger("Application") fun main(args: Array) { // Parse command line arguments - val mode = args.find { it.startsWith("--mode=") }?.substringAfter("=") ?: "serve" + val mode = args.find { it.startsWith("--mode=") }?.substringAfter("=") ?: "serve-only" when (mode) { "migrate" -> runMigrationsOnly() diff --git a/src/python/src/openapi_server/cli.py b/src/python/src/openapi_server/cli.py index 09f9706a..2dfc00a7 100644 --- a/src/python/src/openapi_server/cli.py +++ b/src/python/src/openapi_server/cli.py @@ -1,9 +1,9 @@ """Command-line interface for Lamp Control API. This module provides CLI commands for running the application in different modes: -- serve: Run migrations and start the server (default) +- serve-only: Start server without running migrations (default) +- serve: Run migrations and start the server - migrate: Run migrations only -- serve-only: Start server without running migrations """ import argparse @@ -94,9 +94,9 @@ def main(): parser.add_argument( "--mode", choices=["serve", "migrate", "serve-only"], - default="serve", - help="Operation mode: serve (default, migrate and start server), " - "migrate (run migrations only), serve-only (start server without migrations)", + default="serve-only", + help="Operation mode: serve-only (default, start server without migrations), " + "serve (migrate and start server), migrate (run migrations only)", ) parser.add_argument( "--log-level", diff --git a/src/typescript/src/cli.ts b/src/typescript/src/cli.ts index 7e896e83..3c5e1ec9 100644 --- a/src/typescript/src/cli.ts +++ b/src/typescript/src/cli.ts @@ -3,9 +3,9 @@ * Command-line interface for Lamp Control API * * Supports three operation modes: - * - serve: Run migrations and start server (default) + * - serve-only: Start server without migrations (default) + * - serve: Run migrations and start server * - migrate: Run migrations only - * - serve-only: Start server without migrations */ import { execSync } from 'child_process'; @@ -77,7 +77,7 @@ async function startServer(runMigrations: boolean): Promise { async function main(): Promise { const args = process.argv.slice(2); const modeArg = args.find((arg) => arg.startsWith('--mode=')); - const mode = modeArg ? modeArg.split('=')[1] : 'serve'; + const mode = modeArg ? modeArg.split('=')[1] : 'serve-only'; switch (mode) { case 'migrate': From ba6cb5a0d1e6dadf4d886fc4cbaaea6edfb87aa7 Mon Sep 17 00:00:00 2001 From: Davide Mendolia Date: Sun, 18 Jan 2026 18:22:24 +0100 Subject: [PATCH 2/2] Add git commands to allowed Bash commands list Included 'git add', 'git checkout', 'git commit', and 'git push' in the list of permitted Bash commands in settings.local.json to enable these operations. --- .claude/settings.local.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.claude/settings.local.json b/.claude/settings.local.json index 58bedadd..bb561e98 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -16,6 +16,10 @@ "Bash(docker compose run:*)", "Bash(docker compose up:*)", "Bash(find:*)", + "Bash(git add:*)", + "Bash(git checkout:*)", + "Bash(git commit:*)", + "Bash(git push:*)", "Bash(golangci-lint run:*)", "Bash(java:*)", "Bash(make lint:*)",