Commit graph

3655 commits

Author SHA1 Message Date
github-actions[bot] 959ba5b82f chore(release): Update version to v1.4.422 2026-02-26 06:25:26 +00:00
Kayvan Sylvan b28501c0ac
Merge pull request #2031 from ksylvan/kayvan/web-model-lists
Web UI: Add Vendor Filter Dropdown to Model Selection UI
2026-02-25 22:23:06 -08:00
Kayvan Sylvan 420a7893f9 chore: incoming 2031 changelog entry 2026-02-25 22:17:47 -08:00
Kayvan Sylvan e6d9490dc9 feat: add vendor filter dropdown and sorted model listing to chat UI
- Add vendor selector dropdown to filter available models
- Introduce `selectedVendor` writable store for vendor selection
- Add `vendorNames` derived store with sorted unique vendor names
- Add `filteredModels` derived store filtered by selected vendor
- Fix model deduplication to use `vendor:name` composite key
- Sort models by vendor then name, case-insensitive
- Display vendor prefix in model option labels
2026-02-25 22:14:03 -08:00
github-actions[bot] cb11e97ea8 chore(release): Update version to v1.4.421 2026-02-26 03:00:28 +00:00
Kayvan Sylvan abf045ac81
Merge pull request #2029 from ksylvan/kayvan/web-cleanup
Web UI: Fix streaming chat: tokens now accumulate in order into a single message
2026-02-25 18:58:08 -08:00
Kayvan Sylvan d06d7c376c feat: improve streaming message handling and SSE buffer parsing
- Append content to existing assistant messages instead of replacing
- Fix loading message removal to search by index, not position
- Refactor SSE buffer splitting to always retain incomplete segments
- Trim segments before parsing to handle whitespace edge cases
- Consolidate duplicate message update logic across chat components
- Process remaining buffer after stream completion more reliably
2026-02-25 18:54:46 -08:00
github-actions[bot] 2cf61e8a5d chore(release): Update version to v1.4.420 2026-02-24 01:12:40 +00:00
Kayvan Sylvan af89f2e295
Merge pull request #2021 from jlec/pr-2014-updates
Enhanced Azure AI Gateway with i18n Support and documentation
2026-02-23 17:10:08 -08:00
Kayvan Sylvan 103493206e fix: Address copilot review comments 2026-02-23 14:29:25 -08:00
Justin Lecher 283a548e05 feat: address PR #2014 feedback and add configurable Azure OpenAI API version
This commit addresses all review feedback from PR #2014 and adds
configurable API version support for Azure OpenAI backend.

PR Review Fixes:
- Add URL validation with HTTPS enforcement (ISC-C7)
- Implement cancellable context in SendStream with 300s timeout (ISC-C6)
- Add response body size limit (10MB) using io.LimitReader (ISC-C12)
- Update error body truncation from 200 to 500 characters (ISC-C13)
- Lowercase error messages per Go convention (ISC-C15)
- Add file-level documentation to all backend files (ISC-C14)
- Fix Bedrock max_tokens to respect opts.MaxTokens with fallback (ISC-C5)
- Document temperature/top_p mutual exclusivity in Bedrock (ISC-C11)
- Add debug logging when empty messages are skipped (ISC-C16)
- Add error check for empty message lists across all backends
- Verify and document Vertex AI endpoint path for APIM routing (ISC-C9)
- Update Azure OpenAI API version to 2025-04-01-preview (ISC-C10)

New Feature - Configurable API Version:
- Add APIVersion field to Client struct for Azure OpenAI backend
- Add optional setup question for API version (default: 2025-04-01-preview)
- Update AzureOpenAIBackend to accept and use configurable API version
- Maintain backward compatibility: empty version defaults to 2025-04-01-preview
- Add test coverage for custom API version and backward compatibility
- Update all existing tests to work with new backend signature

Test Coverage: 89.1% (maintained from 89.0%)
All 52 tests passing (49 existing + 3 new API version tests)

Internationalization polish: add AzureAIGateway locale strings across all 10 languages

- Add `azureaigateway_*` i18n keys to all 10 locale files
- Replace hardcoded error strings with `i18n.T()` calls
- Internationalize setup question prompts for gateway configuration
- Add `errors.New` in place of `fmt.Errorf` for static error strings
- Fix `url.QueryEscape` for API version query parameter encoding
- Correct `claude-opus-4-6-v1` model ID to include `:0` suffix
- Add error case for empty Bedrock text content blocks in `ParseResponse`
- Add test for Bedrock `ParseResponse` with no text content blocks
- Add `SendStream` context limitation note as inline code comment
- Truncate debug error body log output at 2000 characters
2026-02-23 13:58:32 -08:00
github-actions[bot] 6e22e55136 chore(release): Update version to v1.4.419 2026-02-22 06:05:18 +00:00
Kayvan Sylvan 4147712e96
Merge pull request #2020 from ksylvan/kayvan/add-llm-comms-logging
Add `wire` Debug Level for LLM Request/Response Logging
2026-02-21 22:03:01 -08:00
Kayvan Sylvan 114e908762 chore: incoming 2020 changelog entry 2026-02-21 20:29:46 -08:00
Kayvan Sylvan 4d4bf3cc40 feat: add wire-level debug mode (level 4) to fabric debug flag
## CHANGES

- Add debug level 4 (`wire`) to `--debug` flag options
- Update zsh completion to include new `4` debug level value
- Update bash completion to include `4` in `compgen -W` word list
- Update fish completion description and arguments with level 4
2026-02-21 20:29:00 -08:00
Kayvan Sylvan e7d0d64511 feat: add wire debug level (4) for full LLM request/response debug logging
## CHANGES

- Add `Wire` log level constant to debug level enum
- Expose `GetLevel()` function for safe concurrent level reads
- Log outbound message roles and content at wire debug level
- Log inbound stream updates and token usage at wire level
- Log non-streaming LLM responses at wire debug level
- Update `--debug` flag description to include new level 4
- Update `set_debug_level` locale strings across all 10 languages
2026-02-21 19:48:38 -08:00
github-actions[bot] 98a5ad54e3 chore(release): Update version to v1.4.418 2026-02-22 00:06:47 +00:00
Kayvan Sylvan 6b46ac1e78
Merge pull request #2019 from ksylvan/2026-02-21-i18n
feat: replace hardcoded error strings with i18n translation keys
2026-02-21 16:04:27 -08:00
Kayvan Sylvan 8505133a30 chore: incoming 2019 changelog entry 2026-02-21 16:00:20 -08:00
Kayvan Sylvan 9514f6cdfe chore: add DigitalOcean error i18n strings and sort locale keys alphabetically
- Add three new DigitalOcean error message translation keys across all locales
- Add plugin registry vendor and setup default translation keys
- Move misplaced locale entries into correct alphabetical order
- Replace hardcoded English error strings with `i18n.T()` calls in DigitalOcean client
- Sort Go import statements alphabetically in YouTube tool
2026-02-21 15:55:50 -08:00
Kayvan Sylvan e84edd935b refactor: replace fmt.Errorf("%s", ...) with errors.New() and normalize i18n strings
- Replace `fmt.Errorf("%s", ...)` with `errors.New()` across all packages
- Add `errors` import where needed, remove unused `fmt` imports
- Lowercase error message strings in i18n locale files for Go conventions
- Add `plugin_registry_run_setup_select_defaults` i18n key for setup prompt
- Add `plugin_registry_could_not_find_vendor` i18n key for vendor errors
- Internationalize hardcoded English strings in `plugin_registry.go`
- Update `db_error_loading_env_file` format verb from `%s` to `%w` for wrapping
- Normalize error casing in en, de, es, fr, it, ja, pt-BR, pt-PT, zh, fa locales
2026-02-21 15:48:01 -08:00
Kayvan Sylvan b6e3a476e8 chore: incoming 2019 changelog entry 2026-02-21 13:54:12 -08:00
Kayvan Sylvan e9b1b88d86 feat: replace hardcoded error strings with i18n translation keys
- Replace hardcoded error messages with `i18n.T()` calls across Go source files
- Add ~80 new translation keys to all locale files (en, de, es, fa, fr, it, ja, pt-BR, pt-PT, zh)
- Internationalize error strings in chat, attachment, storage, and template packages
- Internationalize error strings in plugin registry, server, and utility modules
- Internationalize githelper, notifications, patterns, and sessions modules
- Add i18n support for DigitalOcean, Gemini, and OpenAI-compatible providers
- Sort existing locale keys alphabetically in JSON files
- chore: incoming 2019 changelog entry
2026-02-21 13:28:52 -08:00
github-actions[bot] 29af6e62eb chore(release): Update version to v1.4.417 2026-02-21 20:19:08 +00:00
Kayvan Sylvan f412a37659
Merge pull request #2014 from jlec/azure-ai-gateway
feat: add Azure AI Gateway plugin support
2026-02-21 12:16:38 -08:00
Kayvan Sylvan 57ecad54de chore: Add Azure Entra ID authentication and Azure AI Gateway plugin to README 2026-02-21 12:13:48 -08:00
Kayvan Sylvan 08d4d27090 chore: incoming 2014 changelog entry 2026-02-21 11:43:30 -08:00
Kayvan Sylvan 7faf4f6a14 feat: add Azure AI Gateway plugin to the plugin registry
- Import the new `azureaigateway` plugin package
- Register `azureaigateway.NewClient()` in the plugin registry
- Enable Azure AI Gateway as an available AI provider
2026-02-21 11:41:02 -08:00
github-actions[bot] 95766ff342 chore(release): Update version to v1.4.416 2026-02-21 15:27:43 +00:00
Kayvan Sylvan f4680c9b04
Merge pull request #2013 from ByronPogson/azure-entra-auth
feat: add Azure Entra ID authentication plugin
2026-02-21 07:25:26 -08:00
Kayvan Sylvan eac0eb7fb7 chore: incoming 2013 changelog entry 2026-02-21 07:16:24 -08:00
Kayvan Sylvan 94425b5778 feat: add Azure Entra ID authentication plugin with shared Azure utilities
## CHANGES

- Add new `azure_entra` plugin client to plugin registry
- Extract shared Azure logic into `azurecommon` package
- Move `ParseDeployments`, `BuildEndpoint`, and middleware to `azurecommon`
- Upgrade `azidentity` to v1.13.1 with Entra ID/MSAL support
- Add `golang-jwt`, `pkg/browser`, and `go-keychain` as new dependencies
- Add `azure_credential_failure`, `azure_base_url_question` i18n keys across all locales
- Validate Azure deployment names are non-empty on configure
2026-02-20 23:30:29 -08:00
github-actions[bot] 5b01367b3d chore(release): Update version to v1.4.415 2026-02-19 23:28:45 +00:00
Kayvan Sylvan 894b07bdf6
Merge pull request #2016 from ksylvan/kayvan/fix-1m-context-window-for-claude
Extend Anthropic model beta map with 1M context models
2026-02-19 15:25:49 -08:00
Kayvan Sylvan 7210266f85 chore: incoming 2016 changelog entry 2026-02-19 15:22:56 -08:00
Kayvan Sylvan d6bb84da4d chore: extend Anthropic model beta map with 1M context models
## CHANGES
- Document 1M token context window model support.
- Clarify model beta list maintenance and update strategy.
- Add Claude Sonnet 4.6 to context-1m beta list.
- Add Claude Opus 4.5 and 4.6 beta entries.
- Group model variants under clearer, annotated sections.
2026-02-19 15:09:12 -08:00
github-actions[bot] e1c4629a78 chore(release): Update version to v1.4.414 2026-02-19 22:19:38 +00:00
Kayvan Sylvan ab50a4a392
Merge pull request #2015 from ksylvan/kayvan/i18n-fixes-2026-02-19
Implement comprehensive i18n support across all plugins and tools
2026-02-19 14:17:12 -08:00
Kayvan Sylvan e979cb2fc7 chore: incoming 2015 changelog entry 2026-02-19 14:09:06 -08:00
Kayvan Sylvan 8f9798a69b chore: implement comprehensive i18n support across all plugins and tools
### CHANGES
- Implement internationalization support for all AI vendor plugins
- Update localization files for multiple languages with new keys
- Replace hardcoded strings in Spotify and YouTube tools
- Add unit tests for localized error handling in Ollama
- Refactor template plugins to use localized system error messages
- Standardize setup questions using the new i18n translation framework
2026-02-19 14:00:23 -08:00
github-actions[bot] 863f36a96e chore(release): Update version to v1.4.413 2026-02-18 07:20:44 +00:00
Kayvan Sylvan 9fd3f53d93
Merge pull request #2012 from ksylvan/kayvan/dead-code-removal
Remove unused `gemini_openai` plugin and `oauth_storage` utility
2026-02-17 23:18:28 -08:00
Kayvan Sylvan 76bb7c4b70 chore: incoming 2012 changelog entry 2026-02-17 23:16:15 -08:00
Kayvan Sylvan af47036bff chore: remove unused gemini_openai plugin and oauth_storage utility
## CHANGES

- Delete `gemini_openai` package and its OpenAI-compatible client wrapper
- Remove `OAuthToken` struct and expiry-check logic from `util`
- Remove `OAuthStorage` persistent token save/load/delete handlers
- Drop `HasValidToken` helper and atomic file-write token saving
- Delete all `oauth_storage` unit tests covering token lifecycle
2026-02-17 23:11:48 -08:00
github-actions[bot] 162819cf56 chore(release): Update version to v1.4.412 2026-02-18 06:27:49 +00:00
Kayvan Sylvan c7b1c200c1
Merge pull request #1996 from ksylvan/kayvan/anthropic-sdk-deprecations
chore: bump Go dependencies and remove deprecated Anthropic models
2026-02-17 22:25:24 -08:00
Kayvan Sylvan 12f34621b9 chore: bump Go dependencies and remove deprecated Anthropic models
- Bump go-sqlite3 from v1.14.33 to v1.14.34
- Bump ollama from v0.15.6 to v0.16.1
- Bump google.golang.org/api from v0.265.0 to v0.266.0
- Bump google.golang.org/grpc from v1.78.0 to v1.79.0
- Remove deprecated Claude 3.x model references from Anthropic client
- Remove claude-3-7-sonnet model from OpenAI-compatible provider config
- Add changelog entry for PR #1996
- Add PDFURL and URLPDF to VSCode spell-check dictionary
- incoming 1996 changelog entry
2026-02-17 21:01:39 -08:00
github-actions[bot] 7c0d3dfefb chore(release): Update version to v1.4.411 2026-02-18 03:53:17 +00:00
Kayvan Sylvan 3e1107ec98
Merge pull request #2011 from ksylvan/kayvan/add-claude-sonnet-4-6
Add support for Claude Sonnet 4.6
2026-02-17 19:50:18 -08:00
Kayvan Sylvan d2d4c4e5c9 chore: incoming 2011 changelog entry 2026-02-17 19:43:51 -08:00