From 0dfecfee9d83709d7f8e941c3ddc9f0a6b2c8b7e Mon Sep 17 00:00:00 2001 From: claude-bot-go Date: Mon, 20 Jul 2026 18:11:18 +0800 Subject: [PATCH] fix(#65): move deploy/docker-compose.yml to repo root MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Move docker-compose.yml from deploy/ to the repository root so that works without specifying a file path. Changes: - Rename deploy/docker-compose.yml → docker-compose.yml - Fix build context from to (file is now at root) - Update Dockerfile comment referencing the file - Update bench/load-test-infra.md command from to bare - Update docs/15-milestones.md milestone references Fixes WasmAgent/symkernel#65 --- Dockerfile | 2 +- bench/load-test-infra.md | 2 +- deploy/docker-compose.yml => docker-compose.yml | 2 +- docs/15-milestones.md | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) rename deploy/docker-compose.yml => docker-compose.yml (99%) diff --git a/Dockerfile b/Dockerfile index 64f5cd3..afea9e7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -38,7 +38,7 @@ FROM debian:bookworm-slim AS final # is required because internal/verify/z3.go invokes Z3 via # exec.Command("z3", "-in"). On Cloudflare Containers the image runs alone # (there is no docker-compose sidecar to provide the z3 binary via a shared -# volume, as deploy/docker-compose.yml does for local dev), so the binary +# volume, as docker-compose.yml does for local dev), so the binary # must be baked into the image for POST /v1/verify/z3 to function. RUN apt-get update && \ apt-get install -y --no-install-recommends libz3 z3 && \ diff --git a/bench/load-test-infra.md b/bench/load-test-infra.md index b07d70a..0568503 100644 --- a/bench/load-test-infra.md +++ b/bench/load-test-infra.md @@ -34,7 +34,7 @@ apply the M3 decision gate. ### Local (docker-compose) - **URL:** `http://localhost:${SYMKERNEL_PORT:-8080}/v1/verify/z3` -- Start: `docker compose -f deploy/docker-compose.yml up` +- Start: `docker compose up` - **Auth:** `Authorization: Bearer ` (set on the `symkerneld` service; the middleware rejects all requests if unset). diff --git a/deploy/docker-compose.yml b/docker-compose.yml similarity index 99% rename from deploy/docker-compose.yml rename to docker-compose.yml index a77dbe9..391a932 100644 --- a/deploy/docker-compose.yml +++ b/docker-compose.yml @@ -36,7 +36,7 @@ services: symkerneld: build: - context: .. + context: . dockerfile: Dockerfile container_name: symkerneld ports: diff --git a/docs/15-milestones.md b/docs/15-milestones.md index b30f062..2a949cc 100644 --- a/docs/15-milestones.md +++ b/docs/15-milestones.md @@ -21,7 +21,7 @@ language-agnostic and non-invasive to existing runtimes. - [ ] `schemas/` — sync script `make sync-schemas` that pulls `constraint-ir.schema.json` and `constraint-violation.schema.json` from `wasmagent-js/packages/compliance/schemas` at a pinned commit; CI step fails if local copy drifts - [ ] `deploy/Dockerfile` — multi-stage build: `golang:1.22-bookworm` builder → `gcr.io/distroless/static` final image; static binary, no CGO in Phase 0 - [ ] `deploy/wrangler.toml` — Cloudflare Containers deployment config: container binding name `SYMKERNEL`, memory/vCPU sizing for Phase 0 load -- [ ] `deploy/docker-compose.yml` — local dev environment: single `symkerneld` service with env vars; `docker compose up` is the quickstart +- [ ] `docker-compose.yml` — local dev environment: single `symkerneld` service with env vars; `docker compose up` is the quickstart - [ ] `bench/` — comparison harness: run the 6 `policy-compliance` tasks from `bscode/fixtures/bench-v0/tasks/` against both the existing keyword+n-gram path and the new `cel_expr` path; output a markdown table of accuracy/false-positive rates - [ ] README — 5-minute quickstart: `docker run`, example `curl` request against each endpoint, output expected @@ -48,7 +48,7 @@ language-agnostic and non-invasive to existing runtimes. - [ ] `POST /v1/verify/z3` — OPA-envelope endpoint: `{"input":{"constraints_smt2":"...","timeout_ms":2000}}` → `{"result":{"sat":"sat","model":{...}},"decision_id":"uuid"}`; test cases: trivially sat, trivially unsat, timeout-induced unknown - [ ] `internal/repair` — generate-error-fix loop: `Repair(program string, trapResult SandboxResult) (RepairPrompt, error)` assembles a structured prompt from trap details for LLM-driven fix; does NOT call LLM itself (caller injects); covered by unit test with a mock trap - [ ] `deploy/Dockerfile` — update to include Z3 shared library (`libz3.so`) in final image; document CGO linker flags in Makefile -- [ ] `deploy/docker-compose.yml` — add `z3` service or build Z3 from source in builder stage; document which approach is chosen and why +- [ ] `docker-compose.yml` — add `z3` service or build Z3 from source in builder stage; document which approach is chosen and why - [ ] Load test: measure Cloudflare Containers cold-start and p99 latency under 10 concurrent Z3 requests; record results in `bench/z3-load-test.md`; decision gate: if p99 > 2s or scale-to-zero cold start > 5s, document migration path to self-hosted VPS ---