Skip to content

Releases: aeshell/aesh

Release 3.16.4

Choose a tag to compare

@github-actions github-actions released this 03 Jul 13:31

What's New in 3.16.4

Issues

  • #549 Tab completion for bare options (acceptNameWithoutDashes) does not filter on prefix

Changes

  • Fix bare option help, completion, and synopsis rendering (#549)
  • Add BareOptionExample demonstrating acceptNameWithoutDashes

Full Changelog: v3.16.3...v3.16.4

Release 3.16.3

Choose a tag to compare

@github-actions github-actions released this 02 Jul 10:27

What's New in 3.16.3

Issues

  • #544 pwsh completion not working
  • #545 make detectShell public
  • #546 Reduce reflection in generated metadata and runtime code
  • #547 [#546] Reduce reflection in generated metadata and runtime code

Changes

  • Fix CI native-image: use specific JAR instead of glob
  • Make detectShell() public without lambda overhead (#545)
  • Fix pwsh trailing-space detection using cursorPosition (#544)
  • Improve CI: add native-image smoke test and benchmark compile check
  • [#546] Reduce reflection in generated metadata and runtime code

Full Changelog: v3.16.2...v3.16.3

Release 3.16.2

Choose a tag to compare

@github-actions github-actions released this 30 Jun 12:56

What's New in 3.16.2

Changes

  • Lower Ctrl-C interrupt log from INFO to FINE
  • Clear interrupt flag after Ctrl-C to prevent stale interrupt in readline restart
  • Fix NewFeaturesExample for native-image: package-private fields, positional sleep arg

Full Changelog: v3.16.1...v3.16.2

Release 3.16.1

Choose a tag to compare

@github-actions github-actions released this 29 Jun 11:33

What's New in 3.16.1

Issues

  • #542 GroupCommand.getCommands() not called when groupCommands annotation attribute is empty
  • #543 Ship generated metadata for internal commands (AliasCommand, UnAliasCommand, ExportCommand)

Changes

  • use aesh-readline 3.16.1
  • Fix flaky pipe test: use getStdin() null check instead of available()
  • Ship generated metadata for internal commands (#543)
  • Support GroupCommand interface without static groupCommands annotation (#542)

Full Changelog: v3.16...v3.16.1

Release 3.16

Choose a tag to compare

@github-actions github-actions released this 26 Jun 13:26

What's New in 3.16

Issues

  • #532 Streaming pipe implementation with concurrent pipeline execution
  • #533 Bump actions/checkout from 6 to 7
  • #534 Bump tamboui.version from 0.3.0 to 0.4.0
  • #536 Align CommandResult values to POSIX exit codes
  • #537 detectShell() returns BASH when invoked from PowerShell via bash wrapper scripts
  • #538 PowerShell completion generator: correctness bugs and feature parity gaps
  • #539 Dynamic completion filters out options at positional positions, breaking subcommand completion
  • #540 Support native-image without ServiceLoader for MetadataRegistry discovery
  • #541 OptionList with shortName does not support attached values (e.g. -R-Xmx4G)

Changes

  • use aesh-readline 3.16
  • Support native-image without ServiceLoader for MetadataRegistry (#540)
  • Support OptionList attached short-name values and add comprehensive tests (#541)
  • Fix dynamic completion: show options at all positions (#539)
  • Add comprehensive dynamic completion tests (#539)
  • Revert "Stop filtering options in dynamic completion at positional positions (#539)"
  • Stop filtering options in dynamic completion at positional positions (#539)
  • Fix code review findings in streaming pipe implementation
  • Fix PowerShell completion generator and add comprehensive tests (#538)
  • Fix detectShell() returning BASH from PowerShell via wrapper scripts (#537)
  • Align CommandResult to POSIX exit codes (#536)
  • Streaming pipe implementation with concurrent pipeline execution (#532)

Full Changelog: v3.15.1...v3.16

Release 3.15.1

Choose a tag to compare

@github-actions github-actions released this 18 Jun 17:25

What's New in 3.15.1

Changes

  • use aesh-readline 3.15.1

Full Changelog: v3.15...v3.15.1

Release 3.15

Choose a tag to compare

@github-actions github-actions released this 18 Jun 13:19

What's New in 3.15 (since 3.13)

Breaking Changes

  • #526@GroupCommandDefinition removed. Use @CommandDefinition(groupCommands={...}) instead.
  • #523BooleanConverter now rejects invalid values (only accepts true/false/yes/no/1/0). Numeric converters throw OptionValidatorException on invalid input.

3.15

  • #530 — Dynamic prompt supplier, Shell.printAbove(), Shell.registerStatusLine(), multi-line prompts, right prompt
  • #529--help=skill/markdown/asciidoc format support for any command or subcommand
  • #528 — Command duration in prompt (enabled by #527 + #530)
  • #527 — Command execution listener with duration tracking (CommandExecutionListener.onCommandComplete)
  • #526 — Remove deprecated @GroupCommandDefinition
  • #525 — PowerShell (pwsh) completion support
  • #531 — Resolve ${ROOT-COMMAND-NAME} and other variables in completion script descriptions

3.14.3

  • #524 — Preserve completion candidate order in Fish and Bash scripts

3.14.2

  • #523 — Boolean and numeric converter validation
  • #521 — Env var defaults take priority over DefaultValueProvider
  • #520 — Deferred ${env:...} resolution to parse time
  • aesh-charts — New terminal charting module (Sparkline, BarChart, LineChart, TimeSeriesChart, MultiPlot)

3.14.1

  • #519ClassValue-based classloader-safe provider caching
  • #518ProcessedOption.setConverter() for programmatic converter override
  • #517 — Configurable CommandContainerBuilder for framework integration (CDI, Spring)
  • #516 — Shell split-screen: enableSplitScreen(), splitScreen(), setCurrentRegion()
  • #515@OptionGroup key-only entries with defaultValue
  • #514 — Cascading ${env:A:-${sys:B:-default}} fallback syntax
  • #513@OptionGroup preserves insertion order (LinkedHashMap)
  • #512${env:...} / ${sys:...} resolved on annotation processor path
  • #511 — Custom OptionParser fallback chain
  • EOF handling fix for readline 3.14

Performance (vs 3.13)

Benchmark Generated Reflection
Command creation 76% faster 21% faster
Full startup (per cmd) 27% faster
Parse+execute (12 cmds) 21% faster 21% faster

Dependency Changes

  • aesh-readline: 3.12 → 3.15

Full Changelog: v3.14.3...v3.15

Release 3.14.3

Choose a tag to compare

@github-actions github-actions released this 14 Jun 14:07

What's New in 3.14.3

Issues

  • #524 feat: add --keep-order (-k) to generated Fish completion script

Changes

  • Preserve completion candidate order in Fish and Bash scripts (#524)
  • use aesh-readline 3.14.1
  • Fix BOM: use readline.version for readline/terminal modules

Full Changelog: v3.14.2...v3.14.3

Release 3.14.2

Choose a tag to compare

@github-actions github-actions released this 11 Jun 10:42

What's New in 3.14.2

Issues

  • #520 Defer ${env:...} and ${sys:...} resolution to parse time instead of construction time
  • #521 DefaultValueProvider always overrides annotation defaultValue — no way to express env var > config priority
  • #523 BooleanConverter silently accepts invalid values — should reject unrecognized boolean strings

Changes

  • Validate boolean and numeric converter input (#523)
  • Give env var defaults priority over DefaultValueProvider (#521)
  • Defer ${env:...} resolution to parse time for testability (#520)
  • Add interactive chart example with 6 demo commands
  • Add change detection markers and threshold lines to charts
  • Add aesh-charts module — terminal charting library

Full Changelog: v3.14.1...v3.14.2

Release 3.14.1

Choose a tag to compare

@github-actions github-actions released this 10 Jun 17:27

What's New in 3.14.1

Issues

  • #508 Tail tip suggestions — show parameter hints after cursor
  • #511 Apply fallback value chain after custom OptionParser that sets no value
  • #512 PropertiesLookup not resolving ${env:...} variables on annotation processor path
  • #513 @OptionGroup should preserve insertion order (use LinkedHashMap instead of HashMap)
  • #514 Support cascading variable resolution in defaultValue/fallbackValue (picocli-style)
  • #515 Support custom Converter on @OptionList and @OptionGroup
  • #516 Shell split-screen integration: route output to configurable regions
  • #517 Allow configurable CommandContainerBuilder in lazy child resolution
  • #518 Add setConverter and setActivator methods to ProcessedOption
  • #519 MetadataProviderRegistry static cache causes ClassCastException with classloader reloading

Changes

  • Remove temporary CI cache cleanup step
  • Fix CI: delete stale aesh-readline jars before build
  • Add -U to CI Maven command to fix stale terminal-api cache
  • Fix duplicate /** in PropertiesLookup MAX_DEPTH javadoc
  • Add split-screen example demonstrating Shell.enableSplitScreen() (#516)
  • Add split-screen methods to Shell interface (#516)
  • Use ClassValue for classloader-safe provider caching (#519)
  • Handle EOF (Ctrl+D) in ReadlineConsole request handler
  • Add setConverter method to ProcessedOption (#518)
  • Allow configurable CommandContainerBuilder in lazy child resolution (#517)
  • Fix pre-release review findings
  • Improve @OptionGroup.defaultValue javadoc for key-only entries (#515)
  • Add tests for @OptionGroup key-only entries with defaultValue (#515)
  • Add recursion depth limit and fix javadoc in PropertiesLookup
  • Support cascading variable resolution with :- fallback syntax (#514)
  • Use LinkedHashMap for @OptionGroup to preserve insertion order (#513)
  • Replace regex with string operations in PropertiesLookup
  • Resolve ${env:...} and ${sys:...} in fallbackValue (#512)
  • Resolve ${env:...} and ${sys:...} in defaultValue on processor path (#512)
  • Add tail tip suggestions — parameter hints after cursor (#508)
  • Apply fallback value chain after custom OptionParser (#511)
  • Add test coverage, fix synopsis bugs, unify doc renderers
  • Fix flaky testChildFormatter CI failure: remove clearOutputBuffer race
  • Fix pre-release review findings

Full Changelog: v3.13...v3.14.1