whit3rabbit and Claude Sonnet 4.6
b5930eee51
chore: update Cargo.lock for 0.9.8 version bump
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-12 22:40:44 -05:00
whit3rabbit and Claude Sonnet 4.6
ad4fbf8dd4
style: cargo fmt, fix CHANGELOG release instruction
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
v0.9.8
2026-06-12 22:39:39 -05:00
whit3rabbit and Claude Sonnet 4.6
681b0d47d9
chore: bump to 0.9.8, add CHANGELOG, cargo update
...
- Version: 0.9.7 → 0.9.8 (workspace + all pinned inter-crate deps)
- New: AnthropicMessagesClient passthrough client
- New: RetryPolicy struct, retry_transport_errors flag, extra_header builder
- New: ssrf_allow_loopback, ssrf_allow_private, extra_headers in HttpClientConfig
- New: ChatMessage::effective_text(), claude-fable-5 in provider catalog
- Fix: relaxed serde defaults for lax local backends (Ollama, llama.cpp)
- Fix: warn on empty choices in openai_to_anthropic_response
- ci: create-release now uses CHANGELOG section as release body
- docs: CHANGELOG.md created, release process documented in CLAUDE.md
- deps: cargo update (~105 packages, tokio 1.52, axum 0.8.9, rustls 0.23.40)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-12 22:37:09 -05:00
whit3rabbit
517b6f4ea4
Bump version to 0.9.7
2026-06-07 15:51:43 -05:00
whit3rabbit
8b4abfdf7d
chore: bump version to 0.9.7
v0.9.7
2026-06-07 15:38:56 -05:00
whit3rabbit
d87a72cc66
Merge pull request #22 from whit3rabbit/codex/batch-builds-ci
...
[codex] preserve Anthropic tool context and provider catalog
2026-06-07 12:57:57 -05:00
whit3rabbit
878097b3b0
Merge remote-tracking branch 'origin/main' into codex/batch-builds-ci
...
# Conflicts:
# crates/proxy/src/main.rs
# crates/proxy/src/server/chat_completions.rs
2026-06-07 12:52:57 -05:00
whit3rabbit
88f18ee33a
fix: use hardened HTTP client for provider model refresh ( #20 )
2026-06-07 11:31:49 -05:00
whit3rabbit
a8c4330e58
Fix chat cache key collisions for Anthropic extensions ( #19 )
2026-06-07 11:31:35 -05:00
dependabot[bot]
ee0d8276bd
chore(deps): bump react-router and react-router-dom ( #21 )
...
Bumps [react-router](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router ) to 6.30.4 and updates ancestor dependency [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom ). These dependencies need to be updated together.
Updates `react-router` from 6.30.3 to 6.30.4
- [Release notes](https://github.com/remix-run/react-router/releases )
- [Changelog](https://github.com/remix-run/react-router/blob/react-router@6.30.4/packages/react-router/CHANGELOG.md )
- [Commits](https://github.com/remix-run/react-router/commits/react-router@6.30.4/packages/react-router )
Updates `react-router-dom` from 6.30.3 to 6.30.4
- [Release notes](https://github.com/remix-run/react-router/releases )
- [Changelog](https://github.com/remix-run/react-router/blob/react-router-dom@6.30.4/packages/react-router-dom/CHANGELOG.md )
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.30.4/packages/react-router-dom )
---
updated-dependencies:
- dependency-name: react-router
dependency-version: 6.30.4
dependency-type: indirect
- dependency-name: react-router-dom
dependency-version: 6.30.4
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-07 11:31:17 -05:00
whit3rabbit
3eae037f62
Wire Anthropic extensions through proxy
2026-06-07 10:20:07 -05:00
whit3rabbit
69ba9adefd
Preserve Anthropic tool context in translation
2026-06-07 10:19:59 -05:00
whit3rabbit
1b902c5310
Add provider catalog runtime support
2026-06-07 10:19:50 -05:00
whit3rabbit
dd82b01799
Ignore synrepo cache
2026-06-07 10:19:41 -05:00
github-actions[bot]
2f4f62d0f8
bot: update model pricing from LiteLLM [skip ci]
2026-06-01 07:33:46 +00:00
github-actions[bot]
d7e2740a38
bot: update model pricing from LiteLLM [skip ci]
2026-05-25 07:22:42 +00:00
Enes Gules and Context7 Bot
90dc594029
docs: add auto-generated code documentation ( #18 )
...
Co-authored-by: Context7 Bot <bot@context7.com >
2026-05-23 21:09:23 -05:00
whit3rabbit
2713f34336
Bump GitHub Actions to Node 24 releases
2026-05-23 20:47:42 -05:00
whit3rabbit
16554668c8
feat: add context7 configuration file with project URL and public key
2026-05-23 20:05:33 -05:00
whit3rabbit
45e18c83d2
chore: bump version to 0.9.6
v0.9.6
2026-05-23 16:39:43 -05:00
whit3rabbit
f78c925b6a
Align provider catalog with LiteLLM canonical IDs
2026-05-23 16:34:03 -05:00
whit3rabbit
c68bb88f85
chore: bump version to 0.9.5
v0.9.5
2026-05-23 15:35:01 -05:00
dependabot[bot] and whit3rabbit
9d01381166
chore(deps): bump rand from 0.8.5 to 0.8.6 ( #5 )
...
Bumps [rand](https://github.com/rust-random/rand ) from 0.8.5 to 0.8.6.
- [Release notes](https://github.com/rust-random/rand/releases )
- [Changelog](https://github.com/rust-random/rand/blob/0.8.6/CHANGELOG.md )
- [Commits](https://github.com/rust-random/rand/compare/0.8.5...0.8.6 )
---
updated-dependencies:
- dependency-name: rand
dependency-version: 0.8.6
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: whit3rabbit <whit3rabbit@users.noreply.github.com >
2026-05-23 15:28:28 -05:00
whit3rabbit
24b2af5d50
Require client API key for Anthropic middleware to prevent auth bypass ( #10 )
...
* Harden Anthropic middleware with required client API key
* docs: show required middleware client key
2026-05-23 15:23:29 -05:00
dependabot[bot]
2a069dfe08
chore(deps): bump openssl from 0.10.76 to 0.10.80 ( #9 )
...
Bumps [openssl](https://github.com/rust-openssl/rust-openssl ) from 0.10.76 to 0.10.80.
- [Release notes](https://github.com/rust-openssl/rust-openssl/releases )
- [Commits](https://github.com/rust-openssl/rust-openssl/compare/openssl-v0.10.76...openssl-v0.10.80 )
---
updated-dependencies:
- dependency-name: openssl
dependency-version: 0.10.80
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-23 15:22:43 -05:00
whit3rabbit
5e4a5ae263
fix(cache): isolate response cache by backend/auth context and include Anthropic system prompt ( #12 )
...
* fix(cache): scope response cache by auth and backend
* fix: scope cache by all accepted credentials
2026-05-23 15:22:17 -05:00
whit3rabbit
bb2d0e6bb3
fix(proxy): enforce virtual-key model allowlist for batch create ( #16 )
2026-05-23 15:21:09 -05:00
whit3rabbit
85477cee8b
fix: enforce virtual-key model allowlist on model-selecting passthrough routes ( #15 )
...
* fix(proxy): enforce virtual key model allowlist on passthrough endpoints
* fix: enforce virtual key policy on model passthroughs
2026-05-23 15:20:58 -05:00
whit3rabbit
7161f2b28b
fix(proxy): enforce virtual-key TPM when Redis rate limiter is enabled ( #14 )
...
* fix(proxy): record virtual-key TPM usage in redis limiter
* fix: keep redis TPM key only in redis builds
2026-05-23 15:20:44 -05:00
whit3rabbit
c29b523554
fix: reject unknown models when model router is active ( #13 )
...
* fix: reject unknown models when model router is active
* fix: use existing invalid request error for model router
2026-05-23 15:20:29 -05:00
whit3rabbit
98bc1c833a
fix: include pricing asset in proxy crate
v0.9.4
2026-05-23 15:03:09 -05:00
whit3rabbit
4cdfef82e3
chore: prepare 0.9.3 release
v0.9.3
2026-05-23 12:28:08 -05:00
whit3rabbit
1f300d8566
Fix virtual-key accounting across generation routes
2026-05-23 12:22:39 -05:00
whit3rabbit
158815acbd
Block virtual-key passthrough bypass
2026-05-23 12:22:39 -05:00
whit3rabbit
025d992ca3
Add in-process chat completion runtime
2026-05-23 12:22:39 -05:00
github-actions[bot]
fea7a8e9cd
bot: update model pricing from LiteLLM [skip ci]
2026-05-18 07:11:57 +00:00
github-actions[bot]
5618e975e9
bot: update model pricing from LiteLLM [skip ci]
2026-05-11 07:00:50 +00:00
github-actions[bot]
856159684c
bot: update model pricing from LiteLLM [skip ci]
2026-04-27 06:45:30 +00:00
github-actions[bot]
69929e494b
bot: update model pricing from LiteLLM [skip ci]
2026-04-20 06:37:28 +00:00
whit3rabbit and Claude Opus 4.7
3d62da3a68
chore: fix Rust 1.95 clippy lints
...
CI runs stable (now 1.95) which surfaces two new lints my 1.94 local
check missed:
- collapsible_match in reverse_message_map.rs: collapse the empty
guard branch into a match arm with a guard.
- manual_checked_ops in admin/db.rs: replace the explicit zero check
with checked_div(...).unwrap_or(0).
- collapsible_match in admin/ws.rs: clippy's suggested guard form
fails to compile because Bytes can't be moved in a pattern guard.
Apply a targeted #[allow] with a comment explaining why.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
v0.9.2
2026-04-18 19:41:46 -05:00
whit3rabbit and Claude Opus 4.7
4cc854f6ef
ci: clean up publish job for tag-triggered crates.io release
...
Drop job-level continue-on-error: true (was masking real failures since
each step already handles exit 101 inline). Remove the duplicate
anyllm_batch_engine step that lacked the exit-101 swallow. Canonical
publish order is now: translate -> providers -> client -> batch_engine
-> proxy with 30s sleeps for index propagation.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-18 19:26:36 -05:00
whit3rabbit and Claude Opus 4.7
6de126893f
chore: fix all clippy lints across workspace
...
- tools_map: use std::slice::from_ref over &[clone()] in 4 tests
- gemini_streaming_map: rewrite match as matches!
- backend/mod.rs: move impl BackendClient before #[cfg(test)] mod tests
- middleware: replace .filter().last() with .rfind() (xff parsing)
- middleware: drop dead `|| true` in is_ip_allowed smoke test
- sse: drop blank line between doc comment and assert_sse_ok
- streaming example: collapse nested if-let into outer match arms
- tool_execution tests: array literal over vec! for one-off slices
- live_bedrock: use is_some_and instead of map_or(false, _)
- live_api / live_responses: contains() over iter().any() on &[&str]
All test-only / example changes; no production behavior change.
1130 tests pass, fmt clean, clippy -D warnings clean.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-18 19:11:35 -05:00
whit3rabbit and Claude Opus 4.7
25f37dd9a4
docs(crates): add READMEs for client, batch_engine, proxy; bump 0.9.2
...
Each new README places the crate inside the anyllm-proxy workspace and
includes verified library-use examples for downstream consumers.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-18 19:04:38 -05:00
whit3rabbit and Claude Opus 4.7
857f6e81c5
docs(providers): add README covering purpose, library use, and catalog
...
Documents the anyllm_providers crate as a pure compile-time metadata
catalog within the anyllm-proxy workspace, with a TUI integration walk-
through defaulting to Ollama and LM Studio and a categorized list of
all 90 registered providers.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-18 18:49:08 -05:00
whit3rabbit and Claude Opus 4.6
58bd323242
fix(deps): bump rustls-webpki 0.103.10 -> 0.103.12, version 0.9.1
...
Fixes RUSTSEC-2026-0098 (URI name constraint bypass) and
RUSTSEC-2026-0099 (wildcard name constraint bypass).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
v0.9.1
2026-04-15 20:36:31 -05:00
whit3rabbit and Claude Opus 4.6
d28226a6b2
feat(admin-ui): redesign providers tab with tiered tile grid and detail panel
...
Replace modal-based add-provider flow with a tile grid grouped by popularity
tier (top, popular, notable, more). Clicking a tile opens a detail panel
overlay showing capabilities, models, configured backends, and inline add-key
form. Extracted tier grouping logic into providerTiers.ts utility.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-15 20:33:14 -05:00
whit3rabbit and Claude Sonnet 4.6
f583a1bc19
feat(providers): expand provider catalog with models and capabilities
...
Populate model definitions and refine capability flags across provider
stubs, adding context windows, output limits, and per-model capabilities
for chat, tool use, vision, and streaming where applicable.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-15 20:05:20 -05:00
whit3rabbit and Claude Sonnet 4.6
de8c534107
fix: allow dead_code on allowed_routes pending enforcement wiring
...
Field is populated from the DB but scoping enforcement is not yet wired,
so clippy flags it. Keep the field to avoid reshuffling VirtualKeyContext
when enforcement lands.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-14 18:58:19 -05:00
whit3rabbit and Claude Sonnet 4.6
2ff669a10b
style: apply cargo fmt
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-14 18:56:48 -05:00
whit3rabbit and Claude Sonnet 4.6
9ab1166e81
feat: admin UI redesign with sidebar nav, routes tab, and split rate limiters
...
- Replace top nav with sidebar layout; add shared Modal, Toast, ConfirmDialog, AsyncBoundary components
- Add Routes tab with full CRUD UI backed by new routes_api admin endpoints
- Split admin rate limiter into separate read/write buckets with method-aware middleware
- Add allowed_routes scoping to virtual keys
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-14 18:15:06 -05:00