Repository navigation
What's Changed
- fix(ehbp): pass through enclave key-config 422 as problem+json by @sh1ftred in #714
- fix(ehbp): raise upstream timeout to 60s and return 504 on timeout by @sh1ftred in #700
- fix: settle missing usage and pricing without losing refunds by @9qeklajc in #715
- feat: identify client app in request and error logs by @9qeklajc in #675
- clean up unsupported endpoints by @9qeklajc in #721
- feat: expose per-model reasoning effort on /v1/models by @sh1ftred in #725
- fix: mypy errors in reasoning effort tests by @9qeklajc in #726
- chore(deps): patch cryptography, setuptools, wheel, h11 and fastapi/starlette CVEs (1/3) by @9qeklajc in #722
- chore(deps): bump browserslist and @humanfs/node in ui lockfile (2/3) by @9qeklajc in #723
- update deps by @9qeklajc in #728
- chore(deps): bump httpx to 0.28 and litellm to 1.84, shimming cashu's removed proxies kwarg (3/3) by @9qeklajc in #724
- fix(payment): close prompt-estimation gaps for Responses API, tools, and original-detail images by @sh1ftred in #680
- chore: ignore mkdocs build output (site/) by @sh1ftred in #731
- docs(teams): add Teams (Remote) section by @sh1ftred in #730
- X routstr model path by @9qeklajc in #720
- add model path metadata by @9qeklajc in #719
- fix: accept multi-keyset Cashu tokens on redemption by @9qeklajc in #732
- fix: cap melt inputs at mint request limit by @9qeklajc in #733
- fix: announce provider as soon as the NSEC is saved by @sh1ftred in #734
- Lightning refund by @9qeklajc in #729
- feat(ehbp): bill Tinfoil cached prompt tokens at the cached rate by @sh1ftred in #736
- feat: add admin endpoint to fetch logs by request id by @9qeklajc in #735
- feat: typed error envelope for lightning invoice endpoints by @9qeklajc in #677
- feat(systemone): add TypeSafe System One decision endpoint by @sh1ftred in #747
- feat: drop provider id from model paths and route them to the cheapest provider by @9qeklajc in #748
- fix(ehbp): raise upstream timeout default to 600s by @sh1ftred in #749
- fix(generic): carry Venice's native cache_input price into input_cache_read by @sh1ftred in #753
- fix(usage): don't fold cache tokens into inclusive prompt_tokens by @sh1ftred in #752
- fix(billing): recognize cached tokens in OpenAI Responses API usage by @sh1ftred in #756
- feat(logs): echo 4xx error reason in Request completed log by @9qeklajc in #757
- feat: ship fresh nodes with default trusted Cashu mints by @sh1ftred in #754
- docs: make clone + docker compose the preferred deployment path by @sh1ftred in #762
- fix: make payouts resilient to mint proof limits by @9qeklajc in #763
- feat: identify generic upstream host in provider field and add masked provider_url by @9qeklajc in #738
- feat: show Lightning payouts in transaction history by @9qeklajc in #758
- fix(upstream): retry a transient 5xx on the same upstream before failing over by @9qeklajc in #765
- fix(models): retry the OpenRouter catalogue fetch before giving up by @9qeklajc in #766
- fix: bound owner payout by per-mint liability instead of total by @9qeklajc in #767
- Handle incomplete upstream streaming responses by @9qeklajc in #769
- fix: report upstream 5xx as 424 UPSTREAM_UNAVAILABLE instead of node-down by @9qeklajc in #771
- feat: venice provider with anthropic web-search translation by @9qeklajc in #770
- perf: reduce request latency by @9qeklajc in #772
- fix(ehbp): classify upstream TLS/connect failures as upstream-scoped by @sh1ftred in #778
- log: record model and provider on the request completion line by @9qeklajc in #777
- fix: bound proxy request body reads by size and time by @9qeklajc in #774
- feat: log request stage timings and never suppress error responses by @9qeklajc in #775
- fix: prevent LiteLLM web_search_options 400 on generic Messages routes by @sh1ftred in #782
- fix: send placeholder key to litellm for keyless upstreams on /v1/messages by @9qeklajc in #781
- fix: stop reporting OpenRouter provider as unknown on stream and envelope payloads by @9qeklajc in #780
- fix: report openrouter:unknown when OpenRouter omits the serving provider by @9qeklajc in #783
- fix: drop blank system text blocks before litellm dispatch by @9qeklajc in #786
- fix: make Claude Code work on Venice with prompt caching and gpt-6 by @9qeklajc in #788
- perf: open admin models page immediately and load catalogs behind a skeleton by @9qeklajc in #789
- fix: rename params upstreams reject with a named replacement by @9qeklajc in #790
- fix(fees): route platform fee payouts to routstr-fees@rizful.com by @sh1ftred in #785
- fix: bound request lifetimes and recover abandoned reservations by @sh1ftred in #791
- feat: upstream first-token timeout, stream idle timeout and provider cooldown by @9qeklajc in #776
- feat(upstream): add native DeepSeek provider, retire V4 pricing shim by @9qeklajc in #793
- fix: shorten litellm errors and normalize buffered stream failures by @9qeklajc in #795
- fix: allow /v1/messages/count_tokens through the proxy allowlist by @sh1ftred in #796
- fix: upgrade dependencies to address Dependabot alerts by @9qeklajc in #794
- fix: treat non-finite token counts as zero instead of raising in billing by @9qeklajc in #797
- chore: remove the disabled API Endpoints testing tab by @9qeklajc in #800
- fix: store numeric-string model prices as floats so overrides serve instead of 500 by @9qeklajc in #799
- feat(certification): comprehensive upstream certification harness with live probes by @9qeklajc in #760
- chore: remove model testing endpoint and UI by @9qeklajc in #802
- docs: describe forwarded_model_id as the client-facing alias by @9qeklajc in #798
- fix: reserve pinned endpoints at the endpoint's own price and limits by @9qeklajc in #801
- fix(ehbp): restore the version prefix on EHBP upstream paths by @sh1ftred in #804
- fix: report an unknown sk- API key as key_not_found, not a format error by @9qeklajc in #779
- fix(refund): give refund refusals machine-readable error codes by @sh1ftred in #805
- feat(upstream): add Perplexity integration attribution by @qirh in #750
- fix: harden provider certification and native pricing by @9qeklajc in #803
- feat: auto-generate the node's Nostr identity on first boot by @sh1ftred in #809
- feat: swap foreign Cashu tokens across mints by @9qeklajc in #806
- fix: stop logging the nsec at startup; add reveal_nsec recovery script by @sh1ftred in #812
- feat: add private node onboarding for operators and agents by @9qeklajc & @sh1ftred in #811
- feat: proxy OpenAI Decisions API at /v1/decisions by @9qeklajc in #787
- revert: reserve at least the prompt plus requested completion when discounts overlap (#808) by @9qeklajc in #814
- fix: preserve generated npub on first boot by @sh1ftred in #818
- docs: drop mandatory /admin reverse-proxy restriction from provider docs by @sh1ftred in #819
- fix(env): stop the .env template from seeding a placeholder upstream provider by @sh1ftred in #821
- fix(nostr): never announce loopback/private/link-local endpoint URLs by @jooray in #823
- docs: fix outdated links and add provider directory by @9qeklajc in #825
- fix: tolerate "metadata": null in upstream responses (non-streaming 500s with Venice) by @jooray in #826
- fix: correct unsupported params reported as upstream 5xx by @9qeklajc in #827
- fix: send Anthropic block-list system as a string to generic upstreams by @9qeklajc in #828
- chore(fees): raise Routstr fee payout threshold to 500 sats by @sh1ftred in #831
- fix: skip model fetching for disabled providers by @9qeklajc in #832
- fix: support optional Anthropic provider workspace IDs by @9qeklajc in #833
- fix: default Anthropic API version like the official SDK by @9qeklajc in #834
- fix: resolve Anthropic model names from native discovery by @9qeklajc in #835
- fix: use native Anthropic effort configuration by @9qeklajc in #836
- test: give the Anthropic effort test model an instruct_type by @ashen0x in #837
- fix: stop returning upstream workspace/org ids to clients by @9qeklajc in #838
- fix: advertise lowercase model IDs in /v1/models to match OpenRouter by @9qeklajc in #840
- fix: collapse duplicate token caps for anthropic chat completions by @9qeklajc in #841
New Contributors
Full Changelog: v0.4.7...v0.5.0