|
1 | | -## 4.3.0 (TBD) |
| 1 | +## 4.4.0 (TBD) |
2 | 2 |
|
3 | 3 | - Bug Fixes |
4 | 4 | - Background output printed above an active reserved prompt through `run_in_terminal()` or |
|
61 | 61 | Output which already fits on the screen is printed directly rather than paged. Set |
62 | 62 | `self.use_builtin_pager = False` to keep using the external `pager`/`pager_chop` commands. |
63 | 63 |
|
| 64 | +## 4.3.0 (October 13, 2026) |
| 65 | + |
| 66 | +- Stabilized features |
| 67 | + - `@with_annotated` is no longer experimental. It was introduced as an experimental feature in |
| 68 | + 4.0.0 and is now a fully supported way to define a command's arguments, alongside |
| 69 | + `@with_argparser`. This covers the decorator and its supporting API in `cmd2.annotated`, |
| 70 | + including `Argument`, `Option`, `Group`, and `ArgumentBlock`. |
| 71 | + [Annotated Argument Processing](https://cmd2.readthedocs.io/en/latest/features/annotated/). |
| 72 | +- Bug Fixes |
| 73 | + - On POSIX, piping a command's output to an interactive program such as `less` |
| 74 | + (`help -v | less`) now runs that program as the terminal's foreground job, as a shell pipeline |
| 75 | + does. It had run in a separate session that never received the terminal, so Ctrl-Z and `fg` |
| 76 | + did not suspend and resume it together with cmd2. The program now owns the terminal as it |
| 77 | + starts, so a pager can set its terminal modes, and Ctrl-C and Ctrl-Z reach the whole pipeline. |
| 78 | + Pipes started from a worker thread, or whose output does not go to the terminal, such as one |
| 79 | + nested in a command whose own output is piped, still run in their own session |
| 80 | + - A `shell` command piped to an interactive program, such as `shell git log | less`, now joins |
| 81 | + the pipeline's job, so both processes receive Ctrl-C and Ctrl-Z |
| 82 | + - On Windows, fixed piped output appearing garbled in console programs such as `more` |
| 83 | + (`help -v | more`), a regression in 4.2.4. Pipes are written as UTF-8, but console programs |
| 84 | + decode their input with the console's code page. While a pipe or the pager runs, cmd2 now sets |
| 85 | + the console to UTF-8 (code page 65001, as `chcp 65001` does) and restores its code pages |
| 86 | + afterward, so console programs and UTF-8 tools such as `rg` both read the output correctly |
| 87 | + - When copying a command's output to the clipboard (`help >`) fails, later commands' output is |
| 88 | + no longer written to the temporary file that held it |
| 89 | + - When a pipe's process cannot be started, for instance because no more processes can be created |
| 90 | + or `$SHELL` names a program that cannot run, both ends of the pipe are now closed rather than |
| 91 | + left open |
| 92 | + - When a pipe's process exits before the command runs, what it wrote, such as the shell's |
| 93 | + "command not found", is no longer lost when cmd2 captures the output, as in a pyscript |
| 94 | + |
64 | 95 | ## 4.2.4 (September 8, 2026) |
65 | 96 |
|
66 | 97 | - Bug Fixes |
|
0 commit comments