From a0d9541f74e2f01520c9171d6cb8b6e6f1a4240f Mon Sep 17 00:00:00 2001 From: koki-develop Date: Sun, 11 Jan 2026 19:52:38 +0900 Subject: [PATCH 01/13] Add Go 1.25.5 language package Co-Authored-By: Claude Opus 4.5 --- packages/go/1.25.5/build.sh | 4 ++++ packages/go/1.25.5/environment | 2 ++ packages/go/1.25.5/metadata.json | 5 +++++ packages/go/1.25.5/run | 7 +++++++ packages/go/1.25.5/test.go | 7 +++++++ 5 files changed, 25 insertions(+) create mode 100755 packages/go/1.25.5/build.sh create mode 100644 packages/go/1.25.5/environment create mode 100644 packages/go/1.25.5/metadata.json create mode 100755 packages/go/1.25.5/run create mode 100644 packages/go/1.25.5/test.go diff --git a/packages/go/1.25.5/build.sh b/packages/go/1.25.5/build.sh new file mode 100755 index 000000000..3b08351c5 --- /dev/null +++ b/packages/go/1.25.5/build.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash +curl -LO https://go.dev/dl/go1.25.5.linux-amd64.tar.gz +tar -xzf go1.25.5.linux-amd64.tar.gz +rm go1.25.5.linux-amd64.tar.gz diff --git a/packages/go/1.25.5/environment b/packages/go/1.25.5/environment new file mode 100644 index 000000000..88299c1ad --- /dev/null +++ b/packages/go/1.25.5/environment @@ -0,0 +1,2 @@ +export PATH=$PWD/go/bin:$PATH +export GOPATH=$PWD/gopath diff --git a/packages/go/1.25.5/metadata.json b/packages/go/1.25.5/metadata.json new file mode 100644 index 000000000..9a435b432 --- /dev/null +++ b/packages/go/1.25.5/metadata.json @@ -0,0 +1,5 @@ +{ + "language": "go", + "version": "1.25.5", + "aliases": ["go", "golang"] +} diff --git a/packages/go/1.25.5/run b/packages/go/1.25.5/run new file mode 100755 index 000000000..65c9a4f12 --- /dev/null +++ b/packages/go/1.25.5/run @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +mv $1 $1.go +#filename=$1.go +filename=*.go +shift +GOCACHE=$PWD go run $filename "$@" diff --git a/packages/go/1.25.5/test.go b/packages/go/1.25.5/test.go new file mode 100644 index 000000000..c06f48560 --- /dev/null +++ b/packages/go/1.25.5/test.go @@ -0,0 +1,7 @@ +package main + +import "fmt" + +func main() { + fmt.Println("OK") +} From 5b1aac4884d5e67ccf1511f237dc25ae1289084a Mon Sep 17 00:00:00 2001 From: koki-develop Date: Sun, 11 Jan 2026 21:59:54 +0900 Subject: [PATCH 02/13] Set GOMAXPROCS=1 for Go 1.25.5 to fix SIGKILL in isolate sandbox Go 1.25 introduced container-aware GOMAXPROCS which automatically adjusts thread count based on cgroup limits. This causes issues with Piston's isolate sandbox process limits, resulting in SIGKILL. Co-Authored-By: Claude Opus 4.5 --- packages/go/1.25.5/environment | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/go/1.25.5/environment b/packages/go/1.25.5/environment index 88299c1ad..c2e39ffd3 100644 --- a/packages/go/1.25.5/environment +++ b/packages/go/1.25.5/environment @@ -1,2 +1,3 @@ export PATH=$PWD/go/bin:$PATH export GOPATH=$PWD/gopath +export GOMAXPROCS=1 From 864cd2d9b778357b4b5f0bef92a3ed7b9103ca62 Mon Sep 17 00:00:00 2001 From: koki-develop Date: Sun, 11 Jan 2026 22:06:48 +0900 Subject: [PATCH 03/13] Increase run timeout for Go 1.25.5 to 10 seconds Go 1.25's go run command requires more time for initial execution due to enhanced runtime features. Increase run_timeout and run_cpu_time to 10000ms to prevent SIGKILL from timeout. Co-Authored-By: Claude Opus 4.5 --- packages/go/1.25.5/metadata.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/go/1.25.5/metadata.json b/packages/go/1.25.5/metadata.json index 9a435b432..950095107 100644 --- a/packages/go/1.25.5/metadata.json +++ b/packages/go/1.25.5/metadata.json @@ -1,5 +1,9 @@ { "language": "go", "version": "1.25.5", - "aliases": ["go", "golang"] + "aliases": ["go", "golang"], + "limit_overrides": { + "run_timeout": 10000, + "run_cpu_time": 10000 + } } From 87153a80441281a024451b5da6ed9b2cfc095c13 Mon Sep 17 00:00:00 2001 From: koki-develop Date: Sun, 11 Jan 2026 22:17:00 +0900 Subject: [PATCH 04/13] Increase Go 1.25.5 limits: timeout 30s, max_process_count 256 Go 1.25 with container-aware GOMAXPROCS may spawn more processes. Significantly increase run timeout and process count limits. Co-Authored-By: Claude Opus 4.5 --- packages/go/1.25.5/metadata.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/go/1.25.5/metadata.json b/packages/go/1.25.5/metadata.json index 950095107..288b7a35c 100644 --- a/packages/go/1.25.5/metadata.json +++ b/packages/go/1.25.5/metadata.json @@ -3,7 +3,8 @@ "version": "1.25.5", "aliases": ["go", "golang"], "limit_overrides": { - "run_timeout": 10000, - "run_cpu_time": 10000 + "run_timeout": 30000, + "run_cpu_time": 30000, + "max_process_count": 256 } } From 5ad0936eda96bdb6b8366a357e6e0ce0869d48d5 Mon Sep 17 00:00:00 2001 From: koki-develop Date: Sun, 11 Jan 2026 22:17:09 +0900 Subject: [PATCH 05/13] Add debug logging for pkg-info.json in test workflow Output pkg-info.json content to verify limit_overrides are applied. Co-Authored-By: Claude Opus 4.5 --- .github/workflows/package-pr.yaml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/package-pr.yaml b/.github/workflows/package-pr.yaml index 6d4c2ec7a..3a57d48ba 100644 --- a/.github/workflows/package-pr.yaml +++ b/.github/workflows/package-pr.yaml @@ -120,6 +120,13 @@ jobs: PKG_NAME=$(awk -F- '{ print $1 }' <<< $package) PKG_VERSION=$(awk -F- '{ print $2 }' <<< $package) + echo "=== DEBUG: pkg-info.json content ===" + cat packages/$PKG_PATH/pkg-info.json || echo "pkg-info.json not found in packages/$PKG_PATH" + echo "=== DEBUG: Checking inside tar.gz ===" + tar -tzf packages/$package.pkg.tar.gz | grep -E "(pkg-info|metadata)" || true + tar -xzf packages/$package.pkg.tar.gz -O ./pkg-info.json 2>/dev/null || echo "Could not extract pkg-info.json from tar" + echo "=== END DEBUG ===" + echo "Installing..." docker run --network container:api appropriate/curl -sXPOST http://localhost:2000/api/v2/packages -H "Content-Type: application/json" -d "{\"language\":\"$PKG_NAME\",\"version\":\"$PKG_VERSION\"}" From 744230f0b923dcc60da8a5bcef02e40ffb37c70f Mon Sep 17 00:00:00 2001 From: koki-develop Date: Sun, 11 Jan 2026 22:32:30 +0900 Subject: [PATCH 06/13] Fix CLI timeout override in test workflow CLI sends run_timeout=3000 by default, which overrides server-side limit_overrides. Add explicit -r 30000 -c 30000 flags to use higher timeout values during testing. Co-Authored-By: Claude Opus 4.5 --- .github/workflows/package-pr.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/package-pr.yaml b/.github/workflows/package-pr.yaml index 3a57d48ba..f52958b11 100644 --- a/.github/workflows/package-pr.yaml +++ b/.github/workflows/package-pr.yaml @@ -137,7 +137,7 @@ jobs: do TEST_RUNTIME=$(awk -F. '{print $2}' <<< $(basename $tscript)) echo Running $tscript with runtime=$TEST_RUNTIME - docker run --network container:api -v "$PWD/cli:/app" -v "$PWD/$(dirname $tscript):/pkg" node:15 /app/index.js run $TEST_RUNTIME -l $PKG_VERSION /pkg/$(basename $tscript) > test_output + docker run --network container:api -v "$PWD/cli:/app" -v "$PWD/$(dirname $tscript):/pkg" node:15 /app/index.js run $TEST_RUNTIME -l $PKG_VERSION -r 30000 -c 30000 /pkg/$(basename $tscript) > test_output cat test_output grep "OK" test_output done From a4abe021b0283c184bbf34f61282fdde8f46ca7f Mon Sep 17 00:00:00 2001 From: koki-develop Date: Sun, 11 Jan 2026 22:41:10 +0900 Subject: [PATCH 07/13] Remove -c flag from test CLI command Go doesn't have a compile step, so compile_timeout limit_overrides is not set. Remove -c 30000 to avoid exceeding the default limit. Co-Authored-By: Claude Opus 4.5 --- .github/workflows/package-pr.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/package-pr.yaml b/.github/workflows/package-pr.yaml index f52958b11..5e40c7885 100644 --- a/.github/workflows/package-pr.yaml +++ b/.github/workflows/package-pr.yaml @@ -137,7 +137,7 @@ jobs: do TEST_RUNTIME=$(awk -F. '{print $2}' <<< $(basename $tscript)) echo Running $tscript with runtime=$TEST_RUNTIME - docker run --network container:api -v "$PWD/cli:/app" -v "$PWD/$(dirname $tscript):/pkg" node:15 /app/index.js run $TEST_RUNTIME -l $PKG_VERSION -r 30000 -c 30000 /pkg/$(basename $tscript) > test_output + docker run --network container:api -v "$PWD/cli:/app" -v "$PWD/$(dirname $tscript):/pkg" node:15 /app/index.js run $TEST_RUNTIME -l $PKG_VERSION -r 30000 /pkg/$(basename $tscript) > test_output cat test_output grep "OK" test_output done From e43c03cd883ea8d70474dc82e8a100f38bf14962 Mon Sep 17 00:00:00 2001 From: koki-develop Date: Sun, 11 Jan 2026 22:48:51 +0900 Subject: [PATCH 08/13] Increase max_file_size limit for Go 1.25.5 Go 1.25's runtime compilation creates object files larger than the default 10MB limit. Increase to 50MB. --- packages/go/1.25.5/metadata.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/go/1.25.5/metadata.json b/packages/go/1.25.5/metadata.json index 288b7a35c..e7cc9f6ed 100644 --- a/packages/go/1.25.5/metadata.json +++ b/packages/go/1.25.5/metadata.json @@ -5,6 +5,7 @@ "limit_overrides": { "run_timeout": 30000, "run_cpu_time": 30000, - "max_process_count": 256 + "max_process_count": 256, + "max_file_size": 50000000 } } From c07e0b6009fe8c89b7ceb12daa1bb4d0e0393fcd Mon Sep 17 00:00:00 2001 From: koki-develop Date: Sun, 11 Jan 2026 22:58:03 +0900 Subject: [PATCH 09/13] Remove debug logging from package-pr workflow --- .github/workflows/package-pr.yaml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/.github/workflows/package-pr.yaml b/.github/workflows/package-pr.yaml index 5e40c7885..4c10af0d6 100644 --- a/.github/workflows/package-pr.yaml +++ b/.github/workflows/package-pr.yaml @@ -120,13 +120,6 @@ jobs: PKG_NAME=$(awk -F- '{ print $1 }' <<< $package) PKG_VERSION=$(awk -F- '{ print $2 }' <<< $package) - echo "=== DEBUG: pkg-info.json content ===" - cat packages/$PKG_PATH/pkg-info.json || echo "pkg-info.json not found in packages/$PKG_PATH" - echo "=== DEBUG: Checking inside tar.gz ===" - tar -tzf packages/$package.pkg.tar.gz | grep -E "(pkg-info|metadata)" || true - tar -xzf packages/$package.pkg.tar.gz -O ./pkg-info.json 2>/dev/null || echo "Could not extract pkg-info.json from tar" - echo "=== END DEBUG ===" - echo "Installing..." docker run --network container:api appropriate/curl -sXPOST http://localhost:2000/api/v2/packages -H "Content-Type: application/json" -d "{\"language\":\"$PKG_NAME\",\"version\":\"$PKG_VERSION\"}" From b34ca43b90a36da73a8567380e436e4a172d6c1a Mon Sep 17 00:00:00 2001 From: koki-develop Date: Sun, 11 Jan 2026 23:01:21 +0900 Subject: [PATCH 10/13] Reduce run timeout and CPU time limits for Go 1.25.5 to 15s Lower run_timeout and run_cpu_time from 30s to 15s while keeping max_file_size and max_process_count unchanged. This balances resource constraints with Go 1.25.5 runtime needs. --- packages/go/1.25.5/metadata.json | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/go/1.25.5/metadata.json b/packages/go/1.25.5/metadata.json index e7cc9f6ed..2a1920861 100644 --- a/packages/go/1.25.5/metadata.json +++ b/packages/go/1.25.5/metadata.json @@ -3,9 +3,8 @@ "version": "1.25.5", "aliases": ["go", "golang"], "limit_overrides": { - "run_timeout": 30000, - "run_cpu_time": 30000, - "max_process_count": 256, + "run_timeout": 15000, + "run_cpu_time": 15000, "max_file_size": 50000000 } } From e6b3aee4c17355d0965c20dea8618bf359e8dbf3 Mon Sep 17 00:00:00 2001 From: koki-develop Date: Sun, 11 Jan 2026 23:03:48 +0900 Subject: [PATCH 11/13] Dynamically read run_timeout from metadata.json in CI Read limit_overrides.run_timeout from each package's metadata.json and pass it to CLI via -r flag. This allows packages to specify custom timeouts without hardcoding values in the workflow. --- .github/workflows/package-pr.yaml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/package-pr.yaml b/.github/workflows/package-pr.yaml index 4c10af0d6..6bd175b84 100644 --- a/.github/workflows/package-pr.yaml +++ b/.github/workflows/package-pr.yaml @@ -120,6 +120,14 @@ jobs: PKG_NAME=$(awk -F- '{ print $1 }' <<< $package) PKG_VERSION=$(awk -F- '{ print $2 }' <<< $package) + # Read limit_overrides from metadata.json + RUN_TIMEOUT=$(jq -r '.limit_overrides.run_timeout // empty' packages/$PKG_PATH/metadata.json) + RUN_TIMEOUT_FLAG="" + if [ -n "$RUN_TIMEOUT" ]; then + RUN_TIMEOUT_FLAG="-r $RUN_TIMEOUT" + echo "Using run_timeout: $RUN_TIMEOUT" + fi + echo "Installing..." docker run --network container:api appropriate/curl -sXPOST http://localhost:2000/api/v2/packages -H "Content-Type: application/json" -d "{\"language\":\"$PKG_NAME\",\"version\":\"$PKG_VERSION\"}" @@ -130,7 +138,7 @@ jobs: do TEST_RUNTIME=$(awk -F. '{print $2}' <<< $(basename $tscript)) echo Running $tscript with runtime=$TEST_RUNTIME - docker run --network container:api -v "$PWD/cli:/app" -v "$PWD/$(dirname $tscript):/pkg" node:15 /app/index.js run $TEST_RUNTIME -l $PKG_VERSION -r 30000 /pkg/$(basename $tscript) > test_output + docker run --network container:api -v "$PWD/cli:/app" -v "$PWD/$(dirname $tscript):/pkg" node:15 /app/index.js run $TEST_RUNTIME -l $PKG_VERSION $RUN_TIMEOUT_FLAG /pkg/$(basename $tscript) > test_output cat test_output grep "OK" test_output done From c7fb2415f9719648b452bc378d55c00b0e0ff77a Mon Sep 17 00:00:00 2001 From: koki-develop Date: Sun, 11 Jan 2026 23:13:10 +0900 Subject: [PATCH 12/13] Add compile_timeout support and compile step for Go 1.25.5 - Extend package-pr workflow to read and pass compile_timeout from metadata.json - Add compile script for Go 1.25.5 to build source into executable binary - Update Go 1.25.5 metadata.json with compile_timeout and compile_cpu_time overrides - Modify Go 1.25.5 run script to execute precompiled binary instead of running source directly This enables proper compile timeout enforcement and aligns Go 1.25.5 with the new compile step model. --- .github/workflows/package-pr.yaml | 9 ++++++++- packages/go/1.25.5/compile | 5 +++++ packages/go/1.25.5/metadata.json | 4 ++-- packages/go/1.25.5/run | 5 +---- 4 files changed, 16 insertions(+), 7 deletions(-) create mode 100644 packages/go/1.25.5/compile diff --git a/.github/workflows/package-pr.yaml b/.github/workflows/package-pr.yaml index 6bd175b84..3026154a5 100644 --- a/.github/workflows/package-pr.yaml +++ b/.github/workflows/package-pr.yaml @@ -121,6 +121,13 @@ jobs: PKG_VERSION=$(awk -F- '{ print $2 }' <<< $package) # Read limit_overrides from metadata.json + COMPILE_TIMEOUT=$(jq -r '.limit_overrides.compile_timeout // empty' packages/$PKG_PATH/metadata.json) + COMPILE_TIMEOUT_FLAG="" + if [ -n "$COMPILE_TIMEOUT" ]; then + COMPILE_TIMEOUT_FLAG="-c $COMPILE_TIMEOUT" + echo "Using compile_timeout: $COMPILE_TIMEOUT" + fi + RUN_TIMEOUT=$(jq -r '.limit_overrides.run_timeout // empty' packages/$PKG_PATH/metadata.json) RUN_TIMEOUT_FLAG="" if [ -n "$RUN_TIMEOUT" ]; then @@ -138,7 +145,7 @@ jobs: do TEST_RUNTIME=$(awk -F. '{print $2}' <<< $(basename $tscript)) echo Running $tscript with runtime=$TEST_RUNTIME - docker run --network container:api -v "$PWD/cli:/app" -v "$PWD/$(dirname $tscript):/pkg" node:15 /app/index.js run $TEST_RUNTIME -l $PKG_VERSION $RUN_TIMEOUT_FLAG /pkg/$(basename $tscript) > test_output + docker run --network container:api -v "$PWD/cli:/app" -v "$PWD/$(dirname $tscript):/pkg" node:15 /app/index.js run $TEST_RUNTIME -l $PKG_VERSION $COMPILE_TIMEOUT_FLAG $RUN_TIMEOUT_FLAG /pkg/$(basename $tscript) > test_output cat test_output grep "OK" test_output done diff --git a/packages/go/1.25.5/compile b/packages/go/1.25.5/compile new file mode 100644 index 000000000..cbff042fa --- /dev/null +++ b/packages/go/1.25.5/compile @@ -0,0 +1,5 @@ +#!/usr/bin/env bash + +mv $1 $1.go +GOCACHE=$PWD go build -o binary *.go +chmod +x binary diff --git a/packages/go/1.25.5/metadata.json b/packages/go/1.25.5/metadata.json index 2a1920861..3ed1ffd56 100644 --- a/packages/go/1.25.5/metadata.json +++ b/packages/go/1.25.5/metadata.json @@ -3,8 +3,8 @@ "version": "1.25.5", "aliases": ["go", "golang"], "limit_overrides": { - "run_timeout": 15000, - "run_cpu_time": 15000, + "compile_timeout": 15000, + "compile_cpu_time": 15000, "max_file_size": 50000000 } } diff --git a/packages/go/1.25.5/run b/packages/go/1.25.5/run index 65c9a4f12..d377dd939 100755 --- a/packages/go/1.25.5/run +++ b/packages/go/1.25.5/run @@ -1,7 +1,4 @@ #!/usr/bin/env bash -mv $1 $1.go -#filename=$1.go -filename=*.go shift -GOCACHE=$PWD go run $filename "$@" +./binary "$@" From 0b90092911b5826c4f1e64ae7b015a060081d348 Mon Sep 17 00:00:00 2001 From: koki-develop Date: Sun, 11 Jan 2026 23:18:19 +0900 Subject: [PATCH 13/13] env: remove GOMAXPROCS=1 override for Go 1.25.5 Allow Go 1.25.5 to use container-aware GOMAXPROCS setting by default. This change supports better CPU utilization and aligns with recent increases in process and timeout limits for this version. --- packages/go/1.25.5/environment | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/go/1.25.5/environment b/packages/go/1.25.5/environment index c2e39ffd3..88299c1ad 100644 --- a/packages/go/1.25.5/environment +++ b/packages/go/1.25.5/environment @@ -1,3 +1,2 @@ export PATH=$PWD/go/bin:$PATH export GOPATH=$PWD/gopath -export GOMAXPROCS=1