Releases: shellhub-io/shellhub
v0.20.1
What's Changed
- ui: bump @types/node from 18.19.121 to 18.19.122 in /ui by @dependabot[bot] in #5134
- ui: bump sass from 1.89.2 to 1.90.0 in /ui by @dependabot[bot] in #5135
- ui: bump yup from 1.6.1 to 1.7.0 in /ui by @dependabot[bot] in #5137
- api: bump golang.org/x/crypto from 0.40.0 to 0.41.0 in /api by @dependabot[bot] in #5138
- ssh: bump golang.org/x/crypto from 0.40.0 to 0.41.0 in /ssh by @dependabot[bot] in #5140
- chore(deps): bump actions/download-artifact from 4 to 5 by @dependabot[bot] in #5142
- ui: bump typescript from 5.8.3 to 5.9.2 in /ui by @dependabot[bot] in #5139
- fix(ui): mock
onBeforeRouteLeave
in tests by @luizhf42 in #5131 - ssh: bump golang.org/x/net from 0.42.0 to 0.43.0 in /ssh by @dependabot[bot] in #5141
- ui: bump vuetify from 3.9.2 to 3.9.4 in /ui by @dependabot[bot] in #5136
- fix(snap): rename references to shellhub-agent snap package to shellhub by @henrybarreto in #5143
- feat(snap): add --classic flag and use latest/stable channel for ShellHub snap by @henrybarreto in #5144
- feat(snap): get snap settings from envs while installing by @henrybarreto in #5145
- feat(snap): get preferred hostname from env while installing by @henrybarreto in #5148
- fix(api,pkg): update device version when authenticating by @henrybarreto in #5147
- chore(deps): bump github.com/docker/docker from 27.1.1+incompatible to 28.0.0+incompatible by @dependabot[bot] in #5150
- fix(ui): fix MFA settings by @luizhf42 in #5152
- fix(ui): ensure Chatwoot is properly reset on logout by @luannmoreira in #5153
- chore(api): remove useless MFA store by @heiytor in #5149
- api: bump github.com/getsentry/sentry-go from 0.35.0 to 0.35.1 in /api by @dependabot[bot] in #5154
- docker: ui: bump nginx from 1.29.0-alpine to 1.29.1-alpine in /ui by @dependabot[bot] in #5156
- chore(deps): bump actions/checkout from 4 to 5 by @dependabot[bot] in #5155
- feat(api)!: remove unused device methods by @heiytor in #5157
- refactor(api): replace APIKeyGet methods with unified APIKeyResolve by @heiytor in #5158
- feat(api): add namespace conflicts detection system by @heiytor in #5159
- refactor(api): remove unused opts parameter from NamespaceGetPreferred by @heiytor in #5161
- refactor(api)!: replace session record methods with generic operations by @heiytor in #5163
- Refactor/api/rename device edit by @heiytor in #5160
- feat(agent): deal with 429 and 503 HTTP status and Retry-After header by @henrybarreto in #5146
- Refactor/api/simplify device update by @heiytor in #5162
- feat(gateway): add rate limit to api routes by @henrybarreto in #5165
- fix(agent): normalize container's name into shellhub's device name by @henrybarreto in #5164
- feat(agent): add function to create connector with custom docker client by @henrybarreto in #5166
- feat(pkg): add MaxDevices and Billing fields to NamespaceChanges by @heiytor in #5167
- fix(env): increase default rate limit burst value by @henrybarreto in #5168
- agent: bump golang.org/x/crypto from 0.31.0 to 0.35.0 in /agent by @dependabot[bot] in #4733
- chore(deps): bump golang.org/x/crypto from 0.31.0 to 0.35.0 by @dependabot[bot] in #4736
- agent: bump golang.org/x/net from 0.33.0 to 0.38.0 in /agent by @dependabot[bot] in #4742
- chore(deps): bump golang.org/x/net from 0.33.0 to 0.38.0 in /gateway by @dependabot[bot] in #4744
- chore(ui): update OpenAPI specification by @luizhf42 in #5170
- chore(deps): bump golang.org/x/net from 0.33.0 to 0.38.0 by @dependabot[bot] in #5173
- chore(deps): bump github.com/go-viper/mapstructure/v2 from 2.3.0 to 2.4.0 in /tests by @dependabot[bot] in #5174
- ui: bump cipher-base from 1.0.4 to 1.0.6 in /ui by @dependabot[bot] in #5177
- chore(ssh): update golang-jwt to v5 by @henrybarreto in #5175
- ui: bump sha.js from 2.4.11 to 2.4.12 in /ui by @dependabot[bot] in #5176
- chore: bump shellhub version to v0.20.1-rc.1 by @gustavosbarreto in #5172
- chore: bump shellhub version to v0.20.1 by @gustavosbarreto in #5187
Full Changelog: v0.20.0...v0.20.1
v0.20.0
We're excited to share ShellHub v0.20.0, featuring the new Web Endpoints system and enhanced SAML configuration.
✨ New Features
🌐 Web Endpoints
We've introduced Web Endpoints as a replacement for the legacy tunnel system. This new approach provides:
- Web-accessible endpoints for your devices
- Cleaner management interface
- Available in preview mode on ShellHub Cloud
- Full availability in ShellHub Enterprise
🔐 SAML Improvements (Enterprise)
Enhanced SAML configuration for Enterprise customers includes:
- Support for multiple URL types (POST and Redirect URLs)
- Improved X.509 certificate validation
- Better error messaging and automatic certificate formatting
🚀 Improvements
💻 Web Terminal
- Faster WebSocket connections with better performance
- Terminal handling now complies with RFC 4254
- More responsive interface across devices
🎯 User Experience
- Streamlined device management
- Better navigation and reusable components
- More consistent interface elements
⚡ Performance & Reliability
- Optimized device lookup (only shows accepted devices)
- Consolidated device management system
- Added Cloudflare DNS provider support
- Enhanced SSH error handling
- Improved certificate validation
🐛 Bug Fixes
Interface
- Fixed namespace editing when changing device limits
- Corrected copy icon behavior in command fields
- Centered Snackbar notifications
- Fixed placeholder display in select components
SSH & Terminal
- Prevented crashes when agent output is empty
- Fixed function naming issue in SSH key handling
- Applied correct 4096 character limit for terminal input
- Updated device lookup parameters
Backend
- Prevented non-accepted devices from being added to removal lists
- Simplified device status update process
- Changed agent updater to remove containers instead of stopping them
v0.19.2
What's Changed
- fix(ui): update SessionPlay props in DetailsSessions by @luizhf42 in #4895
- ui: bump @types/node from 18.19.110 to 18.19.111 in /ui by @dependabot in #4900
- ui: bump vee-validate from 4.15.0 to 4.15.1 in /ui by @dependabot in #4899
- ui: bump terser from 5.39.2 to 5.41.0 in /ui by @dependabot in #4898
- ui: bump @tinymce/tinymce-vue from 6.1.0 to 6.2.0 in /ui by @dependabot in #4897
- ui: bump pinia from 3.0.2 to 3.0.3 in /ui by @dependabot in #4896
- api: bump golang.org/x/sync from 0.14.0 to 0.15.0 in /api by @dependabot in #4905
- ssh: bump golang.org/x/crypto from 0.38.0 to 0.39.0 in /ssh by @dependabot in #4904
- api: bump go.mongodb.org/mongo-driver from 1.17.3 to 1.17.4 in /api by @dependabot in #4903
- api: bump golang.org/x/crypto from 0.38.0 to 0.39.0 in /api by @dependabot in #4902
- refactor(api): device get methods by @heiytor in #4893
- fix(ui): change namespace add panel using env flag by @luannmoreira in #4867
- ssh: bump golang.org/x/net from 0.40.0 to 0.41.0 in /ssh by @dependabot in #4901
- refactor(ssh): use structure to represent seats instead of a counter by @henrybarreto in #4887
- refactor(ui): refactor admin's NamespaceExport by @luizhf42 in #4908
- fix(api,ssh): remove direct-tcpip ssh event by @henrybarreto in #4910
- ui: bump sass from 1.89.1 to 1.89.2 in /ui by @dependabot in #4919
- ui: bump terser from 5.41.0 to 5.42.0 in /ui by @dependabot in #4918
- ui: bump vuetify from 3.8.7 to 3.8.9 in /ui by @dependabot in #4917
- ui: bump axios from 1.9.0 to 1.10.0 in /ui by @dependabot in #4916
- refactor(ui): refactor and rename
BoxMessage.vue
by @luizhf42 in #4912 - feat: use user's private key on signature for web session by @henrybarreto in #4891
- refactor(ui): remove
console.error
calls by @luizhf42 in #4914 - feat(ui): support SSH private key auth in terminal session by @luannmoreira in #4913
- chore(deps): bump stefanzweifel/git-auto-commit-action from 5 to 6 by @dependabot in #4920
- refactor(ui): replace direct clipboard copy with CopyWarning component by @luannmoreira in #4906
- feat(api): introduce device cache counter by @heiytor in #4921
- refactor(ui): refactor
DataTable
component by @luizhf42 in #4890 - fix(ui): fix admin's user list by @luizhf42 in #4915
- fix(ssh): override host header on http tunnel request by @henrybarreto in #4922
- fix(ui): fix admin's namespaces' device count by @luizhf42 in #4923
- fix(ui): correct SSH challenge signing with base64 input by @luannmoreira in #4927
- fix(agent): avoid panic when user isn't found by @henrybarreto in #4930
- feat(ssh): simplify web terminal flow by control messages as JSON requests by @henrybarreto in #4928
- refactor(ui): terminal blob websocket handling by @luannmoreira in #4931
- refactor(api): simplify device authentication flow by @heiytor in #4924
- fix(ui): fix device/container sorting in DeviceTable by @luizhf42 in #4926
- refactor(ui): use new DataTable in admin by @luizhf42 in #4929
- ui: bump terser from 5.42.0 to 5.43.1 in /ui by @dependabot in #4937
- ui: bump @types/node from 18.19.111 to 18.19.112 in /ui by @dependabot in #4938
- ui: bump vuetify from 3.8.9 to 3.8.10 in /ui by @dependabot in #4939
- ui: bump @vue/runtime-dom from 3.5.16 to 3.5.17 in /ui by @dependabot in #4940
- fix(api): remove omitempty tag in models.Device#Tags by @heiytor in #4941
- fix(api): remove redundant CreateCollection method by @heiytor in #4943
- feat(ui): add loading state to Play Session button by @luizhf42 in #4942
- ui: bump pbkdf2 from 3.1.2 to 3.1.3 in /ui by @dependabot in #4944
- fix(ui): fix quick connection card min-height by @luizhf42 in #4935
- fix(api): remove namespace from cache when device count is increased by @henrybarreto in #4933
- chore: bump shellhub version to v0.19.2-rc.1 by @gustavosbarreto in #4945
- refactor: replace specific user getter methods with unified UserResolve by @heiytor in #4946
- api: bump github.com/getsentry/sentry-go from 0.33.0 to 0.34.0 in /api by @dependabot in #4949
- docker: ui: bump nginx from 1.27.4-alpine to 1.29.0-alpine in /ui by @dependabot in #4954
- ui: bump @rushstack/eslint-patch from 1.11.0 to 1.12.0 in /ui by @dependabot in #4953
- ui: bump dotenv from 16.5.0 to 16.6.1 in /ui by @dependabot in #4952
- ui: bump vuetify from 3.8.10 to 3.8.11 in /ui by @dependabot in #4951
- ui: bump @types/node from 18.19.112 to 18.19.113 in /ui by @dependabot in #4950
- chore(deps): bump github.com/go-viper/mapstructure/v2 from 2.0.0 to 2.3.0 in /tests by @dependabot in #4947
- chore(api): small fixes and refactors on session's store. by @henrybarreto in #4932
- fix(ssh): avoid potencial concurrency problems when creating and updating seats by @henrybarreto in #4955
- fix(api): count the right collection for sessions events by @henrybarreto in #4957
- fix(api): evaluate cloud namespace limits before enterprise' one by @henrybarreto in #4958
- chore: bump shellhub version to v0.19.2-rc.2 by @gustavosbarreto in #4959
- tests(api): readd removed test to migration 99 by @henrybarreto in #4956
- fix(api): removed device counter by @heiytor in #4961
- chore: bump shellhub version to v0.19.2 by @gustavosbarreto in #4962
- feat(api): check for cloud and billing to perform billing device limits by @henrybarreto in #4963
Full Changelog: v0.19.1...v0.19.2
v0.19.1
What's Changed
- fix(ui): fix field name in TunnelCreate by @luizhf42 in #4865
- refactor(ui): refactor UserExport in admin by @luizhf42 in #4864
- docker: gateway: bump alpine from 3.21.3 to 3.22.0 in /gateway by @dependabot in #4877
- docker: cli: bump alpine from 3.21.3 to 3.22.0 in /cli by @dependabot in #4876
- docker: api: bump alpine from 3.21.3 to 3.22.0 in /api by @dependabot in #4875
- docker: ssh: bump alpine from 3.21.3 to 3.22.0 in /ssh by @dependabot in #4874
- ui: bump vuetify from 3.8.6 to 3.8.7 in /ui by @dependabot in #4873
- ui: bump @vue/runtime-dom from 3.5.14 to 3.5.16 in /ui by @dependabot in #4872
- ui: bump sass from 1.89.0 to 1.89.1 in /ui by @dependabot in #4871
- ui: bump @types/node from 18.19.103 to 18.19.110 in /ui by @dependabot in #4870
- ui: bump asciinema-player from 3.9.0 to 3.10.0 in /ui by @dependabot in #4869
- fix(ui): prevent tooltip click from triggering parent handlers by @luannmoreira in #4868
- feat(api): add flexible device resolution with query parameter by @heiytor in #4858
- fix(ssh): sync agent exiting code with data pipe by @henrybarreto in #4880
- fix(ssh): don't retry to save the session when http not acceptable is returned by @henrybarreto in #4879
- chore: bump shellhub version to v0.19.1-rc.1 by @gustavosbarreto in #4881
- fix(ui): fix player's time handlers by @luizhf42 in #4883
- chore: bump shellhub version to v0.19.1-rc.2 by @gustavosbarreto in #4884
- refactor(api): add
DeviceResolve
method to dynamically resolve devices by @heiytor in #4886 - fix(ui): fix player playback time for sessions longer than 24h by @luizhf42 in #4885
- feat(ui): create new device details URL with new API
resolver
route by @luizhf42 in #4878 - refactor(ui): change Connector Add to Container Modal in empty Containers view by @luannmoreira in #4889
- feat(ui): add tooltip to SessionPlay for not recorded sessions by @luizhf42 in #4888
- fix(ui): add await to
getConnectors
call by @luizhf42 in #4892 - chore: bump shellhub version to v0.19.1 by @gustavosbarreto in #4894
Full Changelog: v0.19.0...v0.19.1
v0.19.0
🚀 ShellHub v0.19.0 is here!
ShellHub v0.19.0 delivers important improvements across our open-source and managed offerings. This release focuses on refining the user experience, expanding compatibility, and improving reliability across all environments.
✨ Highlights
💅 Improved User Experience
We’ve made significant enhancements to the UI, making it easier to navigate, maintain, and extend:
- Migration to
<script setup>
syntax in the Vue UI - Refactored layout handling and session list
- Improved Snackbar system and notification center
- Simplified logic and cleaner state separation
These improvements pave the way for faster feature development and a smoother experience.
🐳 Podman Support
ShellHub now detects and works with Podman as an alternative to Docker. 🐧
A great step toward supporting a broader range of container runtimes.
📼 Session Recording (Cloud/Enterprise)
☁️ Cloud/Enterprise only: Session recording now uses the Asciinema format, a well-established and community-driven standard for terminal session playback. This transition not only improves compatibility with a wide range of tools but also introduces a cleaner, more efficient experience through the use of the official Asciinema player, now embedded directly into ShellHub.
Along with this, we moved from MongoDB-based storage to S3-compatible object storage systems such as MinIO or other cloud-native solutions. This shift brings several key advantages:
- Performance: Offloads large recording data from the database to optimized storage
- Scalability: Better supports growing session data with horizontal scale
- Flexibility: Enables plug-and-play storage backends depending on the environment
- Interoperability: Recordings can be reused or analyzed outside ShellHub with standard tools
Support for long-running sessions is now more reliable thanks to a configurable timeout mechanism.
🧑💼 Invite Members with One Click (Cloud/Enterprise)
☁️ Cloud/Enterprise only: You can now generate invite links to onboard new members to your namespace. Just share the link, and they’re ready to go. ✨
Great for teams growing fast or onboarding collaborators in managed environments.
🌐 HTTP Tunnel Enhancements (Cloud/Enterprise)
Bidirectional communication is now fully supported over HTTP tunnels, improving compatibility with a wider range of client setups and enabling more interactive use cases.
🛡️ Better Authentication, SSO, and Namespace Management (Cloud/Enterprise)
☁️ Cloud/Enterprise only: We've made several improvements to authentication, SSO workflows, and namespace management in managed environments:
- SAML users receive more consistent usernames, reducing identity mismatches
- SSO logins now support fallback behaviors and improved parsing of identity attributes
- Invite links now set member status to "pending" by default for better access control
These changes improve reliability, traceability, and access control across the platform.
💡 Architecture & Infrastructure
- ☁️ Cloud/Enterprise: Migrated from macroservices to monolith architecture for better stability and deployment simplicity
- ☁️ Cloud/Enterprise: Removed legacy dashboard and consolidated management into the Admin UI
- Full dependency refresh across components (Alpine, Node, Vuetify, Cobra, etc.)
👩🎓 Community & Team Contributions
We’d like to highlight these contributors:
- 💜 @luizhf42, a new core team member leading many UI enhancements and structural refactors
- 🙌 @No9, a community contributor who added Podman support — a great step toward runtime diversity
Thanks for pushing ShellHub forward! 🌟
📚 Full Changelog
Explore all commits and merged pull requests:
🔗 Compare v0.18.3...v0.19.0
v0.18.3
What's Changed
- fix(ui): improve conditional chatwoot usage by @luannmoreira in #4575
- feat(ui): redesign terminal login form by @Ossanes in #4563
- fix(gateway): use tunnels domain to load SSL certificates by @henrybarreto in #4579
- fix(ui): show tunnels domain when defined by @henrybarreto in #4580
- chore: bump shellhub version to v0.18.3 by @gustavosbarreto in #4581
Full Changelog: v0.18.2...v0.18.3
v0.18.2
What's Changed
- ui: bump vuetify from 3.7.7 to 3.7.9 in /ui by @dependabot in #4549
- fix(ui): improve terminal dialog behavior and ESC key handling by @luannmoreira in #4552
- fix(ui): adjust TerminalDialog max-width logic by @gustavosbarreto in #4553
- fix(enterprise): pass saml envs to enterprise containers by @heiytor in #4554
- chore: bump shellhub version to v0.18.2-rc.1 by @gustavosbarreto in #4555
- fix(enterprise): pass saml envs to cloud-pi container by @heiytor in #4557
- fix(docker): prevent empty environment variables in compose files by @gustavosbarreto in #4558
- docs(enterprise): explain SHELLHUB_SAML_SECRET by @heiytor in #4556
- chore: bump shellhub version to v0.18.2-rc.2 by @gustavosbarreto in #4559
- ssh: bump golang.org/x/crypto from 0.32.0 to 0.33.0 in /ssh by @dependabot in #4572
- docker: ui: bump nginx from 1.27.3-alpine to 1.27.4-alpine in /ui by @dependabot in #4570
- ui: bump vite-node from 1.6.0 to 1.6.1 in /ui by @dependabot in #4569
- ui: bump vitest from 2.1.8 to 2.1.9 in /ui by @dependabot in #4568
- ui: bump @vitest/coverage-v8 from 2.1.8 to 2.1.9 in /ui by @dependabot in #4567
- ui: bump vite-plugin-vuetify from 2.0.4 to 2.1.0 in /ui by @dependabot in #4566
- api: bump golang.org/x/crypto from 0.32.0 to 0.33.0 in /api by @dependabot in #4571
- docker: gateway: bump golang from 1.22.6-alpine3.20 to 1.23.6-alpine3.20 in /gateway by @dependabot in #4564
- ui: bump terser from 5.37.0 to 5.38.1 in /ui by @dependabot in #4565
- chore: bump shellhub version to v0.18.2 by @gustavosbarreto in #4573
Full Changelog: v0.18.1...v0.18.2
v0.18.1
What's Changed
- chore(deps): bump docker/login-action from 2 to 3 by @dependabot in #4548
- chore(deps): bump golang.org/x/net from 0.26.0 to 0.33.0 in /gateway by @dependabot in #4550
- chore: bump shellhub version to v0.18.1 by @gustavosbarreto in #4551
Full Changelog: v0.18.0...v0.18.1
v0.18.0
Since November, we have been working hard to bring significant improvements to ShellHub. This release represents a major step forward, introducing new features, enhancements, and fixes that will greatly enhance your experience. We appreciate your support and feedback as we continue to evolve!
🌟 Key Highlights
Enhanced UI and Terminal Experience
- Improved fullscreen terminal behavior for a seamless user experience.
- Enhanced session playback UI with better controls and fullscreen support.
shellhub-fullscreen-terminal.mp4
ShellHub Connector - Container Access via ShellHub
- Introduced ShellHub Connector, allowing Docker containers from a host to be accessed via ShellHub.
shellhub-docker-integration.mp4
HTTP Tunnel Support
- Implemented HTTP Tunnel Support for Enterprise and Cloud Editions, enabling secure and efficient remote access.
shellhub-tunnel.mp4
🚀 New Features
Namespace Enhancements
- Added support for namespace-based routing. #4319
- Introduced a namespace type field in CLI and API. #4237
- Implemented the ability to leave a namespace. #4340
- Default namespace type is now set to
team
. #4342
SSH Improvements
- Simplified session handling, improved recording, and enabled PTY session recording. #4324
- Added support for SSH agent forwarding. #4346
- Enhanced session recording using WebSocket and writer adapter. #4352
- Added session events tracking. #4363
- Improved session playback UI. #4534
Tunnels & Proxy Enhancements
- Renamed "Public URL" feature to "Tunnels" with various improvements. #4381
- Added TTL support and expiration management for tunnels. #4504
- Improved Nginx load balancing and DNS resolution. #4536
UI & UX Enhancements
- Enhanced AppBar with Gravatar integration and layout adjustments. #4326
- Introduced a new settings interface. #4379
- Improved terminal rendering and fullscreen behavior. #4532
- Improved session playback UI. #4534
- Enhanced notification and error handling for user input. #4412
- Introduced Chatwoot for help and support. #4325
- Added "Add Docker Host" button and dialog. #4525
Authentication & Security
🛠️ Fixes & Optimizations
General Fixes
- Improved container height and theme compatibility. #4337
- Resolved various UI layout inconsistencies. #4338, #4351
- Fixed API key page header. #4508
- Fixed terminal auto-open behavior. #4538
- Enhanced menu behavior and item visibility. #4419
- Improved error handling in UI components. #4428
Backend & Performance Optimizations
- Simplified GeoIP initialization. #4447
- Improved DNS resolution and worker initialization. #4494
- Enhanced session recording queue processing. #4446
📦 Dependencies Updates
Dependencies Upgraded
- Various UI dependencies updated, including Vue, Vite, Sass, and TypeScript.
- Backend dependencies updated, including Echo, MongoDB driver, and GoCrypto.
- Docker base images bumped to newer versions.
📌 Full Changelog: Compare v0.17.2...v0.18.0
v0.17.2
What's Changed
- fix(agent): implement method to generate CMD command to FreeBSD by @henrybarreto in #4293
- feat(api): unique cronjobs by @heiytor in #4294
- chore: bump shellhub version to v0.17.2-rc.1 by @gustavosbarreto in #4295
- feat(api): recorded_sessions indexes by @heiytor in #4297
- Feat/member self remove by @heiytor in #4296
- chore: add gosec plugin to golangci-linter by @henrybarreto in #4286
- chore(gateway, api): use secure middleware on echo and hidden nginx version by @henrybarreto in #4298
- chore: bump shellhub version to v0.17.2-rc.2 by @gustavosbarreto in #4299
- chore(ui): typo api key generate by @luannmoreira in #4302
- fix(ui): responsiveness problem in smaller devices on views titles by @luannmoreira in #4301
- feat(ui): delete account on cloud instance by @luannmoreira in #4300
- ui: bump @vitejs/plugin-vue from 5.1.4 to 5.1.5 in /ui by @dependabot in #4303
- ui: bump font-logos from 1.2.0 to 1.3.0 in /ui by @dependabot in #4304
- ui: bump vuetify from 3.7.3 to 3.7.4 in /ui by @dependabot in #4306
- ui: bump vee-validate from 4.14.6 to 4.14.7 in /ui by @dependabot in #4307
- ui: bump eslint-plugin-vue from 9.28.0 to 9.30.0 in /ui by @dependabot in #4308
- ssh: bump golang.org/x/crypto from 0.28.0 to 0.29.0 in /ssh by @dependabot in #4316
- api: bump golang.org/x/crypto from 0.28.0 to 0.29.0 in /api by @dependabot in #4318
- fix(ui): open version validation by @luannmoreira in #4320
- chore: bump shellhub version to v0.17.2-rc.3 by @gustavosbarreto in #4321
- Feat/leave namespace token by @heiytor in #4322
- chore: bump shellhub version to v0.17.2 by @gustavosbarreto in #4323
Full Changelog: v0.17.1...v0.17.2