Repository navigation
fix(headless): run Pier task controller in container - #1475
Merged
Merged
Conversation
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.
Summary
exec()transport boundaryMAKA_ECONOMY_TASK_MODE=false, so instruction signals cannot silently change the benchmark system promptAgentRun's durable RuntimeEvent ledgerRefs #1473
Verification
npm --workspace @maka/headless test: 1330 passed across 124 suitesnpm run lint: passed (2123 files)npm run format:check: passed (1082 files)npm run typecheck: passed for every workspace_ToolExecutorServerRoot cause
Pier's
DockerEnvironment.exec()merges stderr into stdout. The previous Maka arm crossed that boundary for every tool call, while the other benchmark arms ran their complete agent processes inside the task container. Maka now uses the same placement: Pier supervises one container-local task-run process, and Maka's tools execute locally inside that container.Two integration consequences also had to be handled at their existing owners:
EnvHttpProxyAgent-backed fetch from Pier's proxy environment and close it with the backend lifecycle.SessionManagerfor the parent run. That helper now exposes the boundAgentRun's authoritative durable event reader so provider continuations replay persisted tool facts instead of an in-memory shadow.Security
The upstream provider key or OAuth authority never enters the task container. A per-attempt host proxy mints the only token exposed to the container, Pier network policy allowlists only that proxy hostname, provider environment variables are stripped from tool subprocesses, and the mounted Node toolchain is fingerprinted and read-only.