feat: synchronize fork with upstream v0.6.0-alpha.2 - #4

Merged
AlexMikhalev merged 126 commits into
mainfrom
feature/merge-upstream-v0.6.0-alpha.2
Feb 7, 2026
Merged

feat: synchronize fork with upstream v0.6.0-alpha.2#4
AlexMikhalev merged 126 commits into
mainfrom
feature/merge-upstream-v0.6.0-alpha.2

Conversation

@AlexMikhalev

Copy link
Copy Markdown

Summary

  • Merge 124 upstream commits from jeremychone/rust-genai v0.6.0-alpha.2
  • Preserve all fork-specific adapters (Bedrock, Cerebras, OpenRouter, Zhipu)
  • Integrate new upstream features (ModelSpec, MIMO, BigModel, enhanced ZAI)
  • Fix API changes and resolve 12 merge conflicts

Changes

Upstream Features Integrated

  • ModelSpec API: Enhanced model specification system
  • MIMO Adapter: New provider support
  • BigModel Adapter: bigmodel.cn provider support
  • Enhanced ZAI: Dual endpoint support (zai::, zai-coding::), renamed to "Zai"
  • Cache Control TTL: Anthropic cache with 5m/1h TTL options

Fork Features Preserved

  • AWS Bedrock: Converse API adapter with Bearer token auth
  • Cerebras: Fast inference provider
  • OpenRouter: Multi-provider routing
  • Zhipu: Legacy compatibility

Adapters (19 total)

OpenAI, OpenAIResp, Gemini, OpenRouter, Anthropic, Fireworks, Together, Groq, Mimo, Nebius, Xai, DeepSeek, Zai, BigModel, Cohere, Ollama, Cerebras, Bedrock, Zhipu

Test plan

  • cargo fmt --check - passes
  • cargo clippy - 6 warnings (all in upstream code)
  • cargo build - compiles successfully
  • cargo test --lib - 14/14 tests pass
  • cargo test --test mock_tests - 18/18 tests pass
  • cargo test --test test_adapter_consistency - verifies adapter code matches tests
  • cargo test --test test_verify_model_lists - verifies model resolution
  • cargo test --test test_zai_adapter - verifies ZAI adapter

Defects Resolved

IssueResolution
Method as_model_name_and_namespace renamedUpdated to namespace_and_name()
Duplicate size() methodsRemoved duplicates
ZAI adapter renamed "ZAi" -> "Zai"Updated all tests
ZAI model list changedUpdated test expectations

Generated by Terraphim AI

pdylanrossand others added 30 commits October 19, 2025 18:23
…eremychone#95)
- Rename zhipu adapter to zai adapter
- Implement namespace-based routing for regular vs coding endpoints
- Regular models: "glm-4.6" → credit-based API
- Coding models: "zai::glm-4.6" → subscription API
- Add comprehensive example c07-zai.rs
- Update adapter kind detection to handle "zai" namespace
- Remove dual-endpoint complexity from user-facing API
Co-authored-by: Rui Andrada <rui.andrada@imaginedone.com.br>
* feat: parts thought signature
* feat: gemini adapter thought signature support
- Add ContentPart::ThoughtSignature with accessors and helpers.
- Introduce InterStreamEvent::ThoughtSignatureChunk and ChatStreamEvent::ThoughtSignatureChunk.
- Capture thought signatures into StreamEnd.captured_content when enabled.
- Update printer to display ThoughtSignatureChunk events (non-captured).
- Gemini adapter: parse thoughtSignature (fallback: thought) and include in outgoing messages.
- Gemini streamer: surface thought as ThoughtSignatureChunk and record in captured_thought_signatures.
- Preserve thoughtSignature in assistant history before tool calls when looping tools.
- Example c10-tooluse-streaming.rs: switch to gemini-3-pro-preview, log thoughtSignature chunks, and prepend captured thoughts to assistant message.
* chore: impl thought signature
* chore: no API change
…opriate gemini thinkingLevel LOW/HIGH, fall back on budget if not gemini 3 or other effort
jeremychoneand others added 26 commits January 27, 2026 18:55
…text parts (fixesjeremychone#135) (jeremychone#136)
Co-authored-by: Ross MacLeod <rmm+github@z.odi.ac>
- fix - anthropic - streaming adapter now captures cache tokens
^ cache - anthropic - Adds them to prompt_tokens (matching into_usage behavior)
^ cache - anthropic - add TTL support for prompt caching
- fix - anthropic - apply per-part cache_control on system messages and add cache TTL example
Merged 124 upstream commits from jeremychone/rust-genai while preserving
fork-specific adapters:
- AWS Bedrock (Converse API with Bearer token auth)
- Cerebras (OpenAI-compatible)
- OpenRouter (provider-pattern routing)
- Zhipu (legacy, backwards compatibility)
New features from upstream:
- ModelSpec API for flexible model specification
- MIMO and BigModel adapters
- Enhanced ZAI with dual-endpoint support (zai:: and zai-coding::)
- ThoughtSignature and ReasoningEffort improvements
- Custom EventSourceStream replacing reqwest-eventsource
- Enhanced error handling with request/response capture
Breaking changes:
- ZAi adapter renamed to Zai (upstream naming)
- ZAI model list updated to upstream v0.6.0-alpha.2
Conflict resolution:
- adapter_kind.rs: Merged all 19 adapter variants
- dispatcher.rs: Added fork adapters to upstream dispatch
- adapters/mod.rs: Export all adapter modules
- Accepted upstream for streaming and chat improvements
Tests updated for new adapter naming and model lists.
Co-Authored-By: Terraphim AI <noreply@terraphim.io>
Apply cargo fmt to fix minor formatting inconsistencies in:
- src/chat/tool/tool_response.rs (extra blank line)
- tests/test_verify_model_lists.rs (println formatting)
- tests/test_zai_adapter.rs (import order)
Co-Authored-By: Terraphim AI <noreply@terraphim.io>
@AlexMikhalev
AlexMikhalev merged commit b6ba1b3 into mainFeb 7, 2026
1 check failed
AlexMikhalev added a commit that referenced this pull request Mar 16, 2026
Refs #4
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for freeto 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.

16 participants

@AlexMikhalev@pdylanross@bartCarroll@jeremychone@shingonoide@Himmelschmidt@vagmi@ii64@Akagi201@malyavi-nochum@mengdehong@BinaryMuse@vlmutolo@anagrius@Dridus@holovskyi
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

feat: synchronize fork with upstream v0.6.0-alpha.2 - #4

Merged
AlexMikhalev merged 126 commits into
mainfrom
feature/merge-upstream-v0.6.0-alpha.2
Feb 7, 2026
Merged

feat: synchronize fork with upstream v0.6.0-alpha.2#4
AlexMikhalev merged 126 commits into
mainfrom
feature/merge-upstream-v0.6.0-alpha.2

Conversation

@AlexMikhalev

Copy link
Copy Markdown

Summary

  • Merge 124 upstream commits from jeremychone/rust-genai v0.6.0-alpha.2
  • Preserve all fork-specific adapters (Bedrock, Cerebras, OpenRouter, Zhipu)
  • Integrate new upstream features (ModelSpec, MIMO, BigModel, enhanced ZAI)
  • Fix API changes and resolve 12 merge conflicts

Changes

Upstream Features Integrated

  • ModelSpec API: Enhanced model specification system
  • MIMO Adapter: New provider support
  • BigModel Adapter: bigmodel.cn provider support
  • Enhanced ZAI: Dual endpoint support (zai::, zai-coding::), renamed to "Zai"
  • Cache Control TTL: Anthropic cache with 5m/1h TTL options

Fork Features Preserved

  • AWS Bedrock: Converse API adapter with Bearer token auth
  • Cerebras: Fast inference provider
  • OpenRouter: Multi-provider routing
  • Zhipu: Legacy compatibility

Adapters (19 total)

OpenAI, OpenAIResp, Gemini, OpenRouter, Anthropic, Fireworks, Together, Groq, Mimo, Nebius, Xai, DeepSeek, Zai, BigModel, Cohere, Ollama, Cerebras, Bedrock, Zhipu

Test plan

  • cargo fmt --check - passes
  • cargo clippy - 6 warnings (all in upstream code)
  • cargo build - compiles successfully
  • cargo test --lib - 14/14 tests pass
  • cargo test --test mock_tests - 18/18 tests pass
  • cargo test --test test_adapter_consistency - verifies adapter code matches tests
  • cargo test --test test_verify_model_lists - verifies model resolution
  • cargo test --test test_zai_adapter - verifies ZAI adapter

Defects Resolved

IssueResolution
Method as_model_name_and_namespace renamedUpdated to namespace_and_name()
Duplicate size() methodsRemoved duplicates
ZAI adapter renamed "ZAi" -> "Zai"Updated all tests
ZAI model list changedUpdated test expectations

Generated by Terraphim AI

pdylanrossand others added 30 commits October 19, 2025 18:23
…eremychone#95)
- Rename zhipu adapter to zai adapter
- Implement namespace-based routing for regular vs coding endpoints
- Regular models: "glm-4.6" → credit-based API
- Coding models: "zai::glm-4.6" → subscription API
- Add comprehensive example c07-zai.rs
- Update adapter kind detection to handle "zai" namespace
- Remove dual-endpoint complexity from user-facing API
Co-authored-by: Rui Andrada <rui.andrada@imaginedone.com.br>
* feat: parts thought signature
* feat: gemini adapter thought signature support
- Add ContentPart::ThoughtSignature with accessors and helpers.
- Introduce InterStreamEvent::ThoughtSignatureChunk and ChatStreamEvent::ThoughtSignatureChunk.
- Capture thought signatures into StreamEnd.captured_content when enabled.
- Update printer to display ThoughtSignatureChunk events (non-captured).
- Gemini adapter: parse thoughtSignature (fallback: thought) and include in outgoing messages.
- Gemini streamer: surface thought as ThoughtSignatureChunk and record in captured_thought_signatures.
- Preserve thoughtSignature in assistant history before tool calls when looping tools.
- Example c10-tooluse-streaming.rs: switch to gemini-3-pro-preview, log thoughtSignature chunks, and prepend captured thoughts to assistant message.
* chore: impl thought signature
* chore: no API change
…opriate gemini thinkingLevel LOW/HIGH, fall back on budget if not gemini 3 or other effort
jeremychoneand others added 26 commits January 27, 2026 18:55
…text parts (fixesjeremychone#135) (jeremychone#136)
Co-authored-by: Ross MacLeod <rmm+github@z.odi.ac>
- fix - anthropic - streaming adapter now captures cache tokens
^ cache - anthropic - Adds them to prompt_tokens (matching into_usage behavior)
^ cache - anthropic - add TTL support for prompt caching
- fix - anthropic - apply per-part cache_control on system messages and add cache TTL example
Merged 124 upstream commits from jeremychone/rust-genai while preserving
fork-specific adapters:
- AWS Bedrock (Converse API with Bearer token auth)
- Cerebras (OpenAI-compatible)
- OpenRouter (provider-pattern routing)
- Zhipu (legacy, backwards compatibility)
New features from upstream:
- ModelSpec API for flexible model specification
- MIMO and BigModel adapters
- Enhanced ZAI with dual-endpoint support (zai:: and zai-coding::)
- ThoughtSignature and ReasoningEffort improvements
- Custom EventSourceStream replacing reqwest-eventsource
- Enhanced error handling with request/response capture
Breaking changes:
- ZAi adapter renamed to Zai (upstream naming)
- ZAI model list updated to upstream v0.6.0-alpha.2
Conflict resolution:
- adapter_kind.rs: Merged all 19 adapter variants
- dispatcher.rs: Added fork adapters to upstream dispatch
- adapters/mod.rs: Export all adapter modules
- Accepted upstream for streaming and chat improvements
Tests updated for new adapter naming and model lists.
Co-Authored-By: Terraphim AI <noreply@terraphim.io>
Apply cargo fmt to fix minor formatting inconsistencies in:
- src/chat/tool/tool_response.rs (extra blank line)
- tests/test_verify_model_lists.rs (println formatting)
- tests/test_zai_adapter.rs (import order)
Co-Authored-By: Terraphim AI <noreply@terraphim.io>
@AlexMikhalev
AlexMikhalev merged commit b6ba1b3 into mainFeb 7, 2026
1 check failed
AlexMikhalev added a commit that referenced this pull request Mar 16, 2026
Refs #4
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for freeto 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.

16 participants

@AlexMikhalev@pdylanross@bartCarroll@jeremychone@shingonoide@Himmelschmidt@vagmi@ii64@Akagi201@malyavi-nochum@mengdehong@BinaryMuse@vlmutolo@anagrius@Dridus@holovskyi
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat: synchronize fork with upstream v0.6.0-alpha.2 - #4

Merged
AlexMikhalev merged 126 commits into
mainfrom
feature/merge-upstream-v0.6.0-alpha.2
Feb 7, 2026
Merged

feat: synchronize fork with upstream v0.6.0-alpha.2#4
AlexMikhalev merged 126 commits into
mainfrom
feature/merge-upstream-v0.6.0-alpha.2

Conversation

@AlexMikhalev

Copy link
Copy Markdown

Summary

  • Merge 124 upstream commits from jeremychone/rust-genai v0.6.0-alpha.2
  • Preserve all fork-specific adapters (Bedrock, Cerebras, OpenRouter, Zhipu)
  • Integrate new upstream features (ModelSpec, MIMO, BigModel, enhanced ZAI)
  • Fix API changes and resolve 12 merge conflicts

Changes

Upstream Features Integrated

  • ModelSpec API: Enhanced model specification system
  • MIMO Adapter: New provider support
  • BigModel Adapter: bigmodel.cn provider support
  • Enhanced ZAI: Dual endpoint support (zai::, zai-coding::), renamed to "Zai"
  • Cache Control TTL: Anthropic cache with 5m/1h TTL options

Fork Features Preserved

  • AWS Bedrock: Converse API adapter with Bearer token auth
  • Cerebras: Fast inference provider
  • OpenRouter: Multi-provider routing
  • Zhipu: Legacy compatibility

Adapters (19 total)

OpenAI, OpenAIResp, Gemini, OpenRouter, Anthropic, Fireworks, Together, Groq, Mimo, Nebius, Xai, DeepSeek, Zai, BigModel, Cohere, Ollama, Cerebras, Bedrock, Zhipu

Test plan

  • cargo fmt --check - passes
  • cargo clippy - 6 warnings (all in upstream code)
  • cargo build - compiles successfully
  • cargo test --lib - 14/14 tests pass
  • cargo test --test mock_tests - 18/18 tests pass
  • cargo test --test test_adapter_consistency - verifies adapter code matches tests
  • cargo test --test test_verify_model_lists - verifies model resolution
  • cargo test --test test_zai_adapter - verifies ZAI adapter

Defects Resolved

IssueResolution
Method as_model_name_and_namespace renamedUpdated to namespace_and_name()
Duplicate size() methodsRemoved duplicates
ZAI adapter renamed "ZAi" -> "Zai"Updated all tests
ZAI model list changedUpdated test expectations

Generated by Terraphim AI

pdylanrossand others added 30 commits October 19, 2025 18:23
…eremychone#95)
- Rename zhipu adapter to zai adapter
- Implement namespace-based routing for regular vs coding endpoints
- Regular models: "glm-4.6" → credit-based API
- Coding models: "zai::glm-4.6" → subscription API
- Add comprehensive example c07-zai.rs
- Update adapter kind detection to handle "zai" namespace
- Remove dual-endpoint complexity from user-facing API
Co-authored-by: Rui Andrada <rui.andrada@imaginedone.com.br>
* feat: parts thought signature
* feat: gemini adapter thought signature support
- Add ContentPart::ThoughtSignature with accessors and helpers.
- Introduce InterStreamEvent::ThoughtSignatureChunk and ChatStreamEvent::ThoughtSignatureChunk.
- Capture thought signatures into StreamEnd.captured_content when enabled.
- Update printer to display ThoughtSignatureChunk events (non-captured).
- Gemini adapter: parse thoughtSignature (fallback: thought) and include in outgoing messages.
- Gemini streamer: surface thought as ThoughtSignatureChunk and record in captured_thought_signatures.
- Preserve thoughtSignature in assistant history before tool calls when looping tools.
- Example c10-tooluse-streaming.rs: switch to gemini-3-pro-preview, log thoughtSignature chunks, and prepend captured thoughts to assistant message.
* chore: impl thought signature
* chore: no API change
…opriate gemini thinkingLevel LOW/HIGH, fall back on budget if not gemini 3 or other effort
jeremychoneand others added 26 commits January 27, 2026 18:55
…text parts (fixesjeremychone#135) (jeremychone#136)
Co-authored-by: Ross MacLeod <rmm+github@z.odi.ac>
- fix - anthropic - streaming adapter now captures cache tokens
^ cache - anthropic - Adds them to prompt_tokens (matching into_usage behavior)
^ cache - anthropic - add TTL support for prompt caching
- fix - anthropic - apply per-part cache_control on system messages and add cache TTL example
Merged 124 upstream commits from jeremychone/rust-genai while preserving
fork-specific adapters:
- AWS Bedrock (Converse API with Bearer token auth)
- Cerebras (OpenAI-compatible)
- OpenRouter (provider-pattern routing)
- Zhipu (legacy, backwards compatibility)
New features from upstream:
- ModelSpec API for flexible model specification
- MIMO and BigModel adapters
- Enhanced ZAI with dual-endpoint support (zai:: and zai-coding::)
- ThoughtSignature and ReasoningEffort improvements
- Custom EventSourceStream replacing reqwest-eventsource
- Enhanced error handling with request/response capture
Breaking changes:
- ZAi adapter renamed to Zai (upstream naming)
- ZAI model list updated to upstream v0.6.0-alpha.2
Conflict resolution:
- adapter_kind.rs: Merged all 19 adapter variants
- dispatcher.rs: Added fork adapters to upstream dispatch
- adapters/mod.rs: Export all adapter modules
- Accepted upstream for streaming and chat improvements
Tests updated for new adapter naming and model lists.
Co-Authored-By: Terraphim AI <noreply@terraphim.io>
Apply cargo fmt to fix minor formatting inconsistencies in:
- src/chat/tool/tool_response.rs (extra blank line)
- tests/test_verify_model_lists.rs (println formatting)
- tests/test_zai_adapter.rs (import order)
Co-Authored-By: Terraphim AI <noreply@terraphim.io>
@AlexMikhalev
AlexMikhalev merged commit b6ba1b3 into mainFeb 7, 2026
1 check failed
AlexMikhalev added a commit that referenced this pull request Mar 16, 2026
Refs #4
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for freeto 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.

16 participants

@AlexMikhalev@pdylanross@bartCarroll@jeremychone@shingonoide@Himmelschmidt@vagmi@ii64@Akagi201@malyavi-nochum@mengdehong@BinaryMuse@vlmutolo@anagrius@Dridus@holovskyi
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat: synchronize fork with upstream v0.6.0-alpha.2 - #4

Merged
AlexMikhalev merged 126 commits into
mainfrom
feature/merge-upstream-v0.6.0-alpha.2
Feb 7, 2026
Merged

feat: synchronize fork with upstream v0.6.0-alpha.2#4
AlexMikhalev merged 126 commits into
mainfrom
feature/merge-upstream-v0.6.0-alpha.2

Conversation

@AlexMikhalev

Copy link
Copy Markdown

Summary

  • Merge 124 upstream commits from jeremychone/rust-genai v0.6.0-alpha.2
  • Preserve all fork-specific adapters (Bedrock, Cerebras, OpenRouter, Zhipu)
  • Integrate new upstream features (ModelSpec, MIMO, BigModel, enhanced ZAI)
  • Fix API changes and resolve 12 merge conflicts

Changes

Upstream Features Integrated

  • ModelSpec API: Enhanced model specification system
  • MIMO Adapter: New provider support
  • BigModel Adapter: bigmodel.cn provider support
  • Enhanced ZAI: Dual endpoint support (zai::, zai-coding::), renamed to "Zai"
  • Cache Control TTL: Anthropic cache with 5m/1h TTL options

Fork Features Preserved

  • AWS Bedrock: Converse API adapter with Bearer token auth
  • Cerebras: Fast inference provider
  • OpenRouter: Multi-provider routing
  • Zhipu: Legacy compatibility

Adapters (19 total)

OpenAI, OpenAIResp, Gemini, OpenRouter, Anthropic, Fireworks, Together, Groq, Mimo, Nebius, Xai, DeepSeek, Zai, BigModel, Cohere, Ollama, Cerebras, Bedrock, Zhipu

Test plan

  • cargo fmt --check - passes
  • cargo clippy - 6 warnings (all in upstream code)
  • cargo build - compiles successfully
  • cargo test --lib - 14/14 tests pass
  • cargo test --test mock_tests - 18/18 tests pass
  • cargo test --test test_adapter_consistency - verifies adapter code matches tests
  • cargo test --test test_verify_model_lists - verifies model resolution
  • cargo test --test test_zai_adapter - verifies ZAI adapter

Defects Resolved

IssueResolution
Method as_model_name_and_namespace renamedUpdated to namespace_and_name()
Duplicate size() methodsRemoved duplicates
ZAI adapter renamed "ZAi" -> "Zai"Updated all tests
ZAI model list changedUpdated test expectations

Generated by Terraphim AI

pdylanrossand others added 30 commits October 19, 2025 18:23
…eremychone#95)
- Rename zhipu adapter to zai adapter
- Implement namespace-based routing for regular vs coding endpoints
- Regular models: "glm-4.6" → credit-based API
- Coding models: "zai::glm-4.6" → subscription API
- Add comprehensive example c07-zai.rs
- Update adapter kind detection to handle "zai" namespace
- Remove dual-endpoint complexity from user-facing API
Co-authored-by: Rui Andrada <rui.andrada@imaginedone.com.br>
* feat: parts thought signature
* feat: gemini adapter thought signature support
- Add ContentPart::ThoughtSignature with accessors and helpers.
- Introduce InterStreamEvent::ThoughtSignatureChunk and ChatStreamEvent::ThoughtSignatureChunk.
- Capture thought signatures into StreamEnd.captured_content when enabled.
- Update printer to display ThoughtSignatureChunk events (non-captured).
- Gemini adapter: parse thoughtSignature (fallback: thought) and include in outgoing messages.
- Gemini streamer: surface thought as ThoughtSignatureChunk and record in captured_thought_signatures.
- Preserve thoughtSignature in assistant history before tool calls when looping tools.
- Example c10-tooluse-streaming.rs: switch to gemini-3-pro-preview, log thoughtSignature chunks, and prepend captured thoughts to assistant message.
* chore: impl thought signature
* chore: no API change
…opriate gemini thinkingLevel LOW/HIGH, fall back on budget if not gemini 3 or other effort
jeremychoneand others added 26 commits January 27, 2026 18:55
…text parts (fixesjeremychone#135) (jeremychone#136)
Co-authored-by: Ross MacLeod <rmm+github@z.odi.ac>
- fix - anthropic - streaming adapter now captures cache tokens
^ cache - anthropic - Adds them to prompt_tokens (matching into_usage behavior)
^ cache - anthropic - add TTL support for prompt caching
- fix - anthropic - apply per-part cache_control on system messages and add cache TTL example
Merged 124 upstream commits from jeremychone/rust-genai while preserving
fork-specific adapters:
- AWS Bedrock (Converse API with Bearer token auth)
- Cerebras (OpenAI-compatible)
- OpenRouter (provider-pattern routing)
- Zhipu (legacy, backwards compatibility)
New features from upstream:
- ModelSpec API for flexible model specification
- MIMO and BigModel adapters
- Enhanced ZAI with dual-endpoint support (zai:: and zai-coding::)
- ThoughtSignature and ReasoningEffort improvements
- Custom EventSourceStream replacing reqwest-eventsource
- Enhanced error handling with request/response capture
Breaking changes:
- ZAi adapter renamed to Zai (upstream naming)
- ZAI model list updated to upstream v0.6.0-alpha.2
Conflict resolution:
- adapter_kind.rs: Merged all 19 adapter variants
- dispatcher.rs: Added fork adapters to upstream dispatch
- adapters/mod.rs: Export all adapter modules
- Accepted upstream for streaming and chat improvements
Tests updated for new adapter naming and model lists.
Co-Authored-By: Terraphim AI <noreply@terraphim.io>
Apply cargo fmt to fix minor formatting inconsistencies in:
- src/chat/tool/tool_response.rs (extra blank line)
- tests/test_verify_model_lists.rs (println formatting)
- tests/test_zai_adapter.rs (import order)
Co-Authored-By: Terraphim AI <noreply@terraphim.io>
@AlexMikhalev
AlexMikhalev merged commit b6ba1b3 into mainFeb 7, 2026
1 check failed
AlexMikhalev added a commit that referenced this pull request Mar 16, 2026
Refs #4
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for freeto 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.

16 participants

@AlexMikhalev@pdylanross@bartCarroll@jeremychone@shingonoide@Himmelschmidt@vagmi@ii64@Akagi201@malyavi-nochum@mengdehong@BinaryMuse@vlmutolo@anagrius@Dridus@holovskyi
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

feat: synchronize fork with upstream v0.6.0-alpha.2 - #4

Merged
AlexMikhalev merged 126 commits into
mainfrom
feature/merge-upstream-v0.6.0-alpha.2
Feb 7, 2026
Merged

feat: synchronize fork with upstream v0.6.0-alpha.2#4
AlexMikhalev merged 126 commits into
mainfrom
feature/merge-upstream-v0.6.0-alpha.2

Conversation

@AlexMikhalev

Copy link
Copy Markdown

Summary

  • Merge 124 upstream commits from jeremychone/rust-genai v0.6.0-alpha.2
  • Preserve all fork-specific adapters (Bedrock, Cerebras, OpenRouter, Zhipu)
  • Integrate new upstream features (ModelSpec, MIMO, BigModel, enhanced ZAI)
  • Fix API changes and resolve 12 merge conflicts

Changes

Upstream Features Integrated

  • ModelSpec API: Enhanced model specification system
  • MIMO Adapter: New provider support
  • BigModel Adapter: bigmodel.cn provider support
  • Enhanced ZAI: Dual endpoint support (zai::, zai-coding::), renamed to "Zai"
  • Cache Control TTL: Anthropic cache with 5m/1h TTL options

Fork Features Preserved

  • AWS Bedrock: Converse API adapter with Bearer token auth
  • Cerebras: Fast inference provider
  • OpenRouter: Multi-provider routing
  • Zhipu: Legacy compatibility

Adapters (19 total)

OpenAI, OpenAIResp, Gemini, OpenRouter, Anthropic, Fireworks, Together, Groq, Mimo, Nebius, Xai, DeepSeek, Zai, BigModel, Cohere, Ollama, Cerebras, Bedrock, Zhipu

Test plan

  • cargo fmt --check - passes
  • cargo clippy - 6 warnings (all in upstream code)
  • cargo build - compiles successfully
  • cargo test --lib - 14/14 tests pass
  • cargo test --test mock_tests - 18/18 tests pass
  • cargo test --test test_adapter_consistency - verifies adapter code matches tests
  • cargo test --test test_verify_model_lists - verifies model resolution
  • cargo test --test test_zai_adapter - verifies ZAI adapter

Defects Resolved

IssueResolution
Method as_model_name_and_namespace renamedUpdated to namespace_and_name()
Duplicate size() methodsRemoved duplicates
ZAI adapter renamed "ZAi" -> "Zai"Updated all tests
ZAI model list changedUpdated test expectations

Generated by Terraphim AI

pdylanrossand others added 30 commits October 19, 2025 18:23
…eremychone#95)
- Rename zhipu adapter to zai adapter
- Implement namespace-based routing for regular vs coding endpoints
- Regular models: "glm-4.6" → credit-based API
- Coding models: "zai::glm-4.6" → subscription API
- Add comprehensive example c07-zai.rs
- Update adapter kind detection to handle "zai" namespace
- Remove dual-endpoint complexity from user-facing API
Co-authored-by: Rui Andrada <rui.andrada@imaginedone.com.br>
* feat: parts thought signature
* feat: gemini adapter thought signature support
- Add ContentPart::ThoughtSignature with accessors and helpers.
- Introduce InterStreamEvent::ThoughtSignatureChunk and ChatStreamEvent::ThoughtSignatureChunk.
- Capture thought signatures into StreamEnd.captured_content when enabled.
- Update printer to display ThoughtSignatureChunk events (non-captured).
- Gemini adapter: parse thoughtSignature (fallback: thought) and include in outgoing messages.
- Gemini streamer: surface thought as ThoughtSignatureChunk and record in captured_thought_signatures.
- Preserve thoughtSignature in assistant history before tool calls when looping tools.
- Example c10-tooluse-streaming.rs: switch to gemini-3-pro-preview, log thoughtSignature chunks, and prepend captured thoughts to assistant message.
* chore: impl thought signature
* chore: no API change
…opriate gemini thinkingLevel LOW/HIGH, fall back on budget if not gemini 3 or other effort
jeremychoneand others added 26 commits January 27, 2026 18:55
…text parts (fixesjeremychone#135) (jeremychone#136)
Co-authored-by: Ross MacLeod <rmm+github@z.odi.ac>
- fix - anthropic - streaming adapter now captures cache tokens
^ cache - anthropic - Adds them to prompt_tokens (matching into_usage behavior)
^ cache - anthropic - add TTL support for prompt caching
- fix - anthropic - apply per-part cache_control on system messages and add cache TTL example
Merged 124 upstream commits from jeremychone/rust-genai while preserving
fork-specific adapters:
- AWS Bedrock (Converse API with Bearer token auth)
- Cerebras (OpenAI-compatible)
- OpenRouter (provider-pattern routing)
- Zhipu (legacy, backwards compatibility)
New features from upstream:
- ModelSpec API for flexible model specification
- MIMO and BigModel adapters
- Enhanced ZAI with dual-endpoint support (zai:: and zai-coding::)
- ThoughtSignature and ReasoningEffort improvements
- Custom EventSourceStream replacing reqwest-eventsource
- Enhanced error handling with request/response capture
Breaking changes:
- ZAi adapter renamed to Zai (upstream naming)
- ZAI model list updated to upstream v0.6.0-alpha.2
Conflict resolution:
- adapter_kind.rs: Merged all 19 adapter variants
- dispatcher.rs: Added fork adapters to upstream dispatch
- adapters/mod.rs: Export all adapter modules
- Accepted upstream for streaming and chat improvements
Tests updated for new adapter naming and model lists.
Co-Authored-By: Terraphim AI <noreply@terraphim.io>
Apply cargo fmt to fix minor formatting inconsistencies in:
- src/chat/tool/tool_response.rs (extra blank line)
- tests/test_verify_model_lists.rs (println formatting)
- tests/test_zai_adapter.rs (import order)
Co-Authored-By: Terraphim AI <noreply@terraphim.io>
@AlexMikhalev
AlexMikhalev merged commit b6ba1b3 into mainFeb 7, 2026
1 check failed
AlexMikhalev added a commit that referenced this pull request Mar 16, 2026
Refs #4
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for freeto 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.

16 participants

@AlexMikhalev@pdylanross@bartCarroll@jeremychone@shingonoide@Himmelschmidt@vagmi@ii64@Akagi201@malyavi-nochum@mengdehong@BinaryMuse@vlmutolo@anagrius@Dridus@holovskyi
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat: synchronize fork with upstream v0.6.0-alpha.2 - #4

Merged
AlexMikhalev merged 126 commits into
mainfrom
feature/merge-upstream-v0.6.0-alpha.2
Feb 7, 2026
Merged

feat: synchronize fork with upstream v0.6.0-alpha.2#4
AlexMikhalev merged 126 commits into
mainfrom
feature/merge-upstream-v0.6.0-alpha.2

Conversation

@AlexMikhalev

Copy link
Copy Markdown

Summary

  • Merge 124 upstream commits from jeremychone/rust-genai v0.6.0-alpha.2
  • Preserve all fork-specific adapters (Bedrock, Cerebras, OpenRouter, Zhipu)
  • Integrate new upstream features (ModelSpec, MIMO, BigModel, enhanced ZAI)
  • Fix API changes and resolve 12 merge conflicts

Changes

Upstream Features Integrated

  • ModelSpec API: Enhanced model specification system
  • MIMO Adapter: New provider support
  • BigModel Adapter: bigmodel.cn provider support
  • Enhanced ZAI: Dual endpoint support (zai::, zai-coding::), renamed to "Zai"
  • Cache Control TTL: Anthropic cache with 5m/1h TTL options

Fork Features Preserved

  • AWS Bedrock: Converse API adapter with Bearer token auth
  • Cerebras: Fast inference provider
  • OpenRouter: Multi-provider routing
  • Zhipu: Legacy compatibility

Adapters (19 total)

OpenAI, OpenAIResp, Gemini, OpenRouter, Anthropic, Fireworks, Together, Groq, Mimo, Nebius, Xai, DeepSeek, Zai, BigModel, Cohere, Ollama, Cerebras, Bedrock, Zhipu

Test plan

  • cargo fmt --check - passes
  • cargo clippy - 6 warnings (all in upstream code)
  • cargo build - compiles successfully
  • cargo test --lib - 14/14 tests pass
  • cargo test --test mock_tests - 18/18 tests pass
  • cargo test --test test_adapter_consistency - verifies adapter code matches tests
  • cargo test --test test_verify_model_lists - verifies model resolution
  • cargo test --test test_zai_adapter - verifies ZAI adapter

Defects Resolved

IssueResolution
Method as_model_name_and_namespace renamedUpdated to namespace_and_name()
Duplicate size() methodsRemoved duplicates
ZAI adapter renamed "ZAi" -> "Zai"Updated all tests
ZAI model list changedUpdated test expectations

Generated by Terraphim AI

pdylanrossand others added 30 commits October 19, 2025 18:23
…eremychone#95)
- Rename zhipu adapter to zai adapter
- Implement namespace-based routing for regular vs coding endpoints
- Regular models: "glm-4.6" → credit-based API
- Coding models: "zai::glm-4.6" → subscription API
- Add comprehensive example c07-zai.rs
- Update adapter kind detection to handle "zai" namespace
- Remove dual-endpoint complexity from user-facing API
Co-authored-by: Rui Andrada <rui.andrada@imaginedone.com.br>
* feat: parts thought signature
* feat: gemini adapter thought signature support
- Add ContentPart::ThoughtSignature with accessors and helpers.
- Introduce InterStreamEvent::ThoughtSignatureChunk and ChatStreamEvent::ThoughtSignatureChunk.
- Capture thought signatures into StreamEnd.captured_content when enabled.
- Update printer to display ThoughtSignatureChunk events (non-captured).
- Gemini adapter: parse thoughtSignature (fallback: thought) and include in outgoing messages.
- Gemini streamer: surface thought as ThoughtSignatureChunk and record in captured_thought_signatures.
- Preserve thoughtSignature in assistant history before tool calls when looping tools.
- Example c10-tooluse-streaming.rs: switch to gemini-3-pro-preview, log thoughtSignature chunks, and prepend captured thoughts to assistant message.
* chore: impl thought signature
* chore: no API change
…opriate gemini thinkingLevel LOW/HIGH, fall back on budget if not gemini 3 or other effort
jeremychoneand others added 26 commits January 27, 2026 18:55
…text parts (fixesjeremychone#135) (jeremychone#136)
Co-authored-by: Ross MacLeod <rmm+github@z.odi.ac>
- fix - anthropic - streaming adapter now captures cache tokens
^ cache - anthropic - Adds them to prompt_tokens (matching into_usage behavior)
^ cache - anthropic - add TTL support for prompt caching
- fix - anthropic - apply per-part cache_control on system messages and add cache TTL example
Merged 124 upstream commits from jeremychone/rust-genai while preserving
fork-specific adapters:
- AWS Bedrock (Converse API with Bearer token auth)
- Cerebras (OpenAI-compatible)
- OpenRouter (provider-pattern routing)
- Zhipu (legacy, backwards compatibility)
New features from upstream:
- ModelSpec API for flexible model specification
- MIMO and BigModel adapters
- Enhanced ZAI with dual-endpoint support (zai:: and zai-coding::)
- ThoughtSignature and ReasoningEffort improvements
- Custom EventSourceStream replacing reqwest-eventsource
- Enhanced error handling with request/response capture
Breaking changes:
- ZAi adapter renamed to Zai (upstream naming)
- ZAI model list updated to upstream v0.6.0-alpha.2
Conflict resolution:
- adapter_kind.rs: Merged all 19 adapter variants
- dispatcher.rs: Added fork adapters to upstream dispatch
- adapters/mod.rs: Export all adapter modules
- Accepted upstream for streaming and chat improvements
Tests updated for new adapter naming and model lists.
Co-Authored-By: Terraphim AI <noreply@terraphim.io>
Apply cargo fmt to fix minor formatting inconsistencies in:
- src/chat/tool/tool_response.rs (extra blank line)
- tests/test_verify_model_lists.rs (println formatting)
- tests/test_zai_adapter.rs (import order)
Co-Authored-By: Terraphim AI <noreply@terraphim.io>
@AlexMikhalev
AlexMikhalev merged commit b6ba1b3 into mainFeb 7, 2026
1 check failed
AlexMikhalev added a commit that referenced this pull request Mar 16, 2026
Refs #4
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for freeto 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.

16 participants

@AlexMikhalev@pdylanross@bartCarroll@jeremychone@shingonoide@Himmelschmidt@vagmi@ii64@Akagi201@malyavi-nochum@mengdehong@BinaryMuse@vlmutolo@anagrius@Dridus@holovskyi
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat: synchronize fork with upstream v0.6.0-alpha.2 - #4

Merged
AlexMikhalev merged 126 commits into
mainfrom
feature/merge-upstream-v0.6.0-alpha.2
Feb 7, 2026
Merged

feat: synchronize fork with upstream v0.6.0-alpha.2#4
AlexMikhalev merged 126 commits into
mainfrom
feature/merge-upstream-v0.6.0-alpha.2

Conversation

@AlexMikhalev

Copy link
Copy Markdown

Summary

  • Merge 124 upstream commits from jeremychone/rust-genai v0.6.0-alpha.2
  • Preserve all fork-specific adapters (Bedrock, Cerebras, OpenRouter, Zhipu)
  • Integrate new upstream features (ModelSpec, MIMO, BigModel, enhanced ZAI)
  • Fix API changes and resolve 12 merge conflicts

Changes

Upstream Features Integrated

  • ModelSpec API: Enhanced model specification system
  • MIMO Adapter: New provider support
  • BigModel Adapter: bigmodel.cn provider support
  • Enhanced ZAI: Dual endpoint support (zai::, zai-coding::), renamed to "Zai"
  • Cache Control TTL: Anthropic cache with 5m/1h TTL options

Fork Features Preserved

  • AWS Bedrock: Converse API adapter with Bearer token auth
  • Cerebras: Fast inference provider
  • OpenRouter: Multi-provider routing
  • Zhipu: Legacy compatibility

Adapters (19 total)

OpenAI, OpenAIResp, Gemini, OpenRouter, Anthropic, Fireworks, Together, Groq, Mimo, Nebius, Xai, DeepSeek, Zai, BigModel, Cohere, Ollama, Cerebras, Bedrock, Zhipu

Test plan

  • cargo fmt --check - passes
  • cargo clippy - 6 warnings (all in upstream code)
  • cargo build - compiles successfully
  • cargo test --lib - 14/14 tests pass
  • cargo test --test mock_tests - 18/18 tests pass
  • cargo test --test test_adapter_consistency - verifies adapter code matches tests
  • cargo test --test test_verify_model_lists - verifies model resolution
  • cargo test --test test_zai_adapter - verifies ZAI adapter

Defects Resolved

IssueResolution
Method as_model_name_and_namespace renamedUpdated to namespace_and_name()
Duplicate size() methodsRemoved duplicates
ZAI adapter renamed "ZAi" -> "Zai"Updated all tests
ZAI model list changedUpdated test expectations

Generated by Terraphim AI

pdylanrossand others added 30 commits October 19, 2025 18:23
…eremychone#95)
- Rename zhipu adapter to zai adapter
- Implement namespace-based routing for regular vs coding endpoints
- Regular models: "glm-4.6" → credit-based API
- Coding models: "zai::glm-4.6" → subscription API
- Add comprehensive example c07-zai.rs
- Update adapter kind detection to handle "zai" namespace
- Remove dual-endpoint complexity from user-facing API
Co-authored-by: Rui Andrada <rui.andrada@imaginedone.com.br>
* feat: parts thought signature
* feat: gemini adapter thought signature support
- Add ContentPart::ThoughtSignature with accessors and helpers.
- Introduce InterStreamEvent::ThoughtSignatureChunk and ChatStreamEvent::ThoughtSignatureChunk.
- Capture thought signatures into StreamEnd.captured_content when enabled.
- Update printer to display ThoughtSignatureChunk events (non-captured).
- Gemini adapter: parse thoughtSignature (fallback: thought) and include in outgoing messages.
- Gemini streamer: surface thought as ThoughtSignatureChunk and record in captured_thought_signatures.
- Preserve thoughtSignature in assistant history before tool calls when looping tools.
- Example c10-tooluse-streaming.rs: switch to gemini-3-pro-preview, log thoughtSignature chunks, and prepend captured thoughts to assistant message.
* chore: impl thought signature
* chore: no API change
…opriate gemini thinkingLevel LOW/HIGH, fall back on budget if not gemini 3 or other effort
jeremychoneand others added 26 commits January 27, 2026 18:55
…text parts (fixesjeremychone#135) (jeremychone#136)
Co-authored-by: Ross MacLeod <rmm+github@z.odi.ac>
- fix - anthropic - streaming adapter now captures cache tokens
^ cache - anthropic - Adds them to prompt_tokens (matching into_usage behavior)
^ cache - anthropic - add TTL support for prompt caching
- fix - anthropic - apply per-part cache_control on system messages and add cache TTL example
Merged 124 upstream commits from jeremychone/rust-genai while preserving
fork-specific adapters:
- AWS Bedrock (Converse API with Bearer token auth)
- Cerebras (OpenAI-compatible)
- OpenRouter (provider-pattern routing)
- Zhipu (legacy, backwards compatibility)
New features from upstream:
- ModelSpec API for flexible model specification
- MIMO and BigModel adapters
- Enhanced ZAI with dual-endpoint support (zai:: and zai-coding::)
- ThoughtSignature and ReasoningEffort improvements
- Custom EventSourceStream replacing reqwest-eventsource
- Enhanced error handling with request/response capture
Breaking changes:
- ZAi adapter renamed to Zai (upstream naming)
- ZAI model list updated to upstream v0.6.0-alpha.2
Conflict resolution:
- adapter_kind.rs: Merged all 19 adapter variants
- dispatcher.rs: Added fork adapters to upstream dispatch
- adapters/mod.rs: Export all adapter modules
- Accepted upstream for streaming and chat improvements
Tests updated for new adapter naming and model lists.
Co-Authored-By: Terraphim AI <noreply@terraphim.io>
Apply cargo fmt to fix minor formatting inconsistencies in:
- src/chat/tool/tool_response.rs (extra blank line)
- tests/test_verify_model_lists.rs (println formatting)
- tests/test_zai_adapter.rs (import order)
Co-Authored-By: Terraphim AI <noreply@terraphim.io>
@AlexMikhalev
AlexMikhalev merged commit b6ba1b3 into mainFeb 7, 2026
1 check failed
AlexMikhalev added a commit that referenced this pull request Mar 16, 2026
Refs #4
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for freeto 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.

16 participants

@AlexMikhalev@pdylanross@bartCarroll@jeremychone@shingonoide@Himmelschmidt@vagmi@ii64@Akagi201@malyavi-nochum@mengdehong@BinaryMuse@vlmutolo@anagrius@Dridus@holovskyi
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

feat: synchronize fork with upstream v0.6.0-alpha.2 - #4

Merged
AlexMikhalev merged 126 commits into
mainfrom
feature/merge-upstream-v0.6.0-alpha.2
Feb 7, 2026
Merged

feat: synchronize fork with upstream v0.6.0-alpha.2#4
AlexMikhalev merged 126 commits into
mainfrom
feature/merge-upstream-v0.6.0-alpha.2

Conversation

@AlexMikhalev

Copy link
Copy Markdown

Summary

  • Merge 124 upstream commits from jeremychone/rust-genai v0.6.0-alpha.2
  • Preserve all fork-specific adapters (Bedrock, Cerebras, OpenRouter, Zhipu)
  • Integrate new upstream features (ModelSpec, MIMO, BigModel, enhanced ZAI)
  • Fix API changes and resolve 12 merge conflicts

Changes

Upstream Features Integrated

  • ModelSpec API: Enhanced model specification system
  • MIMO Adapter: New provider support
  • BigModel Adapter: bigmodel.cn provider support
  • Enhanced ZAI: Dual endpoint support (zai::, zai-coding::), renamed to "Zai"
  • Cache Control TTL: Anthropic cache with 5m/1h TTL options

Fork Features Preserved

  • AWS Bedrock: Converse API adapter with Bearer token auth
  • Cerebras: Fast inference provider
  • OpenRouter: Multi-provider routing
  • Zhipu: Legacy compatibility

Adapters (19 total)

OpenAI, OpenAIResp, Gemini, OpenRouter, Anthropic, Fireworks, Together, Groq, Mimo, Nebius, Xai, DeepSeek, Zai, BigModel, Cohere, Ollama, Cerebras, Bedrock, Zhipu

Test plan

  • cargo fmt --check - passes
  • cargo clippy - 6 warnings (all in upstream code)
  • cargo build - compiles successfully
  • cargo test --lib - 14/14 tests pass
  • cargo test --test mock_tests - 18/18 tests pass
  • cargo test --test test_adapter_consistency - verifies adapter code matches tests
  • cargo test --test test_verify_model_lists - verifies model resolution
  • cargo test --test test_zai_adapter - verifies ZAI adapter

Defects Resolved

IssueResolution
Method as_model_name_and_namespace renamedUpdated to namespace_and_name()
Duplicate size() methodsRemoved duplicates
ZAI adapter renamed "ZAi" -> "Zai"Updated all tests
ZAI model list changedUpdated test expectations

Generated by Terraphim AI

pdylanrossand others added 30 commits October 19, 2025 18:23
…eremychone#95)
- Rename zhipu adapter to zai adapter
- Implement namespace-based routing for regular vs coding endpoints
- Regular models: "glm-4.6" → credit-based API
- Coding models: "zai::glm-4.6" → subscription API
- Add comprehensive example c07-zai.rs
- Update adapter kind detection to handle "zai" namespace
- Remove dual-endpoint complexity from user-facing API
Co-authored-by: Rui Andrada <rui.andrada@imaginedone.com.br>
* feat: parts thought signature
* feat: gemini adapter thought signature support
- Add ContentPart::ThoughtSignature with accessors and helpers.
- Introduce InterStreamEvent::ThoughtSignatureChunk and ChatStreamEvent::ThoughtSignatureChunk.
- Capture thought signatures into StreamEnd.captured_content when enabled.
- Update printer to display ThoughtSignatureChunk events (non-captured).
- Gemini adapter: parse thoughtSignature (fallback: thought) and include in outgoing messages.
- Gemini streamer: surface thought as ThoughtSignatureChunk and record in captured_thought_signatures.
- Preserve thoughtSignature in assistant history before tool calls when looping tools.
- Example c10-tooluse-streaming.rs: switch to gemini-3-pro-preview, log thoughtSignature chunks, and prepend captured thoughts to assistant message.
* chore: impl thought signature
* chore: no API change
…opriate gemini thinkingLevel LOW/HIGH, fall back on budget if not gemini 3 or other effort
jeremychoneand others added 26 commits January 27, 2026 18:55
…text parts (fixesjeremychone#135) (jeremychone#136)
Co-authored-by: Ross MacLeod <rmm+github@z.odi.ac>
- fix - anthropic - streaming adapter now captures cache tokens
^ cache - anthropic - Adds them to prompt_tokens (matching into_usage behavior)
^ cache - anthropic - add TTL support for prompt caching
- fix - anthropic - apply per-part cache_control on system messages and add cache TTL example
Merged 124 upstream commits from jeremychone/rust-genai while preserving
fork-specific adapters:
- AWS Bedrock (Converse API with Bearer token auth)
- Cerebras (OpenAI-compatible)
- OpenRouter (provider-pattern routing)
- Zhipu (legacy, backwards compatibility)
New features from upstream:
- ModelSpec API for flexible model specification
- MIMO and BigModel adapters
- Enhanced ZAI with dual-endpoint support (zai:: and zai-coding::)
- ThoughtSignature and ReasoningEffort improvements
- Custom EventSourceStream replacing reqwest-eventsource
- Enhanced error handling with request/response capture
Breaking changes:
- ZAi adapter renamed to Zai (upstream naming)
- ZAI model list updated to upstream v0.6.0-alpha.2
Conflict resolution:
- adapter_kind.rs: Merged all 19 adapter variants
- dispatcher.rs: Added fork adapters to upstream dispatch
- adapters/mod.rs: Export all adapter modules
- Accepted upstream for streaming and chat improvements
Tests updated for new adapter naming and model lists.
Co-Authored-By: Terraphim AI <noreply@terraphim.io>
Apply cargo fmt to fix minor formatting inconsistencies in:
- src/chat/tool/tool_response.rs (extra blank line)
- tests/test_verify_model_lists.rs (println formatting)
- tests/test_zai_adapter.rs (import order)
Co-Authored-By: Terraphim AI <noreply@terraphim.io>
@AlexMikhalev
AlexMikhalev merged commit b6ba1b3 into mainFeb 7, 2026
1 check failed
AlexMikhalev added a commit that referenced this pull request Mar 16, 2026
Refs #4
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for freeto 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.

16 participants

@AlexMikhalev@pdylanross@bartCarroll@jeremychone@shingonoide@Himmelschmidt@vagmi@ii64@Akagi201@malyavi-nochum@mengdehong@BinaryMuse@vlmutolo@anagrius@Dridus@holovskyi