picoclaw/pkg/providers
maxiaoyang 1895fc69ae feat(providers/common): emit OpenAI Chat Completions name field
SerializeMessages is the wire serializer shared by every OpenAI-style
backend in the project (openai_compat, azure, deepseek, glm, qwen,
groq, and other endpoints that accept the OpenAI Chat Completions
schema). The OpenAI spec defines an optional `name` field on each
message that disambiguates participants in multi-user conversations.

This change adds the field to the openaiMessage wire struct (with
omitempty) and the multipart map branch (only when set), so any
Message.Name produced upstream is forwarded to the model. Sanitization
upstream guarantees the wire-level constraint ^[a-zA-Z0-9_-]{1,64}$,
so backends that strictly enforce it will not reject the request.

Tests cover three properties:

- name appears on the plain-text path when set
- name appears on the multipart-with-media path when set
- both paths omit the field entirely when Name is empty (legacy
  single-user channels stay byte-identical on the wire)

Refs #2702.
2026-04-29 21:03:48 +08:00
..
anthropic Deduplicate further functions 2026-04-23 05:50:37 +00:00
anthropic_messages Deduplicate further functions 2026-04-23 05:50:37 +00:00
azure feat: add userAgent config for ModelConfig (#2242) 2026-04-02 11:44:13 +08:00
bedrock fix test and lint in web (#2219) 2026-03-31 15:50:55 +08:00
cli Feat(channels): unify animated tool feedback across chat channels and Pico (#2622) 2026-04-23 10:35:50 +08:00
common feat(providers/common): emit OpenAI Chat Completions name field 2026-04-29 21:03:48 +08:00
httpapi fix(reasoning): persist canonical history for DeepSeek and web chat 2026-04-24 21:45:41 +08:00
messageutil feat(messageutil): add IsSystemSenderID and ApplyUserNamePrefix helpers 2026-04-29 21:01:03 +08:00
oauth Deduplicate further functions 2026-04-23 05:50:37 +00:00
openai_compat fix(reasoning): persist canonical history for DeepSeek and web chat 2026-04-24 21:45:41 +08:00
openai_responses_common Deduplicate ParseDataAudioURL function 2026-04-23 05:50:37 +00:00
protocoltypes feat(protocol): add Name field to providers.Message 2026-04-29 20:54:11 +08:00
cli_facade.go refactor(providers): reorganize provider packages and facades 2026-04-17 12:42:03 +08:00
cli_factory_test.go refactor(providers): reorganize provider packages and facades 2026-04-17 12:42:03 +08:00
cooldown.go style: fix gofmt formatting in cooldown files 2026-02-13 12:26:44 -03:00
cooldown_test.go refactor(modernize): apply safe modernize fixes 2026-02-27 16:35:07 +08:00
error_classifier.go fix(network): classify timeout errors as FailoverTimeout 2026-04-16 22:00:13 +08:00
error_classifier_test.go fix(network): classify timeout errors as FailoverTimeout 2026-04-16 22:00:13 +08:00
facade_compat_test.go fix(providers,tools): address linter issues after reorg 2026-04-17 14:16:18 +08:00
factory.go refactor Config to add Version and migratable 2026-03-12 13:52:55 +08:00
factory_provider.go fix(reasoning): persist canonical history for DeepSeek and web chat 2026-04-24 21:45:41 +08:00
factory_provider_test.go refactor: support explicit provider field in model list entries (#2609) 2026-04-22 11:28:47 +08:00
factory_test.go refactor: seperate security.yml for store keys 2026-03-22 01:55:00 +08:00
fallback.go feat(model): llm rate limiting (#2198) 2026-04-02 19:26:26 +08:00
fallback_multikey_test.go feat(model): llm rate limiting (#2198) 2026-04-02 19:26:26 +08:00
fallback_test.go refactor(tests): extract common logic for fallback error handling into a helper function 2026-04-16 22:45:31 +08:00
httpapi_facade.go refactor(providers): reorganize provider packages and facades 2026-04-17 12:42:03 +08:00
legacy_provider.go refactor Config to add Version and migratable 2026-03-12 13:52:55 +08:00
model_ref.go feat(provider): add Alibaba Coding Plan and regional Qwen endpoints (#1748) 2026-03-19 22:07:30 +08:00
model_ref_test.go feat(provider): add Alibaba Coding Plan and regional Qwen endpoints (#1748) 2026-03-19 22:07:30 +08:00
oauth_facade.go refactor(providers): reorganize provider packages and facades 2026-04-17 12:42:03 +08:00
ratelimiter.go feat(model): llm rate limiting (#2198) 2026-04-02 19:26:26 +08:00
ratelimiter_test.go feat(model): llm rate limiting (#2198) 2026-04-02 19:26:26 +08:00
toolcall_utils_test.go Feat(channels): unify animated tool feedback across chat channels and Pico (#2622) 2026-04-23 10:35:50 +08:00
types.go feat(web): download files on frontend (#2563) 2026-04-22 11:28:04 +08:00