Repository navigation
deps: the investigator's runtime relocked (Dependabot #36 #37 #38), and its message reaches the model as words - #39
Merged
Conversation
… August — claude-agent-sdk 0.2.176, fastapi 0.162.0, uvicorn 0.54.0; pytest 9.2.0, ruff 0.17.3, mypy 2.4.1 everywhere — Dependabot #36 #37 #38 Dependabot's first proposal for the investigator's runtime since its strategy was fixed (#35), with the pipe's and the judge's test tooling, relocked as one change. Exact pins follow the bot and floors take the newest, so the SDK is 0.2.176 where the bot proposed 0.2.175; the newer release only updates the bundled CLI. Each version has its upstream tag, and nothing else moved in the locks. The setuptools build floor rises to 84.2.1 as proposed. The SDK wheel bundles the CLI the engine runs and looks for it first, so this also moves the investigator's agent runtime from CLI 2.1.235 to 2.1.316; the npm CLI the Dockerfile pins stays on PATH unused, as it was in 0.9.2. The changelog for 0.2.141 to 0.2.176 is bundled-CLI updates plus additive options and typing, and mypy checks the engine's options against 0.2.176.
… or chat text no longer makes the CLI read a file the guard never sees With verbatim_prompts the CLI takes the message as text, not as input typed at its prompt. Before it, an `@path` anywhere in an alert or a chat reply made the CLI read that file and hand it to the model as a Read result no PreToolUse hook saw, and a message starting with `/` ran a CLI command instead of an investigation. Measured on the 0.9.2 image and on this change's image with a recording stand-in for the model API. After the switch neither happens, and the scripted turn still runs with the guard refusing a protected write. The test pins the option, the guard mutation list flips it, and the containment table's guard row says what it stops. The decision note records the measurement and one finding left for the operator: the engine runs the SDK's bundled CLI, not the npm one the Dockerfile pins.
This was referenced Nov 2, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Dependabot's first proposal for the investigator's runtime since #35, plus the pipe's and the judge's test tooling, relocked as one change. A second commit sets one engine option the new SDK brings, because reading the SDK's changelog for this bump turned up a hole the guard could not see.
Versions.
Exact pins follow the bot and floors take the newest, so the SDK is 0.2.176 where the bot proposed 0.2.175; the newer release only updates the bundled CLI. Each version has its upstream tag, and nothing else moved in the locks. The investigator's setuptools build floor rises to 84.2.1 as proposed.
The CLI the engine runs moves too. The SDK wheel bundles a Claude Code CLI and looks for it before anything on PATH. Read back from the images:
So the Dockerfile's
CLAUDE_CODE_VERSIONhas not decided the engine's CLI since the SDK began bundling one; the lock has. This pull request does not change that. Whether the image should drop the npm CLI or point the engine at it is left to the operator.What verified the SDK bump. The gate's tests replace the SDK client, so they cannot. mypy checks the engine's options against 0.2.176's types and is clean; it rejects a made-up option name, so the check is real. The changelog for 0.2.141 to 0.2.176 is bundled-CLI updates plus additive options and typing. And the real service ran in both images against a recording stand-in for the model API on an internal Docker network, under a third-party model name:
@pathfile reached the model/cost show mereached the modelNot verified: a real model. None is reachable from here, so an investigation with real tool choices on CLI 2.1.316 is still unobserved. The new CLI words the guard's refusal as
PreToolUse:Bash hook error: input guard: …; the write is still refused.The message reaches the model as words. SDK 0.2.158 added
verbatim_prompts. Without it, an@pathanywhere in alert or chat text made the CLI read that file and hand it to the model as a Read result no PreToolUse hook saw, so neither the guard nor the audit knew; and a message starting with/ran a CLI command instead of an investigation. The second commit sets it, with a test, a guard mutation that requires the test to fail, the containment row, and a decision note. No message the service builds relies on either expansion.Images. The SDK, fastapi and uvicorn are runtime for the investigator, so its image changes at the next release. Nothing is deployed.
Supersedes #36, #37 and #38.
Gate: STACK GATE GREEN locally; CI read back before merging.