Skip to content

Conversation

@ahmedhesham6
Copy link
Collaborator

No description provided.

fixed a bug where if the content is empty it returns an emtpy HashMap
Converted SecretManager to an actor-based architecture for improved
thread-safety with benchmarks
- replace String with bytes to avoid clones
- use `choose()` to simplify getting random bytes
Remove content parameter from `redact_password()`. Unlike `redact_secrets()` which scans content, this function now only redacts CSPRNG-generated passwords.
Add `MAX_RETRIES` const to control password generation retry attempts when conflicts are detected
Add validation in `Password::new()` to reject passwords shorter
than 8 characters with `TooShort` error.
password conflicts are extremely rare so no need for all that verbosity
logging
The `Password` type ensures that passwords cannot be empty, making explicit empty checks unnecessary
Update `redact_password()` to accept the new `Password` type instead of String
The caller `redact_and_store_secrets_impl` uses `extend()` to merge results, so returning the full cloned map caused redundancy as we already have the old mappings.
@ahmedhesham6 ahmedhesham6 self-assigned this Jan 4, 2026
@ahmedhesham6 ahmedhesham6 marked this pull request as draft January 4, 2026 01:04
ahmedhesham6 and others added 11 commits January 5, 2026 11:56
…tegration-example

Feature/add rust mcp client integration example
feat: add actor model to `SecretManager` for redaction map thread safety
This commit removes redundant secret handling logic from
`local_tools.rs`. The `SecretManager` is now responsible for handling
secrets at a higher level, eliminating the need for these duplicate
calls within the local tools.
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.

3 participants