You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add typed errors, shared SSM workflow, and credential safety fixes
Error handling and reliability:
- Replace Box<dyn Error> with CloudShellError and CloudResult<T> in the
library and CLI
- Add a 30s HTTP timeout to the shared reqwest client
- Retry only read-only calls (DescribeEnvironments, GetEnvironmentStatus)
on connect/timeout errors and 429/5xx, up to 3 attempts
- VpcConfig::new no longer panics; validate() rejects blank IDs
Shared SSM and workflow code:
- Move connect, plugin check, and credential loading into src/ssm.rs
- Move get_or_create_env and wait_for_running into src/workflow.rs
- Remove the duplicated copies from main.rs and both examples
- Add a Progress trait; the library no longer prints. The CLI and
examples pass StdoutProgress, and SilentProgress is available
Credential injection (connect --inject-credentials):
- Write credentials to a mode-600 file in /dev/shm, source it, delete it
- Use a trap to unset variables on exit instead of readonly
- Wait for a ready marker instead of fixed sleeps
- Remove the HISTFILE/HISTCONTROL settings, which gave no real protection
- Always delete the session and restore terminal mode on error (RawModeGuard)
Build and docs:
- Remove unused http dependency; keep aws-smithy-runtime, which provides
the HTTPS client required at runtime
- Set rust-version to 1.99.0 and update README to match the current API
- Update examples to use the shared helpers