# What changed in rich

> 29 changes in rich 14 to 15 from its official release notes, upgrade guides and advisories: 2 breaking, 8 new APIs and options. Each one cited. Sources checked 2026-10-21. HTML: https://unstale.sh/pypi/rich/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## rich 15

### Breaking changes

- Support for Python 3.8 was dropped. (15.0.0) — [release notes](https://github.com/Textualize/rich/releases/tag/v15.0.0)

### Fixes and other changes

- Fixed empty print ignoring the end parameter. (15.0.0) — [release notes](https://github.com/Textualize/rich/releases/tag/v15.0.0)
- Fixed FileProxy.isatty not proxying. (15.0.0) — [release notes](https://github.com/Textualize/rich/releases/tag/v15.0.0)
- Fixed inline code in Markdown table cells. (15.0.0) — [release notes](https://github.com/Textualize/rich/releases/tag/v15.0.0)
- Fixed Text.from_ansi removing newlines. (15.0.0) — [release notes](https://github.com/Textualize/rich/releases/tag/v15.0.0)

## rich 14

### Breaking changes

- Trailing whitespace is no longer removed when soft_wrap=True. (14.3.0) — [release notes](https://github.com/Textualize/rich/releases/tag/v14.3.0)

### New APIs and options

- Added a unicode_version parameter to cells.cell_len; the notes say it probably should never be changed. (14.3.0) — [release notes](https://github.com/Textualize/rich/releases/tag/v14.3.0)
- Added the last_render_height property to LiveRender. (14.3.0) — [release notes](https://github.com/Textualize/rich/releases/tag/v14.3.0)
- Added the markdown.table.border style for Markdown tables. (14.3.0) — [release notes](https://github.com/Textualize/rich/releases/tag/v14.3.0)
- Added the markdown.table.header style for Markdown tables. (14.3.0) — [release notes](https://github.com/Textualize/rich/releases/tag/v14.3.0)
- Added Segment.split_lines_terminator. (14.3.0) — [release notes](https://github.com/Textualize/rich/releases/tag/v14.3.0)
- Exposed locals_max_depth in traceback.install. (14.3.0) — [release notes](https://github.com/Textualize/rich/releases/tag/v14.3.0)
- Exposed locals_overflow in traceback.install. (14.3.0) — [release notes](https://github.com/Textualize/rich/releases/tag/v14.3.0)
- Added support for the UNICODE_VERSION environment variable. (14.3.0) — [release notes](https://github.com/Textualize/rich/releases/tag/v14.3.0)

### Performance

- Lazy loading improves import time for Rich apps. (14.3.4) — [release notes](https://github.com/Textualize/rich/releases/tag/v14.3.4)
- Link ID generation avoids random number generation at runtime, potentially improving runtime when there are many links. (14.3.4) — [release notes](https://github.com/Textualize/rich/releases/tag/v14.3.4)

### Behavior and default changes

- Changed the style of Markdown headers. (14.3.0) — [release notes](https://github.com/Textualize/rich/releases/tag/v14.3.0)
- Changed the style of Markdown rules. (14.3.0) — [release notes](https://github.com/Textualize/rich/releases/tag/v14.3.0)
- Changed the style of Markdown tables. (14.3.0) — [release notes](https://github.com/Textualize/rich/releases/tag/v14.3.0)

### Fixes and other changes

- Fixed an infinite loop in cells.split_graphemes. (14.3.3) — [release notes](https://github.com/Textualize/rich/releases/tag/v14.3.3)
- Fixed a crash on solo ZWJ input. (14.3.2) — [release notes](https://github.com/Textualize/rich/releases/tag/v14.3.2)
- Fixed control codes being reported as having width 1. (14.3.2) — [release notes](https://github.com/Textualize/rich/releases/tag/v14.3.2)
- Characters outside the Unicode range no longer report a cell size of 0. (14.3.1) — [release notes](https://github.com/Textualize/rich/releases/tag/v14.3.1)
- Fixed extra padding on the first cell in columns. (14.3.0) — [release notes](https://github.com/Textualize/rich/releases/tag/v14.3.0)
- Live will not write a new line if nothing was rendered. (14.3.0) — [release notes](https://github.com/Textualize/rich/releases/tag/v14.3.0)
- Added support for some multi-codepoint glyphs to fix alignment issues for these characters. (14.3.0) — [release notes](https://github.com/Textualize/rich/releases/tag/v14.3.0)
- IPython now respects a Console instance passed to pretty.install. (14.3.0) — [release notes](https://github.com/Textualize/rich/releases/tag/v14.3.0)
- Fixed an extraneous blank line for non-interactive disabled Progress. (14.3.0) — [release notes](https://github.com/Textualize/rich/releases/tag/v14.3.0)
- Fixed style new-lines when soft_wrap is enabled and a print style is set. (14.3.0) — [release notes](https://github.com/Textualize/rich/releases/tag/v14.3.0)
