v3.4.0

Textualize/textualv3.4.0Jun 14, 2025by willmcgugan

AI Summary

Enhanced Content markup parsing to be more lenient with Python list literals and fixed various rendering and threading issues.

Key Highlights

  • Content markup parser is now more lenient with square brackets
  • Fixed initial flicker in TextArea rendering
  • Added experimental opt-in support for textual-speedups

New Features

  • Added experimental opt-in support for textual-speedups

Full Release Notes

Mostly fixes, although there is a notable change to markup.

Previously anything in square brackets was considered a tag, which resulted in markup errors with Python list literals. i.e. `[1,2,3]` would be interpreted as a tag. The Content markup parser has been made more lenient in these cases, and treats them as literal text.

## [3.4.0] - 2025-06-14

### Fixed

- Fixed issues with initial flicker in `TextArea` rendering https://github.com/Textualize/textual/issues/5841vcomm
- Fixed issue with workers that have large parameter lists breaking dev tools https://github.com/Textualize/textual/pull/5850
- Fixed post_message failing on 3.8 https://github.com/Textualize/textual/pull/5848
- Fixed log not working from threads https://github.com/Textualize/textual/pull/5863

### Added

- Added experimental opt-in support for https://github.com/willmcgugan/textual-speedups

### Changed

- Content markup is now more lenient; if a 'tag' doesn't contain a valid style it will be included verbatim. https://github.com/Textualize/textual/pull/5851