Skip to content

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Apr 13, 2025

This PR contains the following updates:

Package Change Age Confidence
com.jakewharton.mosaic:mosaic-runtime 0.16.0 -> 0.18.0 age confidence

Release Notes

JakeWharton/mosaic (com.jakewharton.mosaic:mosaic-runtime)

v0.18.0

Compare Source

New:

  • JVM artifacts can now be used as modules in the Java module system.
  • On Java 22 and newer, Mosaic now uses the foreign function & memory API to call into its native library instead of JNI.

Changed:

  • Unsolicited focus, theme, and resize events are now ignored unless the terminal has reported that it supports each of those modes.
    This should have no real impact on anything, except that now the Terminal.capabilities value can now be trusted to indicate whether Terminal.state will ever change in the case of focus and theme.
    For terminal size, a platform-specific fallback exists which will attempt to still correctly report the size, but asynchronously.
  • Terminal theme is now always queried for an initial value regardless of whether the terminal supports sending theme changes.
  • Java 11 is now the minimum-supported JVM version.
  • In-development snapshots of Mosaic are now published to the Central Portal Snapshots repository at https://central.sonatype.com/repository/maven-snapshots/.

Fixed:

  • Windows now reports the terminal size correctly. Previously it reported the buffer size instead of the window size.
  • Windows Terminal and ConEmu are now correctly detected as supporting color.

v0.17.0

Compare Source

New:

  • Terminal and LocalTerminal are now renamed to TerminalState and LocalTerminalState, respectively, along with some new capabilities:
    • Add focused boolean which defaults to true. If the terminal supports sending focus changes, this will be updated in real time.
    • Add theme property which defaults to 'unknown'. If the terminal supports querying theme state, this will be 'light' or 'dark' and be updated in real time. Note: this is not the OS theme, but instead reflects the theme of the terminal color scheme.
    • Size property now features the size in pixels in addition to cells. These values will be 0 if unsupported by the terminal.
  • Bind TerminalState.focused to a Lifecycle and expose into the composition as LocalLifecycleOwner. This allows using Compose lifecycle helpers such as LifecycleResumeEffect and others.
  • Fancy underline styles (single, double, dashed, dotted, curved) and colors can now be specified for text and annotated string spans.
  • LocalStaticLogger composition local provides access to StaticLogger which allows logging plain strings at arbitrary points for inclusion in the next frame. This can be used from effects, callback, state classes, etc. Support for logging AnnotatedStrings will come in a future release.
  • runMosaicMain function replaces the existing runMosaicBlocking for use specifically in fun main() or main-like scenarios.

Changed:

  • Switched to our own terminal integration and parsing library. Report any issues with keyboard input, incorrect size reporting, or garbled output. This unlocks many of the features listed above, as well as many more planned in the future.
  • Only disable the cursor and emit synchronized rendering markers if the terminal reports support for those features.
  • Static function is now called StaticEffect to better indicate that it only renders its content once.
  • runMosaic and runMosaicBlocking now accept a NonInteractivePolicy argument which dictates the behavior when Mosaic cannot connect directly to the TTY.

Fixed:

  • Prevent final character from being erased when a row writes into the last column of the terminal.
  • Do not emit ANSI style reset escape sequence when colors are disabled (such as in testing).
  • Do not draw blank spaces at the end of every line.

Removed:

  • renderMosaic was removed without replacement. As the capabilities of the library grow, supporting a string as a render target was increasingly difficult.

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot force-pushed the renovate/com.jakewharton.mosaic-mosaic-runtime-0.x branch from 289a545 to bde16a9 Compare June 25, 2025 07:33
@renovate renovate bot force-pushed the renovate/com.jakewharton.mosaic-mosaic-runtime-0.x branch from bde16a9 to 57058b8 Compare August 10, 2025 12:53
@renovate renovate bot force-pushed the renovate/com.jakewharton.mosaic-mosaic-runtime-0.x branch from 57058b8 to 37d65d7 Compare August 22, 2025 04:37
@renovate renovate bot changed the title Update dependency com.jakewharton.mosaic:mosaic-runtime to v0.17.0 Update dependency com.jakewharton.mosaic:mosaic-runtime to v0.18.0 Aug 22, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants