Skip to content

feat: add Gemini OpenAI Normalizer plugin - #104

Open
licoba wants to merge 1 commit into
router-for-me:mainfrom
licoba:feat/gemini-openai-normalizer-v2
Open

feat: add Gemini OpenAI Normalizer plugin#104
licoba wants to merge 1 commit into
router-for-me:mainfrom
licoba:feat/gemini-openai-normalizer-v2

Conversation

@licoba

@licoba licoba commented Aug 25, 2026

Copy link
Copy Markdown

Plugin

Release evidence

The release contains checksums.txt and store-compatible archives for:

  • Linux amd64 / arm64 (GLIBC 2.17-or-older baseline)
  • Darwin amd64 / arm64
  • Windows amd64 / arm64
  • FreeBSD amd64

Each archive contains exactly one root-level library named gemini-openai-normalizer.so, .dylib, or .dll. All checksums, binary formats, target architectures, and ABI exports have been verified.

Capability

The plugin normalizes Gemini OpenAI Chat Completions and Responses output without changing non-Gemini client traffic:

  • official chatcmpl- ID prefix;
  • client-requested model alias restoration using the ABI RequestedModel field;
  • reasoning-token accounting in completion/output totals without double counting compliant usage;
  • raw JSON and SSE streaming chunks, including frames split across ABI callbacks and complete SSE data lines without trailing newlines.

Validation

  • go test -race ./...
  • go vet ./...
  • all seven platform builds completed successfully;
  • Linux amd64 and arm64 artifacts pass the GLIBC 2.17 symbol-version gate;
  • release archive layouts and SHA-256 checksums verified;
  • production CPA and LinuxDo Hub end-to-end matrix passed for all four published Gemini models across Chat, Chat streaming, Responses, and Responses streaming.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant