feat(slim-bindings): hierarchical config loading and stable identity - #1867
Open
Tehsmash wants to merge 4 commits into
Open
feat(slim-bindings): hierarchical config loading and stable identity#1867Tehsmash wants to merge 4 commits into
Tehsmash wants to merge 4 commits into
Conversation
Tehsmash
force-pushed
the
feat/hierarchical-slim-config-loading
branch
from
July 17, 2026 15:15
b37ad00 to
97908db
Compare
Member
|
once #1820 is merged I think we can remove the slim-cache file as the keys are already store in the DB. We can add a new filed in slim.yaml that should look like using create_app_with_direction_and_persistence we should be able to recreate the app and all the related session. |
Tehsmash
force-pushed
the
feat/hierarchical-slim-config-loading
branch
2 times, most recently
from
July 24, 2026 15:49
4013f36 to
e01d2f8
Compare
Implements #1802 — hierarchical slim.yaml config discovery with env var overrides and persistent identity (signature key) caching. - Walks up from CWD for slim.yaml; falls back to ~/.slim/config.yaml - Env var overrides: SLIM_NODE_ADDRESS, SLIM_APP_NAME, SLIM_IDENTITY_* - Caches instance UUID and Ed25519 keys in .slim-cache/ next to config - Service.create_app_from_slim_config: one-call API → ready App - Serde added to all public config types (no more Raw* intermediaries) - Name::new_with_id returns Result<Self, SlimError> instead of panicking Ported from agntcy/slim-bindings#21. Signed-off-by: Sam Betts <1769706+Tehsmash@users.noreply.github.com>
Signed-off-by: Sam Betts <1769706+Tehsmash@users.noreply.github.com>
…fline notification Signed-off-by: Sam Betts <1769706+Tehsmash@users.noreply.github.com>
Remove double-conversion round-trips in slim_node_config.rs (ffi_app_to_core/core_app_to_ffi used an intermediate FFI→FFI step before the FFI→Core From impl, which is a no-op). Also remove stray double blank line in service.rs and trailing blank line in the node_config test module. Signed-off-by: Sam Betts <1769706+Tehsmash@users.noreply.github.com>
Tehsmash
force-pushed
the
feat/hierarchical-slim-config-loading
branch
from
July 28, 2026 17:04
e01d2f8 to
c1b3cee
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This PR ports the hierarchical SLIM configuration loading feature from the
slim-bindingsPR #21 into the SLIM monorepo, and then lifts the core logic intoagntcy-slim-serviceso any Rust consumer can use it without the UniFFI layer.Commit 1 —
feat(slim-bindings): hierarchical config loading and stable identityAdds
crates/slim-bindings/src/slim_node_config.rsand extendscrates/slim-bindings/src/service.rswith:SlimConfig/SlimAppConfigUniFFI record typesload_slim_config()— git-styleslim.yamldiscovery + env-var overridesService::create_app_from_slim_config— one-call API: load config → init identity → connect → subscribe → returnSlimAppHandle.slim-cache/for stable agent identity across restartsCommit 2 —
feat(service): add slim-config feature with hierarchical config loadingMoves the config-loading logic into
agntcy-slim-servicebehind a newslim-configCargo feature, so downstream consumers using core crates directly can benefit:crates/service/src/node_config.rsmodule using core types (slim_config::client::ClientConfig,slim_config::auth::identity::*)Service::create_app_from_slim_config(&self, config: SlimNodeConfig) -> Result<AppHandle, ServiceError>(gated onslim-config + session)AppHandlestruct bundling app, notification receiver, name, and conn_id#[serde(default)]added toIdentityProviderConfig::SharedSecret::idso the field is optional in YAMLslim-bindingsrefactored to delegate to the service crate —load_slim_configandcreate_app_from_slim_configare now thin FFI adaptersType of Change
Checklist