Skip to content

Standalone OpenAI-compatible requests include unsupported cache_control fields #51

Description

@cenab

Summary

Standalone OpenAI-compatible mode in pool 1.0.16 sends cache_control on message text parts and tool definitions. A strict Chat Completions endpoint rejects the request before inference. This prevents using Tsubasa through the documented standalone route.

Reproduction

Run the released macOS arm64 binary against a loopback HTTP recorder with a synthetic credential:

export POOLSIDE_STANDALONE_BASE_URL=http://127.0.0.1:8080
export POOLSIDE_STANDALONE_MODEL=tsubasa-fast
export POOLSIDE_STANDALONE_CONTEXT_LENGTH=32768
export POOLSIDE_API_KEY=synthetic-test-key
pool exec -d /path/to/empty-test-project -o json -p 'Reply with a greeting. Do not use tools.'

The root base URL correctly produces POST /v1/chat/completions. The captured request includes these fields:

messages[0].content[0].cache_control = {"type":"ephemeral"}
messages[1].content[0].cache_control = {"type":"ephemeral"}
tools[15].cache_control = {"type":"ephemeral"}

A validator that accepts the supported OpenAI Chat Completions fields but rejects unknown keys returns 400 at those paths. The CLI retries three times and exits 1. This is a controlled compatibility reproduction, not a claim of a successful live Tsubasa run. No real credentials or repository data were used.

Expected behavior

Provide a documented way to disable provider-specific cache hints for a generic OpenAI-compatible endpoint, or omit those hints unless the endpoint supports them. I did not find such a switch in pool --help, pool exec --help, or the current public README.

Environment

  • pool 1.0.16, official darwin-arm64 release
  • macOS arm64, isolated application configuration, preserved HOME
  • Public README revision fcabc59ff67810ecec5429ec9d45fa1dda6c1136
  • Binary archive SHA256: 0932af3eb2b57a863acacb664ec8b2b1d3a76c2570a788b086001608cc585f74

Prepared with AI assistance while validating a Tsubasa integration. Please point me to an existing native option if one already covers this.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions