Spring Shell 3 v4.0.3 Release Notes

Release Date: 2026-06-11 // 4 days ago
  • 🛠 🐞 Bug Fixes

    • Tab completion broken on JDK 25 after upgading jline to 3.30.9 #1343
    • 📦 ShellInputProvider not usable outside its package #1342
    • Incorrect candidate search scope #1351
    • 👍 DevTools AutoReload Support #1224
    • Autocompletion does not work correctly for arguments #1346
    • Custom "Converters" not working with @Command-Annotations #1352
    • Missing runtime hints for stg resources in JLineRuntimeHints when using native compilation #1358
    • Missing space between non required options in help synopsis #1357
    • Missing argument information in the output of the help command #1344

    🛠️ Tasks

    • 🛠 Fix build errors and warnings #1183

    ⚡️ 🆙 Dependency updates

    • Reactor 3.8.6
    • Spring Framework 7.0.8
    • Spring Boot: 4.0.7
    • JLine: 3.30.13

    ❤️ Contributors

    🚀 Thank you to all the contributors who worked on this release:

    @czpilar, @mhayen , @DF-Nico


    Full Changelog : v4.0.2...v4.0.3


Previous changes from v4.0.2

  • ⭐ New Features

    • ➕ Add support to group commands at class level as in v3 #1266
    • ➕ Add support to test commands which ask for input with Spring Shell 4 #1292
    • ➕ Add support to specify argument arity for multi-valued input #1263
    • Sort command names in help output #1279

    🛠 🐞 Bug Fixes

    • Exit code is always 0 for non-interactive runner #1339
    • Missing help for built-in commands #1335
    • Boolean flags not working without value in sub-commands #1331
    • Declaring an ApplicationRunner causes Spring Shell application to close immediately #1330
    • Spring profiles not honoured when registering commands #1328
    • ✅ Command registration differs with @ActiveProfiles in tests vs jar spring.profiles.active= (4.0.1) #1327
    • Command not registered if @Profile(..) is used and activated #1325
    • 🛠 Fix possible NPE in InteractiveShellRunner #1320
    • Script execution stops on line with comment (in 4.x) #1316
    • 🖨 Empty line in script prints all available commands (in 4.0.1) #1315
    • 0️⃣ Default option int value is ignored (in 4.0.1) #1314
    • NonInteractiveShellRunner v3 -> v4 Migration Issue #1312
    • Boolean option without value does not properly work with argument #1309
    • Annotated commands are not registered in GraalVM native binary #1229
    • Table Rendering Issue with CJK Characters #1223

    📚 📔 Documentation

    • 📚 End-to-end testing documentation can be improved #1338
    • 👻 Exception handling changes in 4.0 are not documented in migration guide #1265

    ⚡️ 🆙 Dependency updates

    • Reactor 3.8.5
    • Spring Framework 7.0.7
    • Spring Boot: 4.0.6
    • jLine: 3.30.9

    ❤️ Contributors

    🚀 Thank you to all the contributors who worked on this release:

    @czpilar, @RustyRodriguez, @therepanic