mirror of
https://github.com/norandom/OpenUltraSAST.git
synced 2026-10-16 11:49:28 +00:00
Deletes harness_ext.py and hunter_harness.py with their HarnessX-only tests (the judge path, verify_judge.py, went in task 5). The harnessx extra, its mypy override and its uv.lock entries are removed (uv lock drops only packages; no remaining version changes). The conftest fixture becomes assert_cold_import; test_gate's two never-import checks become one allow-list (stdlib, openultrasast, yaml) over the governance planes' module-level imports, and the skipped live-extra tolerance test is deleted. Audit rows for the two modules are removed, stage_processors is reworded, and the module-audit manifest is regenerated (no orphan). test_removed_plane_references implements Req 2.4 over src, tests and pyproject.toml: a match must carry a `retired 2026-..` tag (the spec's own slug is not counted). The README part is a strict xfail until task 8 rewrites the README's plane sections. Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01EmM1j46qgKMh3zqD1QMwEo
34 lines
1.6 KiB
Docker
34 lines
1.6 KiB
Docker
# The ax task-runner image for this project (ai-service-plane Requirement 4.2).
|
|
#
|
|
# ax's default runner image is gcr.io/ax-substrate/ate-images/ax-task-runner@sha256:3a0dea6a... (Python 3.12,
|
|
# git, curl, ax's Go runner as PID 1). This image keeps the same base and the same contract -- PID 1 is
|
|
# /usr/local/bin/ax-task-runner, fed AX_TASK_YAML / AX_WORKSPACES_YAML, serving /healthz and /readyz on port 80 --
|
|
# but the runner is this package's `openultrasast.plane.runner`, so a task's spec.command names a module under
|
|
# `openultrasast.plane.tasks`, run as a child process; the output directory is delivered to the reconciler when
|
|
# it exits, and the runner then keeps serving until SIGTERM, as ax requires of PID 1.
|
|
#
|
|
# Build from the repository root (the package is the context):
|
|
# docker build -f plane/Dockerfile.runner -t openultrasast-runner:dev .
|
|
# `ops/ax/up.sh` builds it and loads it into kind; nothing here is exercised by the unit tests.
|
|
|
|
FROM python:3.12-slim
|
|
|
|
RUN apt-get update \
|
|
&& apt-get install -y --no-install-recommends git ca-certificates \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
WORKDIR /opt/openultrasast
|
|
COPY pyproject.toml README.md ./
|
|
COPY src ./src
|
|
# Core install only: PyYAML for the manifests, no extras (no tree-sitter).
|
|
RUN pip install --no-cache-dir . \
|
|
&& printf '#!/bin/sh\nexec python -m openultrasast.plane.runner "$@"\n' > /usr/local/bin/ax-task-runner \
|
|
&& chmod 0755 /usr/local/bin/ax-task-runner
|
|
|
|
# ax mounts the persistent volume here; it is also the command's working directory in ax's own runner.
|
|
RUN mkdir -p /workspace
|
|
WORKDIR /workspace
|
|
|
|
EXPOSE 80
|
|
ENTRYPOINT ["/usr/local/bin/ax-task-runner"]
|