Skip to content

chore(deps): update rust crate agent-core to 0.6.0#13

Closed
renovate[bot] wants to merge 101 commits intomasterfrom
renovate/agent-core-0.x
Closed

chore(deps): update rust crate agent-core to 0.6.0#13
renovate[bot] wants to merge 101 commits intomasterfrom
renovate/agent-core-0.x

Conversation

@renovate
Copy link
Copy Markdown

@renovate renovate bot commented Mar 10, 2026

This PR contains the following updates:

Package Type Update Change
agent-core workspace.dependencies minor 0.1.00.6.0

Release Notes

deepmesa/agent-core (agent-core)

v0.6.0

Compare Source

Added
Event Sink Abstraction (Pluggable Frontends)
  • New interface module for custom frontend integration
  • EventSink trait for receiving events from the engine
    • ChannelEventSink: Channel-backed sink with backpressure support
    • SimpleEventSink: Minimal stdout sink for CLI tools
  • InputSource trait for providing input to the engine
    • ChannelInputSource: Channel-backed input with helper channel() method
  • PermissionPolicy trait for automatic permission handling
    • AutoApprovePolicy: Auto-approve all requests (headless/trusted environments)
    • DenyAllPolicy: Deny all requests (sandboxed environments)
    • InteractivePolicy: Forward all requests to user (default for TUI)
    • PolicyDecision enum with Allow, AllowWithGrant, Deny, AskUser variants
    • supports_interaction() method for handling user questions in headless mode
AgentAir Frontend Methods
  • run_with_frontend(): Run agent with custom sink, source, and policy
  • Inline policy handling for PermissionRequired and BatchPermissionRequired events
  • Auto-cancel user interactions when policy doesn't support interaction
Simplified Agent Setup
  • SimpleConfig struct for quick agent configuration
  • AgentAir::with_config(name, path, prompt): One-line agent creation
Changed
  • Re-export interface types at agent module level for convenience

v0.5.0

Compare Source

Added
Agent Skills Support
  • New skills module implementing the Agent Skills open format
  • SkillDiscovery for scanning directories for SKILL.md files
  • SkillRegistry thread-safe registry with XML generation for system prompts
  • YAML frontmatter parser with name/description validation
  • Default search paths: $PWD/.skills/ (project) and ~/.agent-air/skills/ (user)
AgentAir Skill Methods
  • load_skills(): Discover and register skills from configured paths
  • load_skills_from(): One-shot loading from custom paths
  • reload_skills(): Hot reload with added/removed tracking
  • refresh_session_skills(): Update session system prompts with current skills
  • add_skill_path(): Add custom skill search directories
  • skill_registry(): Access the skill registry directly
  • Automatic skills XML injection on session creation
ListSkillsTool
  • New tool allowing LLM to discover available skills at runtime
  • Returns name, description, and SKILL.md path for each skill
  • register_list_skills_tool() method on AgentAir
Changed
  • AgentError now includes SessionNotFound variant for skill refresh errors

v0.4.0

Compare Source

Changed
  • Split agent-air into workspace with three crates:
    • agent-air-runtime: Core engine (controller, client, permissions, tools)
    • agent-air-tui: TUI frontend (ratatui, widgets, themes, commands)
    • agent-air: Meta-crate re-exporting both (backwards compatible)
  • TUI methods moved from AgentAir to TuiRunner
  • New AgentAirExt trait provides into_tui() conversion
  • Headless agents can now depend on agent-air-runtime only

v0.3.0

Compare Source

Added
LLM Provider Support
  • Google Gemini provider with streaming, tool calling, safety ratings, and grounding/citation metadata
  • OpenAI streaming support with SSE parser
  • OpenAI-compatible provider support for 13+ providers (Groq, Together, Fireworks, Mistral, Perplexity, DeepSeek, OpenRouter, Ollama, LM Studio, Anyscale, Cerebras, SambaNova, xAI)
  • Provider registry with base_url support, context limits, default models, and env var configuration
  • Amazon Bedrock provider with Converse API, AWS SigV4 signing, streaming, and session token support
  • Cohere provider with Chat API v2, streaming, and tool calling
  • Azure OpenAI support with resource/deployment configuration and API versioning
  • AI21 Labs to known providers registry
Tools
  • GrepTool using ripgrep libraries with three output modes (files_with_matches, content, count), context lines, file type and glob filtering
  • GlobTool for fast file pattern matching with globset, sorted by modification time, hidden file filtering
  • BashTool for shell command execution with timeout, working directory persistence, background execution, output limiting, and dangerous command detection
  • EditFileTool for find-and-replace with exact matching, replace_all, and multi-stage fuzzy matching (whitespace-insensitive, Levenshtein-based)
  • MultiEditTool for atomic multiple find-and-replace with overlap detection, reverse-order application, dry-run mode
  • LsTool for directory listing with filtering, sorting, and long format options
  • FileRead and DirectoryRead permission categories for fine-grained file operation control
  • CategorySession scope allowing users to grant permission for all operations in a category
Environment & Configuration
  • EnvironmentContext for injecting working directory, platform, OS version, and date into system prompts
  • AgentAir::load_environment_context() for one-line enablement
  • LLMRegistry::with_environment_context() to inject context into all sessions
  • AgentConfig::channel_buffer_size() for customizing buffer sizes
Changed
  • Streaming enabled by default for all providers (Anthropic, OpenAI, Google)
  • Default channel buffer size increased from 100 to 500
  • Controller now uses backpressure (blocks on full UI channel instead of dropping events)
  • Fuzzy match output now shows average similarity percentage
  • Permission panel UI updated with "Grant All in Category" option and new permission category icons
Fixed
  • Gemini tool calling: use function name as tool_use_id (Gemini matches by name, not unique ID)
  • OpenAI streaming: add stream_options.include_usage to ensure token counts are reported for compaction logic
  • Streaming cache clearing made consistent in ChatView::append_streaming()
Removed
  • Duplicate registries from LLMController (were never used)
  • Dead select branches for user interaction/permission events in controller
  • Duplicate escape_json_string from openai/types.rs (uses common::escape_json_string)

v0.2.0

Compare Source

Added
  • Trait-based slash command system with CommandRegistry
  • ConversationView trait and NavigationHelper for widgets
  • Builder patterns and custom action support for key handling
  • Optional callback for dynamic processing messages
  • Design note for controller event loop mutex pattern
Changed
  • Converted status bar to first-class widget
  • Simplified theme system with declarative macros
  • Wrapped conversation in Arc for O(1) cloning
  • Changed Widget::render to take &mut self
  • Replaced Result<T, String> with proper error types
  • Consolidated duplicate channel size constants
  • Refactored widgets to use parameters
  • Split layout module into separate files
  • Improved question panel UX and added from_controller_tx getter
Documentation
  • Updated README and added Rust docs

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 February 28, 2026 01:53
Add STT/TTS/embeddings/image-gen feature keys to BillingConfig with
route-to-feature mapping. Extend entitlement middleware from 2 checks to
5: api_access, modality gating, requests meter, input tokens meter, and
output tokens meter. Broaden webhook cache invalidation to cover all
entitlement and usage keys.
- Switch rate limiting from memory-only to Valkey-backed distributed storage
- Add Google (Gemini 2.5 Pro/Flash) and AWS Bedrock providers to prod config
  with routing models, failover groups, and billing
- Add synapse-cache crate: Valkey-backed exact-match response cache keyed by
  SHA-256 of canonical request, only for deterministic (temp=0) non-streaming
- Add synapse-guardrails crate: configurable rule engine with keyword blocklists,
  regex patterns, max input tokens, and PII detection (SSN, credit card, email,
  phone) with block/warn actions
- Wire cache into LlmState behind feature flag, guardrails as axum middleware
Strips Gemini and AWS Bedrock from launch lineup to reduce surface
area. Launch with OpenAI, Anthropic, and Nvidia (8 models). Google
and Bedrock can be re-added post-launch if users request them.
Allow resolving keys of any category (ai, voice, etc) by provider name
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.
@renovate
Copy link
Copy Markdown
Author

renovate bot commented Mar 10, 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 agent-core@0.1.0 --precise 0.6.0
    Updating crates.io index
error: failed to select a version for the requirement `agent-core-runtime = "^0.6.0"`
  version 0.6.0 is yanked
location searched: crates.io index
required by package `agent-core v0.6.0`
    ... which satisfies dependency `agent-core = "^0.6.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 10, 2026

⚠️ No Changeset found

Latest commit: 42eb61c

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.6.0). 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/agent-core-0.x branch March 13, 2026 00:12
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