Commit Graph
9 Commits
Author SHA1 Message Date
whit3rabbitandClaude Opus 4.8 70ba5ade26 fix(docker): use hyphenated anyllm-proxy binary name
The [[bin]] name became anyllm-proxy (hyphen) in 0.12.0, but the Dockerfile
runtime COPY and docker-entrypoint.sh still referenced anyllm_proxy
(underscore), breaking the Docker image build ("/app/target/release/anyllm_proxy:
not found"). Both now use the hyphenated name.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-12 08:10:41 -05:00
whit3rabbitandClaude Opus 4.8 e46ab81273 fix(docker): disable cargo HTTP/2 multiplexing for arm64 builds
GitHub's arm64 Docker builders intermittently hit "[16] Error in the
HTTP2 framing layer" during cargo-chef's sparse-index fetches, panicking
the cook step (recipe.rs:224) and failing the v0.9.9 arm64 release build.

Set CARGO_HTTP_MULTIPLEXING=false + CARGO_NET_RETRY=5 in the chef stage,
inherited by planner and builder. Multiplexing-off is the canonical
workaround for transient crates.io HTTP/2 framing errors.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-14 18:35:13 -05:00
whit3rabbitandClaude Sonnet 4.6 98ff681ae5 fix: add --legacy-peer-deps to Docker npm ci for vite 8 compat
@vitejs/plugin-react@4.7.0 peer deps don't declare vite 8 support yet.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-09 14:01:53 -05:00
whit3rabbitandClaude Sonnet 4.6 dfed5b14ff feat: React admin UI migration — React 19 + TypeScript + Traffic/Uptime tabs
Replace 1,928-line monolithic vanilla JS admin SPA with React 19 + TypeScript 5
application. Adds Traffic and Uptime tabs backed by new Rust API endpoints.

- Vite + vite-plugin-singlefile: single dist/index.html with inlined JS/CSS
- Custom closeBundle plugin preserves __CSP_NONCE__ placeholder for Rust injection
- React Query v5 for server state, Zustand v5 for auth + WS connection state
- All existing backend contracts preserved (CSRF, WS auth, sessionStorage key)
- New: GET /admin/api/traffic (route load, P95, req/min, time series)
- New: GET /admin/api/uptime (proxy start time, per-backend 30d history)
- New: health_checks SQLite table + background Tokio health-checker (30s probe)
- BackendHealthChanged WS event for immediate Uptime tab refresh on status flip
- Dockerfile gains Node.js Stage 1 for frontend build
- CI gains frontend job (tsc + lint + build) before Rust test job

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-05 15:29:47 -05:00
whit3rabbitandClaude Sonnet 4.6 2e22cfef3c chore: stage pre-existing main branch changes
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-05 15:28:55 -05:00
whit3rabbit f4ec5f34a1 feat(docker): add Node.js frontend build stage (Stage 1) 2026-04-05 15:21:36 -05:00
whit3rabbitandClaude Sonnet 4.6 1f9bb02968 feat: add Docker support, Gemini input handler, and batch engine improvements
Adds multi-arch Docker build with docker-compose, GitHub Actions CI workflow,
Gemini native input parsing, batch engine SQLite/file/webhook refactors,
and Bedrock streaming fixes.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-05 12:01:24 -05:00
whit3rabbitandClaude Sonnet 4.6 f1df50ff37 refactor: extract shared client crate and rename to anyllm_*
Introduce `anyllm_client` crate containing HTTP client construction,
SSRF-safe DNS resolver, retry/backoff logic, rate limit header parsing,
and SSE frame parsing. These were previously inlined in the proxy crate.

Rename crates from `anthropic_openai_proxy`/`anthropic_openai_translate`
to `anyllm_proxy`/`anyllm_translate` throughout.

proxy/backend: now re-exports retry, rate limit, and SSE symbols from
the client crate; `send_with_retry` and `build_http_client` are thin
adapters bridging BackendAuth/TlsConfig to the client crate's types.

streaming: remove duplicate `find_double_newline` and
`MAX_SSE_BUFFER_SIZE` definitions; import from `crate::backend` instead.

Fix missing `pub mod` declarations in translator and proxy that were
accidentally replaced by doc comments (streaming, usage_map, server,
redact).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 06:11:01 -05:00
whit3rabbitandClaude Opus 4.6 d37d1e25f1 Add phases 12-20: release infra, transparent proxy, model mapping, mTLS, extended thinking, Gemini research
Phases 12-18: release infrastructure (LICENSE, README, Dockerfile, CI,
CHANGELOG), transparent proxy with anthropic-version/anthropic-beta header
passthrough and lossy translation warnings, BIG_MODEL/SMALL_MODEL env-based
model mapping, mTLS client cert support (P12/PEM), max_completion_tokens
and reasoning_effort passthrough via serde flatten, extended thinking type
support (thinking blocks stripped in translation), top_k typed field.

Phase 20: Gemini backend research with docs/gemini-api-diffs.md covering
native API format, tool calling, streaming, auth, schema restrictions,
and Vertex AI OpenAI-compatible endpoint. Task roadmap through Phase 22.

Test count: 169 -> expanded with new fixture and unit tests for all phases.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 20:06:50 -05:00