#227·pxpipe

fix(anthropic): preserve rendered-context provenance

Author: alteixeira20Created Aug 12, 2026Updated Aug 12, 2026

Problem

PXPipe can render static Anthropic system/configuration context into image blocks attached to the first user message because Anthropic system blocks cannot contain images.

The rendered image banner currently tells Claude to follow those user-role images as operating instructions. In real Claude Code usage this can be interpreted as apparent prompt injection / reasoning-extraction framing and cause a false refusal, even though the content originated from the legitimate request.

Expected behavior

PXPipe should preserve truthful provenance when relocating trusted configuration across modality/role boundaries:

  • rendered image framing should be descriptive, not role-elevating;
  • the actual system field should state that PXPipe produced those images from the request's configuration;
  • Claude Code's preserved identity must remain first;
  • tool schemas, request content, cache semantics, and unrelated providers must remain unchanged.

Observed validation

After applying the fix locally:

  • focused Anthropic provenance/safety/cache regressions pass;
  • production dependency audit passes;
  • TypeScript typecheck passes;
  • full test suite passes;
  • build and command-entrypoint smoke checks pass;
  • a freshly rebuilt/restarted PXPipe daemon works correctly with Claude without the previous false refusal.