Skip to content

Releases: charmbracelet/bubbletea

v1.0.0

28 Aug 15:06
v1.0.0
105d88a
Compare
Choose a tag to compare

At last: v1.0.0

This is an honorary release denoting that Bubble Tea is now stable. Thank you, open source community, for all your love, support, and great taste in beverage over the past four years.

Stay tuned for v2: we have some great things coming.


The Charm logo

Thoughts? Questions? We love hearing from you. Feel free to reach out on Twitter, The Fediverse, or on Discord.

v0.27.1

22 Aug 17:19
v0.27.1
17443d8
Compare
Choose a tag to compare

This is a lilโ€™ workaround for a hang that can occur when starting a program using Lip Gloss. For details see #1107.

Changelog

Bug fixes


The Charm logo

Thoughts? Questions? We love hearing from you. Feel free to reach out on Twitter, The Fediverse, or on Discord.

v0.27.0

16 Aug 16:21
v0.27.0
d6a19f0
Compare
Choose a tag to compare

Suspending, environment hacking, and more

Hi! This release has three nice little features and some bug fixes. Let's take a look:

Suspending and resuming

At last, now you can programmatically suspend and resume programs with the tea.Suspend command and handle resumes with the tea.ResumeMsg message:

func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
	switch msg := msg.(type) {

	// Suspend with ctrl+z!
	case tea.KeyMsg:
		switch msg.String() {
		case "ctrl+z":
			m.suspended = true
			return m, tea.Suspend
		}

	// Handle resumes
	case tea.ResumeMsg:
		m.suspended = false
		return m, nil
	}

	// ...
}

Example

There's also a tea.SuspendMsg that flows through Update on suspension.

Special thanks to @knz for prototyping the original implementation of this.

Setting the environment

When Bubble Tea is behind Wish you may have needed to pass environment variables from the remote session to the Program. Now you can with the all new tea.WithEnvironment:

var sess ssh.Session // ssh.Session is a type from the github.com/charmbracelet/ssh package
pty, _, _ := sess.Pty()
environ := append(sess.Environ(), "TERM="+pty.Term)
p := tea.NewProgram(model, tea.WithEnvironment(environ)

Requesting the window dimensions

All the Bubble Tea pros know that you get a tea.WindowSizeMsg when the Program starts and when the window resizes. Now you can just query it on demand too with the tea.WindowSize command.

Changelog

New!

Fixed


The Charm logo

Thoughts? Questions? We love hearing from you. Feel free to reach out on Twitter, The Fediverse, or on Discord.

v0.26.6

24 Jun 18:12
v0.26.6
60a57ea
Compare
Choose a tag to compare

Changelog

Bug fixes


The Charm logo

Thoughts? Questions? We love hearing from you. Feel free to reach out on Twitter, The Fediverse, or on Discord.

v0.26.5

21 Jun 01:02
v0.26.5
42a7dd8
Compare
Choose a tag to compare

Fix special keys input handling on Windows using the latest Windows Console Input driver.

Changelog

New Features

Bug fixes

Other work


The Charm logo

Thoughts? Questions? We love hearing from you. Feel free to reach out on Twitter, The Fediverse, or on Discord.

v0.26.4

30 May 18:31
eb78a8c
Compare
Choose a tag to compare

Fix panics! Using program.SetWindowTitle and others may panic if they were called before the program starts.

Also note that program.SetWindowTitle is now deprecated. To set the window title use tea.SetWindowTitle command.

What's Changed

  • chore(deps): bump github.com/charmbracelet/x/ansi from 0.1.1 to 0.1.2 by @dependabot in #1026
  • chore(deps): bump github.com/charmbracelet/lipgloss from 0.10.0 to 0.11.0 in /examples by @dependabot in #1025
  • fix: program renderer commands by @aymanbagabas in #1030

Full Changelog: v0.26.3...v0.26.4


The Charm logo

Thoughts? Questions? We love hearing from you. Feel free to reach out on Twitter, The Fediverse, or Discord.

v0.26.3

23 May 19:20
2ac3642
Compare
Choose a tag to compare

This is a patch release that prevents tea.WindowSizeMsgs from being fired during altscreen changes on Windows. This was due to the fact that Windows emits a window-size-event on altscreen changes even if the size handโ€™t changed. Now, we cache the window-size and compare before sending the message to the Model.

What's Changed

Full Changelog: v0.26.2...v0.26.3


The Charm logo

Thoughts? Questions? We love hearing from you. Feel free to reach out on Twitter, The Fediverse, or Discord.

v0.26.2

08 May 20:23
v0.26.2
Compare
Choose a tag to compare

This fixes a small regression that was introduced in v0.26.0 related to the first line on the first render not being displayed correctly. Thank you @mistakenelf for pointing this out in #1000!

What's Changed

Full Changelog: v0.26.1...v0.26.2


The Charm logo

Thoughts? Questions? We love hearing from you. Feel free to reach out on Twitter, The Fediverse, or Discord.

v0.26.1

02 May 19:16
v0.26.1
f946f1a
Compare
Choose a tag to compare

This is a quick one to fix a Windows shortcoming in the last release acutely identified by our pal @jon4hz. Thank you!

What's Changed

  • fix: support more shift and ctrl modifiers on windows by @jon4hz in #995

Full Changelog: v0.26.0...v0.26.1


The Charm logo

Thoughts? Questions? We love hearing from you. Feel free to reach out on Twitter, The Fediverse, or Discord.

v0.26.0

02 May 14:53
v0.26.0
21881ab
Compare
Choose a tag to compare

Bracketed Paste, Windows Improvements, Mainframes, and more

What do tapioca balls, IBM mainframes, and the Microsoft Windows Console API have in common? Bubble Tea v0.26.0, thatโ€™s what. Letโ€™s get to it.

โšก๏ธ Windows Input Improvements

A few years ago @erikgeiser, a penetration tester and ex-particle physicist, wrote this awesome library called coninput to majorly improve Bubble Tea input on Windows. @aymanbagabas has implemented the library in Bubble Tea and input on Windows is roughly 1000 times better now. In the short term, this means that for Windows users inputting non-Latin characters (like Greek, Cyrillic, Korean, Chinese and so on) stuff will โ€œjust work.โ€

The bigger news, however, is that this paves the way for Windows parity with our forthcoming support for super high fidelity input via Kitty Keyboard and Fixterms.

๐Ÿณ Hot Windows Resize Events

Terminal emulators on Windows donโ€™t support the SIGWINCH signal, which is sent when the terminal is resized. Itโ€™s been a huge bummer for a really long time. Thanks (again) to @erikgeiser and @aymanbagabas, weโ€™re now able to reach deep into Windowsโ€™ underpinnings, detect window resizes, and send tea.WindowSizeMsgs accordingly! This is a glorious moment for Bubble Tea on Windows indeed.

๐Ÿซ  Bracketed Paste

While building a query editor for a CockroachDB client, @knz noticed that Bubble Tea didn't support Bracketed Paste. Performance-wise, that sucks because it means pasting large bodies of text (like SQL queries) will normally be seen as a bunch of little successive keypresses. Thatโ€™s where Bracketed Paste comes in. When enabled at the terminal-level Bracketed Paste lets you slam down a bunch of text with one big, fat input event.

Bubble Tea enables bracketed paste by default, however you can opt out of it with the WithoutBracketedPaste() program option:

p := tea.NewProgram(myCuteModel, tea.WithoutBracketedPaste())

You can also enable and disable it on demand with the EnableBracketedPaste() and DisableBracketedPaste() commands.

๐ŸŒฟ Multiline tea.Println

In case you forgot, tea.Println (and itโ€™s brother tea.Printf) is a Cmd that lets you print unmanaged output above a Bubble Tea program, similar to what you see with package managers like apt-get. Thanks to @Adjective-Object (who also implemented tea.Println in the first place) now you can send multi-line output, too. For a tea.Println refresher see the package manager example.

๐Ÿ“€ Hello, z/OS

Donโ€™t you think itโ€™s about time we all ran Bubble Tea apps on our mainframes? Thanks to @dustin-ward that dream is now a reality, so long as you have a z/OS mainframe. We're thrilled to announce that Bubble Tea is now fully supported on z/OS.

๐ŸŒน Bug fixes

Bugfixes are the unsung heroes that sometimes get buried below the feature listings. This release has them and theyโ€™re good ones; see the changelog below for details.

Changelog

New!

Changed

Fixed

New Contributors

Full Changelog: v0.25.0...v0.25.1


The Charm logo

Thoughts? Questions? We love hearing from you. Feel free to reach out on Twitter, The Fediverse, or Discord.