From aedee4b8231bf050c3240a00ab6645ede5d87ee9 Mon Sep 17 00:00:00 2001 From: gsxdsm Date: Mon, 17 Aug 2026 22:43:59 -0700 Subject: [PATCH] feat(docker): ship ripgrep in the image The coding agents Fusion drives reach for `rg` as their primary search tool. It was absent from the image, so inside a container they silently fall back to slower or partial search while working fine on a developer machine that has it installed. Operator asked for it by default. Installed alongside git and ca-certificates in the runner stage, and covered by the same runner-stage guard so it cannot quietly drop out again. Co-Authored-By: Claude Opus 5 --- .changeset/docker-ship-ripgrep.md | 7 +++++++ Dockerfile | 5 ++++- scripts/__tests__/dockerfile-workspace-manifests.test.mjs | 5 +++++ 3 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 .changeset/docker-ship-ripgrep.md diff --git a/.changeset/docker-ship-ripgrep.md b/.changeset/docker-ship-ripgrep.md new file mode 100644 index 0000000000..eea6a76647 --- /dev/null +++ b/.changeset/docker-ship-ripgrep.md @@ -0,0 +1,7 @@ +--- +"@runfusion/fusion": patch +--- + +summary: The Docker image now ships ripgrep, so coding agents can search at full speed in a container. +category: fix +dev: Adds `ripgrep` to the runner stage apt install alongside git and ca-certificates, and extends the runner-stage assertion in scripts/__tests__/dockerfile-workspace-manifests.test.mjs to cover it. Agents reach for `rg` first and silently degrade to slower or partial fallbacks when it is absent, which only shows up in the container because developer machines have it installed. diff --git a/Dockerfile b/Dockerfile index ebe5e200fe..d323302960 100644 --- a/Dockerfile +++ b/Dockerfile @@ -74,8 +74,11 @@ ENV PORT=4040 # breaks project setup outright (operator report). It hid behind Node, which carries its own bundled # CA store: the dashboard, model APIs, and OAuth token exchanges all worked, so the image looked # healthy right up until the first clone. +# FNXC:DockerRun 2026-08-18-06:05: ripgrep ships by default because the coding agents Fusion drives +# reach for `rg` as their primary search tool; without it they silently degrade to slower/partial +# fallbacks inside the container while working fine on a developer machine that has it installed. RUN apt-get update \ - && apt-get install -y --no-install-recommends git ca-certificates \ + && apt-get install -y --no-install-recommends git ca-certificates ripgrep \ && rm -rf /var/lib/apt/lists/* RUN corepack enable && corepack prepare pnpm@10.33.0 --activate diff --git a/scripts/__tests__/dockerfile-workspace-manifests.test.mjs b/scripts/__tests__/dockerfile-workspace-manifests.test.mjs index ddebd56b6a..5c015de1de 100644 --- a/scripts/__tests__/dockerfile-workspace-manifests.test.mjs +++ b/scripts/__tests__/dockerfile-workspace-manifests.test.mjs @@ -126,4 +126,9 @@ test("runner stage installs ca-certificates alongside git", () => { /\bca-certificates\b/, "runner stage must install ca-certificates — git cannot verify HTTPS remotes without a system CA bundle", ); + assert.match( + aptInstall, + /\bripgrep\b/, + "runner stage must install ripgrep — the coding agents Fusion drives use `rg` as their primary search tool", + ); });