Skip to content

chore(deps): update rust crate rand to 0.10#20

Closed
renovate[bot] wants to merge 107 commits intomasterfrom
renovate/rand-0.x
Closed

chore(deps): update rust crate rand to 0.10#20
renovate[bot] wants to merge 107 commits intomasterfrom
renovate/rand-0.x

Conversation

@renovate
Copy link
Copy Markdown

@renovate renovate bot commented Mar 12, 2026

This PR contains the following updates:

Package Type Update Change
rand (source) workspace.dependencies minor 0.90.10

Release Notes

rust-random/rand (rand)

v0.10.0

Compare Source

Changes
  • The dependency on rand_chacha has been replaced with a dependency on chacha20. This changes the implementation behind StdRng, but the output remains the same. There may be some API breakage when using the ChaCha-types directly as these are now the ones in chacha20 instead of rand_chacha (#​1642).
  • Rename fns IndexedRandom::choose_multiple -> sample, choose_multiple_array -> sample_array, choose_multiple_weighted -> sample_weighted, struct SliceChooseIter -> IndexedSamples and fns IteratorRandom::choose_multiple -> sample, choose_multiple_fill -> sample_fill (#​1632)
  • Use Edition 2024 and MSRV 1.85 (#​1653)
  • Let Fill be implemented for element types, not sliceable types (#​1652)
  • Fix OsError::raw_os_error on UEFI targets by returning Option<usize> (#​1665)
  • Replace fn TryRngCore::read_adapter(..) -> RngReadAdapter with simpler struct RngReader (#​1669)
  • Remove fns SeedableRng::from_os_rng, try_from_os_rng (#​1674)
  • Remove Clone support for StdRng, ReseedingRng (#​1677)
  • Use postcard instead of bincode to test the serde feature (#​1693)
  • Avoid excessive allocation in IteratorRandom::sample when amount is much larger than iterator size (#​1695)
  • Rename os_rng -> sys_rng, OsRng -> SysRng, OsError -> SysError (#​1697)
  • Rename Rng -> RngExt as upstream rand_core has renamed RngCore -> Rng (#​1717)
Additions
  • Add fns IndexedRandom::choose_iter, choose_weighted_iter (#​1632)
  • Pub export Xoshiro128PlusPlus, Xoshiro256PlusPlus prngs (#​1649)
  • Pub export ChaCha8Rng, ChaCha12Rng, ChaCha20Rng behind chacha feature (#​1659)
  • Fn rand::make_rng() -> R where R: SeedableRng (#​1734)
Removals

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

…imiting

Add typed Rust HTTP client for Synapse's API surface (LLM, MCP, STT, TTS).
Mount STT and TTS endpoint routers in the server. Replace Redis-based
rate limit storage with in-memory cache storage.
Implement Phase 5 of Synapse integration plan:

- Smart model routing with heuristic query analysis via tiktoken
- Three routing strategies: threshold, cost-constrained, cascade
- Circuit breaker health tracking with automatic recovery probing
- Model registry with cost/quality profiles and runtime latency
- Failover with equivalence groups and configurable retry attempts
- Virtual model names (auto, fast, best, cheap) for routing shortcuts
- Feedback tracker for live per-model latency and error rate metrics

New crate: synapse-routing (analysis, registry, strategies, feedback)

Modified: synapse-llm (health tracker, router integration, error types),
synapse-config (failover and routing config schemas),
integration-tests (failover scenarios and mock failure harness)
Introduce weighted score strategy that combines quality, cost, and latency
into a single objective. Extract shared feedback-adjusted scoring into a
dedicated module and simplify config defaults with derive macros.
Add `embedded` feature flag with optional synapse-llm, synapse-config,
and synapse-core dependencies. Restructure SynapseClient to dispatch on
a Backend enum (Remote vs Embedded), extract helper methods to free
functions, and add cfg-gated Llm error variant. Remote behavior is
unchanged; embedded arms return placeholder errors for now.
…bedded mode

Set default-features = false on synapse-llm in workspace root so
synapse-client embedded mode doesn't pull in axum. Synapse-server
explicitly enables the http feature.
…ed mode

Debug formatting produced "toolcalls" instead of "tool_calls" for
FinishReason::ToolCalls. Use serde serialization which respects the
rename_all = "snake_case" attribute.

Also: use state.list_models() in handler, remove redundant stream
assignment in client.
…action, and strategy registry

Enhance the routing engine with richer query analysis (vision, long-context,
multi-turn detection), capability-based model filtering, a pluggable Strategy
trait with StrategyRegistry for custom strategies, and regex-based task
classification. Wire the new structured analysis pipeline through synapse-llm.
…ts and usage metering

Introduce synapse-billing crate with Aether API client, async usage
recorder, and entitlement/usage caching. Wire billing identity
resolution, entitlement gating, and token metering into the server
middleware stack. Support BYOK, managed, and hybrid API key modes.
…, and provider trait

Add OpenAI-compatible embeddings routing crate with EmbeddingRequest
(supporting single/array input via EmbedInput), EmbeddingResponse,
EmbeddingsError with IntoResponse, and EmbeddingsProvider async trait.
Implement OpenAiEmbeddingsProvider that POSTs to the OpenAI embeddings
API, strips the "provider/" model prefix, and maps errors to the
EmbeddingsError variants. Follows the STT whisper provider pattern.
Implement OpenAiEmbeddingsProvider that POSTs to the OpenAI embeddings
API, strips the "provider/" model prefix, and maps errors to the
EmbeddingsError variants. Follows the STT whisper provider pattern.
…erver

Add EmbeddingsConfig to synapse-config, build EmbeddingsServerBuilder
with provider dispatch, and mount POST /v1/embeddings endpoint in the
main server.
OpenAI-compatible POST /v1/images/generations endpoint with provider
dispatch, config, error handling, and server mount
coopbri and others added 24 commits March 3, 2026 14:02
Resolve BYOK provider keys from Gatekeeper's vault as an overlay on
synapse-api keys, with moka-backed caching and event-driven invalidation
via Vortex webhook events.
Previously the auth middleware passed through requests with no
Authorization header or non-synapse tokens, allowing unauthenticated
access to upstream providers. Now returns 401 for missing or
invalid-format tokens on non-public paths.
Bump changesets deps to latest, bump changesets/action to v1.7.0, fix
repo name in changeset config, add missing config fields, add
workflow_dispatch and version_commit detection, add changelog extraction
in publish job, add timeouts, add .changeset/README.md, add node_modules
to gitignore, and track bun.lock.
CORS origin updated from dashboard.synapse.omni.dev to synapse.omni.dev.
Upstream 429 responses now return RateLimited instead of Upstream error,
triggering equivalence group failover to alternative providers.
OPTIONS requests now bypass auth middleware so the CORS layer can
handle preflight. Upstream 401/403 errors map to LlmError::Unauthorized
(non-retryable) instead of LlmError::Upstream, returning a clear 401 to
the client rather than a misleading 502 after failed failover.
Add Manual variant to KeyMode for UI-created API keys (treated as
managed billing). Change token limit fields from u64 to i64 so the
-1 unlimited sentinel from synapse-api can be deserialized.
Bump toolchain from 1.90.0 to 1.93.0 for AWS SDK compat.
Remove invalid [dev-dependencies] from workspace manifest.
Update all Cargo dependencies via cargo update.
Clippy 1.93 flags manual Default impls that can be derived. Replace
manual impls with #[derive(Default)] + #[default] on Action and
AnyOrArray enums.
Collapse multi-line `if` conditions onto single lines per updated
rustfmt style rules. Fixes CI `cargo fmt --check` failure.
Use OTEL_EXPORTER_OTLP_ENDPOINT (standard name) instead of
OTEL_ENDPOINT to match the Railway environment variable.
Railway's private network uses IPv6 DNS for `.railway.internal`
domains. The default system resolver in the Wolfi container image
cannot resolve these, causing gateway-to-API communication to fail.
Adding the `hickory-dns` feature to reqwest enables async DNS
resolution with proper IPv6 support.
Railway's private network is IPv6-only. Binding to `0.0.0.0` (IPv4)
prevented the gateway from participating in the IPv6 overlay network,
blocking outbound connections to internal services. Switching to `[::]`
enables dual-stack listening (IPv4 + IPv6).
Bump moka cache crate and JS tooling lockfile.
@renovate
Copy link
Copy Markdown
Author

renovate bot commented Mar 12, 2026

⚠️ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path Cargo.toml --package rand@0.9.2 --precise 0.10.0
    Updating crates.io index
error: failed to select a version for the requirement `rand = "^0.9.0"`
candidate versions found which didn't match: 0.10.0
location searched: crates.io index
required by package `governor v0.10.4`
    ... which satisfies dependency `governor = "^0.10"` (locked to 0.10.4) of package `synapse-ratelimit v0.1.0 (/tmp/renovate/repos/github/omnidotdev/synapse-gateway/crates/synapse-ratelimit)`
    ... which satisfies path dependency `synapse-ratelimit` (locked to 0.1.0) of package `synapse-llm v0.1.0 (/tmp/renovate/repos/github/omnidotdev/synapse-gateway/crates/synapse-llm)`
    ... which satisfies path dependency `synapse-llm` (locked to 0.1.0) of package `synapse-client v0.1.0 (/tmp/renovate/repos/github/omnidotdev/synapse-gateway/crates/synapse-client)`
    ... which satisfies path dependency `synapse-client` (locked to 0.1.0) of package `integration-tests v0.1.0 (/tmp/renovate/repos/github/omnidotdev/synapse-gateway/crates/integration-tests)`

@changeset-bot
Copy link
Copy Markdown

changeset-bot bot commented Mar 12, 2026

⚠️ No Changeset found

Latest commit: 1171935

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@renovate
Copy link
Copy Markdown
Author

renovate bot commented Mar 13, 2026

Renovate Ignore Notification

Because you closed this PR without merging, Renovate will ignore this update (0.10). You will get a PR once a newer version is released. To ignore this dependency forever, add it to the ignoreDeps array of your Renovate config.

If you accidentally closed this PR, or if you changed your mind: rename this PR to get a fresh replacement PR.

@renovate renovate bot deleted the renovate/rand-0.x branch March 13, 2026 00:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant