From b440f9103cd9f4e7b431b9633b378dd872b556be Mon Sep 17 00:00:00 2001 From: itswl Date: Fri, 23 Oct 2026 14:46:02 +0800 Subject: [PATCH] =?UTF-8?q?release:=200.7.1=20=E2=80=94=20the=20quickstart?= =?UTF-8?q?=20points=20at=20images=20that=20ship=20neither=20the=20CA=20bu?= =?UTF-8?q?ndle=20with=20compromised=20intermediates=20nor=20the=20slow=20?= =?UTF-8?q?trace-header=20parser?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The six image lines move from 0.7.0 to 0.7.1, pinned by the OCI index digests GHCR serves for the tags, read anonymously after the release run for the tag finished green on every job; :latest carries the same four. The file's own comment says why it cannot point at an older tag. Run the way a stranger does before this commit, from an empty directory holding only the compose file and scripts/demo.sh: the compose pulled by digest, the boards answered, demo.sh ran all nine steps on the rehearsal adapter and exited 0, and down -v removed it. Read back from the running images: the pipe and the judge carry certifi 2026.10.19, opentelemetry-api 1.45.1 and fastapi 0.161.1, the investigator opentelemetry-api 1.45.1; no image trusts the root PYSEC-2026-4320 names, in certifi's bundle, the system store or Node's built-in roots. --- docker-compose.quickstart.yml | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/docker-compose.quickstart.yml b/docker-compose.quickstart.yml index 057ffdac..c53a79cd 100644 --- a/docker-compose.quickstart.yml +++ b/docker-compose.quickstart.yml @@ -40,13 +40,16 @@ # names the version it read; 0.7.0 is the first whose bridge refuses to start # without its secret (set below), whose pipe answers a replayed request as a # duplicate, and whose investigator measures its posture with the tools its -# image carries. This file needs all of it, so it cannot point at an older tag. +# image carries; 0.7.1 is the first whose images ship neither a CA bundle that +# trusts compromised intermediates nor a trace-header parser one request could +# keep busy for seconds. This file needs all of it, so it cannot point at an +# older tag. name: hookstack services: hookrelay: - image: ghcr.io/itswl/hookrelay:0.7.0@sha256:6b303cb074f5ac9ba1c82be94b6fda5ae2754a88690e1ca90f8f38b1083886a0 + image: ghcr.io/itswl/hookrelay:0.7.1@sha256:5e3e20c37905d0bf82e4f6086b8eb5d68677461919c78a683028b02ee9861a53 container_name: hs-hookrelay restart: unless-stopped environment: @@ -88,7 +91,7 @@ services: - sink hookjudge: - image: ghcr.io/itswl/hookjudge:0.7.0@sha256:4024f9910b9025e5522edff857e599aefc32794da202ffbdf58eea3d1591c8fc + image: ghcr.io/itswl/hookjudge:0.7.1@sha256:d9f617024cbb4b2baee2e318a0ba87ca5d8436163fea4ec450df69f4733927b1 container_name: hs-hookjudge restart: unless-stopped environment: @@ -118,7 +121,7 @@ services: # operator would actually have received. It runs from the pipe's own image # because that image now carries it — one fewer thing to pull, and no mount. sink: - image: ghcr.io/itswl/hookrelay:0.7.0@sha256:6b303cb074f5ac9ba1c82be94b6fda5ae2754a88690e1ca90f8f38b1083886a0 + image: ghcr.io/itswl/hookrelay:0.7.1@sha256:5e3e20c37905d0bf82e4f6086b8eb5d68677461919c78a683028b02ee9861a53 container_name: hs-sink restart: unless-stopped command: ["python", "-u", "/app/examples/sink.py"] @@ -131,7 +134,7 @@ services: # exactly the hop a real deployment makes to a custom bot's incoming URL. # `ops-feishu` in the baked config is `type: bridge` and points here. lark-bridge: - image: ghcr.io/itswl/lark-bridge:0.7.0@sha256:9cec031adcf6ba71190f5a0687eed286729dae158cd1f1d6262abeb58cb2e4ee + image: ghcr.io/itswl/lark-bridge:0.7.1@sha256:a2cb299043a983a59de1f60fb8fb20b2c1769255c9295091b0a555b4505f281f container_name: hs-lark-bridge restart: unless-stopped environment: @@ -149,7 +152,7 @@ services: # not a model: it reports itself as `stub-4o-mini`. Point the judge's AI vars # at a real provider and this stops being used. stub-ai: - image: ghcr.io/itswl/hookjudge:0.7.0@sha256:4024f9910b9025e5522edff857e599aefc32794da202ffbdf58eea3d1591c8fc + image: ghcr.io/itswl/hookjudge:0.7.1@sha256:d9f617024cbb4b2baee2e318a0ba87ca5d8436163fea4ec450df69f4733927b1 container_name: hs-stub-ai restart: unless-stopped command: ["python", "-u", "/app/examples/stub_ai.py"] @@ -161,7 +164,7 @@ services: # pipe to the same channels; the disk alert in demo.sh also proposes a # two-step procedure the approve button runs against the allowlist below. hookprobe: - image: ghcr.io/itswl/hookprobe:0.7.0@sha256:cbf1fcb12b765cd4881381a6ba4196124aa65cb7a0a3e35d62f89ec1fd3214d9 + image: ghcr.io/itswl/hookprobe:0.7.1@sha256:9a4f7d26c0457df35f643cb083f325dd1cb5e78ad6035f29b6045fc5ced23ef0 container_name: hs-hookprobe restart: unless-stopped # The agent executes arbitrary bash, so the container is bounded even in a