Commit graph

9 commits

Author SHA1 Message Date
Danila Poyarkov 3353c747af fix(ai): preserve valid design assignment
- Reject removing the active Design profile when no tools-capable fallback exists

- Cover text-only fallback handling
2026-08-05 17:03:37 +03:00
Danila Poyarkov 7a3a8bf53f refactor(chat): polish model profile switching
- Centralize design-profile eligibility for the selector, role assignment, fallback, and tests
- Keep built-in provider model selection intact while switching saved custom profiles
- Add localized accessible labeling and constrain long profile names
2026-08-05 15:44:27 +03:00
Rob Coenen 4bdaeb6d6e feat(chat): switch models from the chat panel
The chat model chip is a dropdown for built-in providers but a static label
for OpenAI-compatible and custom-model setups, so anyone using a custom
endpoint had to open Settings to change models -- even with several models
already configured.

Add a profile switcher that reassigns the design role from the chat panel.
It lists saved profiles that can use tools, shows the profile name rather
than the raw model ID, and badges the vision-capable ones. It writes the
same assignments.design field the Settings dropdown does, so the two stay in
sync.

Only renders when more than one tools-capable profile exists; a single
profile keeps the existing label. Built-in providers keep ProviderModelSelect
unchanged.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-05 15:28:31 +03:00
Danila Poyarkov d57a920646 feat(ai): support MiniMax M3
- Make MiniMax-M3 the default MiniMax model
- Verify the existing OpenAI-compatible adapter sends M3 requests correctly
- Update AI documentation and release notes for #431
2026-08-01 15:19:09 +03:00
rcoenen ff31f90de9
fix(ai): opt into Anthropic direct browser access (#438)
Anthropic omits Access-Control-Allow-Origin unless the caller sends
anthropic-dangerous-direct-browser-access, so the web build failed with an
opaque "Could not reach this endpoint from the browser" for the anthropic
provider. @ai-sdk/anthropic does not send the header and neither did our
adapter.

Send it from the browser only. The desktop build routes through tauriFetch
and is not subject to CORS, so it does not need to advertise browser access.

Fixes #436

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-31 20:22:45 +03:00
Danila Poyarkov 49b2d49e40 fix(storage): preserve durable sync work
- Resume persisted outbox jobs at startup without dropping writes when credentials are unavailable

- Serialize IndexedDB revisions and guard sync completion against concurrent saves

- Reconcile tombstones without reviving deleted documents and bound S3 metadata requests

- Require explicit CORS configuration instead of overwriting bucket rules during connection tests

- Keep ACP agents exclusive to the Design role and normalize invalid model limits
2026-07-26 23:43:38 +03:00
Danila Poyarkov e56727c22c feat(ai): configure reusable model profiles
- Separate provider connections, model profiles, capabilities, and role assignments

- Replace role-specific forms with a reusable model library and assignment table

- Resolve credentials lazily per connection and preserve existing Design settings

- Route Design chat through the assigned profile while exposing Review, Fast, and Vision runtimes
2026-07-26 22:53:45 +03:00
Danila Poyarkov 4c5cd0a678 refactor(ai): register direct model providers
- Move provider-specific model construction behind typed adapters

- Keep OpenAI- and Anthropic-compatible configuration reusable

- Verify every direct provider is registered while ACP agents stay separate
2026-07-26 14:07:35 +03:00
Danila Poyarkov 8cb6d008fc fix(ai): allow custom OpenRouter models 2026-05-19 15:10:32 +03:00