Well, lost a day trying to update to the #charm v2 rc version library in a couple of my projects.

Today, besides a couple of questionable API changes there was a ton of mismatched dependency versions which led to compilation errors.

I need to stop trying to do this until they truly release this new version.

I managed to solve the compilation errors. These were in the end the result of incomplete migration (on my part) to the new package namespaces for the main charm libraries from github.com/charmbracelet/ -> charm.land/

However the API change from a simple View() string -> View() tea.View is quite difficult to navigate and I haven't made everything render correctly yet.

The models that *do* render have issues with cursor movement having become quite a bit more laggy than before. I haven't investigated if this is due to some missing knobs when initializing the TUI, or due to code inefficiencies. Sigh...

@mariusor Happy to help you out here (and maybe chat more about this realtime) but will post some initial comments below.

@mariusor in general you'll only want to use a tea.View at the top level. I think there's sort of misunderstanding that children need to implement tea.Model, which isn't true. The purpose behind tea.View is more to make things that were previously async synchronous.

For example, cursor shape and altscreen presence are parts of the view, and as commands they can come in out of sync.

@mariusor In terms of lag, are you using a real cursor? If so, note that the terminal needs to hide the cursor move it all over the place for rendering, and then put it back. In cases where there's a lot of animation, this can interrupt the blinking process with a real cursor for sure.

@meowgorithm no, not the real cursor, just rendering the line in inverted colors in a list of items (like I mentioned before).

I assume that the issue is with the fact that the list's items were models themselves and receiving Update messages for every message.

I'll probably have to rethink the whole model now with the new API.

@meowgorithm and if you allow me a question (in this out of band support forum :D), what's the timeline for releasing the v2 ? And will that include some of the newer member of the charm family like wish? (I have a plan to use wish in my projects as an input method for ActivityPub servers)