Update dockerfile tests.
diff --git a/dockerimg/testdata/testcreatedockerfile_empty_repo.httprr b/dockerimg/testdata/testcreatedockerfile_empty_repo.httprr
index b7e43a6..c1e009f 100644
--- a/dockerimg/testdata/testcreatedockerfile_empty_repo.httprr
+++ b/dockerimg/testdata/testcreatedockerfile_empty_repo.httprr
@@ -1,9 +1,9 @@
 httprr trace v1
-3814 2302
+3831 2022
 POST https://api.anthropic.com/v1/messages HTTP/1.1

 Host: api.anthropic.com

 User-Agent: Go-http-client/1.1

-Content-Length: 3617

+Content-Length: 3634

 Anthropic-Version: 2023-06-01

 Content-Type: application/json

 

@@ -15,7 +15,7 @@
    "content": [
     {
      "type": "text",
-     "text": "\nCall the dockerfile tool to create a Dockerfile.\nThe parameters to dockerfile fill out the From and ExtraCmds\ntemplate variables in the following Go template:\n\n```\nFROM golang:1.24-bookworm\n\n# Switch from dash to bash by default.\nSHELL [\"/bin/bash\", \"-euxo\", \"pipefail\", \"-c\"]\n\n# attempt to keep package installs lean\nRUN printf '%s\\n' \\\n      'path-exclude=/usr/share/man/*' \\\n      'path-exclude=/usr/share/doc/*' \\\n      'path-exclude=/usr/share/doc-base/*' \\\n      'path-exclude=/usr/share/info/*' \\\n      'path-exclude=/usr/share/locale/*' \\\n      'path-exclude=/usr/share/groff/*' \\\n      'path-exclude=/usr/share/lintian/*' \\\n      'path-exclude=/usr/share/zoneinfo/*' \\\n    \u003e /etc/dpkg/dpkg.cfg.d/01_nodoc\n\nRUN apt-get update; \\\n\tapt-get install -y --no-install-recommends \\\n\t\tgit jq sqlite3 npm nodejs gh ripgrep fzf python3 curl vim chromium \u0026\u0026 \\\n\tapt-get clean \u0026\u0026 \\\n\trm -rf /var/lib/apt/lists/* \u0026\u0026 \\\n\trm -rf /usr/share/{doc,doc-base,info,lintian,man,groff,locale,zoneinfo}/*\n\nENV PATH=\"$GOPATH/bin:$PATH\"\n\n# While these binaries install generally useful supporting packages,\n# the specific versions are rarely what a user wants so there is no\n# point polluting the base image module with them.\n\nRUN go install golang.org/x/tools/cmd/goimports@latest; \\\n\tgo install golang.org/x/tools/gopls@latest; \\\n\tgo install mvdan.cc/gofumpt@latest; \\\n\tgo clean -cache -testcache -modcache\n\nENV GOTOOLCHAIN=auto\nENV SKETCH=1\n\nRUN mkdir -p /root/.cache/sketch/webui\n\nARG GIT_USER_EMAIL\nARG GIT_USER_NAME\n\nRUN git config --global user.email \"$GIT_USER_EMAIL\" \u0026\u0026 \\\n    git config --global user.name \"$GIT_USER_NAME\" \u0026\u0026 \\\n    git config --global http.postBuffer 524288000\n\nLABEL sketch_context=\"{{.InitFilesHash}}\"\nCOPY . /app\nRUN rm -f /app/tmp-sketch-dockerfile\n\nWORKDIR /app{{.SubDir}}\nRUN if [ -f go.mod ]; then go mod download; fi\n\n# Switch to lenient shell so we are more likely to get past failing extra_cmds.\nSHELL [\"/bin/bash\", \"-uo\", \"pipefail\", \"-c\"]\n\n{{.ExtraCmds}}\n\n# Switch back to strict shell after extra_cmds.\nSHELL [\"/bin/bash\", \"-euxo\", \"pipefail\", \"-c\"]\n\nCMD [\"/bin/sketch\"]\n\n```\n\nIn particular:\n- Assume it is primarily a Go project.\n- Python env setup is challenging and often no required, so any RUN commands involving python tooling should be written to let docker build continue if there is a failure.\n- Include any tools particular to this repository that can be inferred from the given context.\n- Append || true to any apt-get install commands in case the package does not exist.\n- MINIMIZE the number of extra_cmds generated. Straightforward environments do not need any.\n- Do NOT expose any ports.\n- Do NOT generate any CMD or ENTRYPOINT extra commands.\n"
+     "text": "\nCall the dockerfile tool to create a Dockerfile.\nThe parameters to dockerfile fill out the From and ExtraCmds\ntemplate variables in the following Go template:\n\n```\nFROM golang:1.24-bookworm\n\n# Switch from dash to bash by default.\nSHELL [\"/bin/bash\", \"-euxo\", \"pipefail\", \"-c\"]\n\n# attempt to keep package installs lean\nRUN printf '%s\\n' \\\n      'path-exclude=/usr/share/man/*' \\\n      'path-exclude=/usr/share/doc/*' \\\n      'path-exclude=/usr/share/doc-base/*' \\\n      'path-exclude=/usr/share/info/*' \\\n      'path-exclude=/usr/share/locale/*' \\\n      'path-exclude=/usr/share/groff/*' \\\n      'path-exclude=/usr/share/lintian/*' \\\n      'path-exclude=/usr/share/zoneinfo/*' \\\n    \u003e /etc/dpkg/dpkg.cfg.d/01_nodoc\n\nRUN apt-get update; \\\n\tapt-get install -y --no-install-recommends \\\n\t\tgit jq sqlite3 npm nodejs gh ripgrep fzf python3 curl vim chromium lsof iproute2 less \u0026\u0026 \\\n\tapt-get clean \u0026\u0026 \\\n\trm -rf /var/lib/apt/lists/* \u0026\u0026 \\\n\trm -rf /usr/share/{doc,doc-base,info,lintian,man,groff,locale,zoneinfo}/*\n\nENV PATH=\"$GOPATH/bin:$PATH\"\n\n# While these binaries install generally useful supporting packages,\n# the specific versions are rarely what a user wants so there is no\n# point polluting the base image module with them.\n\nRUN go install golang.org/x/tools/cmd/goimports@latest; \\\n\tgo install golang.org/x/tools/gopls@latest; \\\n\tgo install mvdan.cc/gofumpt@latest; \\\n\tgo clean -cache -testcache -modcache\n\nENV GOTOOLCHAIN=auto\nENV SKETCH=1\n\nRUN mkdir -p /root/.cache/sketch/webui\nARG GIT_USER_EMAIL\nARG GIT_USER_NAME\n\nRUN git config --global user.email \"$GIT_USER_EMAIL\" \u0026\u0026 \\\n    git config --global user.name \"$GIT_USER_NAME\" \u0026\u0026 \\\n    git config --global http.postBuffer 524288000\n\nLABEL sketch_context=\"{{.InitFilesHash}}\"\nCOPY . /app\nRUN rm -f /app/tmp-sketch-dockerfile\n\nWORKDIR /app{{.SubDir}}\nRUN if [ -f go.mod ]; then go mod download; fi\n\n# Switch to lenient shell so we are more likely to get past failing extra_cmds.\nSHELL [\"/bin/bash\", \"-uo\", \"pipefail\", \"-c\"]\n\n{{.ExtraCmds}}\n\n# Switch back to strict shell after extra_cmds.\nSHELL [\"/bin/bash\", \"-euxo\", \"pipefail\", \"-c\"]\n\nCMD [\"/bin/sketch\"]\n\n```\n\nIn particular:\n- Assume it is primarily a Go project.\n- Python env setup is challenging and often no required, so any RUN commands involving python tooling should be written to let docker build continue if there is a failure.\n- Include any tools particular to this repository that can be inferred from the given context.\n- Append || true to any apt-get install commands in case the package does not exist.\n- MINIMIZE the number of extra_cmds generated. Straightforward environments do not need any.\n- Do NOT expose any ports.\n- Do NOT generate any CMD or ENTRYPOINT extra commands.\n"
     },
     {
      "type": "text",
@@ -49,25 +49,25 @@
 }HTTP/2.0 200 OK

 Anthropic-Organization-Id: 3c473a21-7208-450a-a9f8-80aebda45c1b

 Anthropic-Ratelimit-Input-Tokens-Limit: 200000

-Anthropic-Ratelimit-Input-Tokens-Remaining: 200000

-Anthropic-Ratelimit-Input-Tokens-Reset: 2025-05-12T22:11:34Z

+Anthropic-Ratelimit-Input-Tokens-Remaining: 191000

+Anthropic-Ratelimit-Input-Tokens-Reset: 2025-05-20T02:20:41Z

 Anthropic-Ratelimit-Output-Tokens-Limit: 80000

 Anthropic-Ratelimit-Output-Tokens-Remaining: 80000

-Anthropic-Ratelimit-Output-Tokens-Reset: 2025-05-12T22:11:38Z

+Anthropic-Ratelimit-Output-Tokens-Reset: 2025-05-20T02:20:41Z

 Anthropic-Ratelimit-Requests-Limit: 4000

 Anthropic-Ratelimit-Requests-Remaining: 3999

-Anthropic-Ratelimit-Requests-Reset: 2025-05-12T22:11:34Z

+Anthropic-Ratelimit-Requests-Reset: 2025-05-20T02:20:35Z

 Anthropic-Ratelimit-Tokens-Limit: 280000

-Anthropic-Ratelimit-Tokens-Remaining: 280000

-Anthropic-Ratelimit-Tokens-Reset: 2025-05-12T22:11:34Z

+Anthropic-Ratelimit-Tokens-Remaining: 271000

+Anthropic-Ratelimit-Tokens-Reset: 2025-05-20T02:20:41Z

 Cf-Cache-Status: DYNAMIC

-Cf-Ray: 93ed40aa2a0a15f1-SJC

+Cf-Ray: 94285b132c007ad9-SJC

 Content-Type: application/json

-Date: Mon, 12 May 2025 22:11:38 GMT

-Request-Id: req_011CP4QKDoEASpcodpKxqnmc

+Date: Tue, 20 May 2025 02:20:41 GMT

+Request-Id: req_011CPHyy3GAwqsKthn5XDGWq

 Server: cloudflare

 Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

 Via: 1.1 google

 X-Robots-Tag: none

 

-{"id":"msg_01CqJZHCyfadjtubpXjTZQax","type":"message","role":"assistant","model":"claude-3-7-sonnet-20250219","content":[{"type":"text","text":"I'll help you create a Dockerfile using the provided template. Based on your instructions, I need to create a minimal set of extra commands for a Go project, ensuring Python setup commands don't stop the build if they fail, and add safety measures to apt-get commands."},{"type":"tool_use","id":"toolu_01R7nDPwC4q2mK9em7o6zqja","name":"dockerfile","input":{"extra_cmds":"RUN go mod tidy || true\n\n# Install any Python dependencies if a requirements.txt exists, but continue on failure\nRUN if [ -f requirements.txt ]; then pip3 install -r requirements.txt || true; fi\n\n# Install any npm dependencies if package.json exists\nRUN if [ -f package.json ]; then npm install || true; fi\n\n# Install additional tools that might be useful for Go development\nRUN go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest || true\n\n# Install any additional needed packages\nRUN apt-get update && apt-get install -y --no-install-recommends \\\n    make \\\n    protobuf-compiler \\\n    || true"}}],"stop_reason":"tool_use","stop_sequence":null,"usage":{"input_tokens":4,"cache_creation_input_tokens":1286,"cache_read_input_tokens":0,"output_tokens":278}}
\ No newline at end of file
+{"id":"msg_01CfhEVAodDgD6uP9AG7e7tH","type":"message","role":"assistant","model":"claude-3-7-sonnet-20250219","content":[{"type":"text","text":"I'll help you create a Dockerfile for your Go project by calling the dockerfile tool with appropriate extra commands.\n\nFrom the template you provided, I can see this is primarily a Go project, but may have Python dependencies as well. I'll keep the extra commands minimal while ensuring Python setup commands can continue even if they fail."},{"type":"tool_use","id":"toolu_01MKdb5bTTvguR3fuF63dzc3","name":"dockerfile","input":{"extra_cmds":"RUN if [ -f requirements.txt ]; then pip3 install -r requirements.txt || true; fi\n\nRUN if [ -f package.json ]; then npm install || true; fi\n\n# Install any project-specific linters and tools\nRUN go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest || true"}}],"stop_reason":"tool_use","stop_sequence":null,"usage":{"input_tokens":4,"cache_creation_input_tokens":1295,"cache_read_input_tokens":0,"output_tokens":206}}
\ No newline at end of file