# Tenzir Node v5.4.0

With the introduction of format strings to TQL, this release makes string construction from multiple parts easier than ever before.

## 🚀 Features

### Format strings

Jun 11, 2025 · [@jachris](https://github.com/jachris), [@IyeOnline](https://github.com/IyeOnline) · [#5254](https://github.com/tenzir/tenzir/pull/5254)

TQL now supports format strings as you might know them from other languages like Python. Format strings allow you to flexibly construct strings in a very succinct way by using a pair of braces within an `f"…"` string.

For example, assume that you have events with two integer fields, `found` and `total`. We can construct a message from this as follows:

```tql
percent = round(found / total * 100).string()
message = "Found " + found.string() + "/" + total.string() + " => " + percent + "%"
```

Using the new format strings, this simply becomes

```tql
percent = round(found / total * 100)
message = f"Found {found}/{total} => {percent}%"
```

You can also use arbitrary expressions inside `{` to simplify this even further:

```tql
message = f"Found {found}/{total} => {round(found / total * 100)}%"
```

If you ever need an actual `{` in your format string, you can use `{{`. The same goes for the closing brace `}`, which needs to be written as `}}` within format strings.

## 🔧 Changes

### Remove `meta` keyword

Dec 17, 2025 · [@jachris](https://github.com/jachris) · [#5275](https://github.com/tenzir/tenzir/pull/5275), [#5276](https://github.com/tenzir/tenzir/pull/5276)

The identifier `meta` is no longer a keyword and can thus now be used as a normal field name.

## 🐞 Bug Fixes

### Pipeline activity refresh without running pipelines

Jun 12, 2025 · [@jachris](https://github.com/jachris) · [#5278](https://github.com/tenzir/tenzir/pull/5278)

The `pipeline::activity` operator now always yields new events, even when all running pipelines are hidden.

### Unreliable `where` diagnostics

Jun 12, 2025 · [@jachris](https://github.com/jachris) · [#5277](https://github.com/tenzir/tenzir/pull/5277)

The `where` operator now correctly produces diagnostics also for simple expressions, which was previously not the case in some situations.

### Invalid scientific notation when using `write_json`

Jun 12, 2025 · [@jachris](https://github.com/jachris) · [#5274](https://github.com/tenzir/tenzir/pull/5274)

When using `write_json` with large floating-point numbers, the resulting JSON was ill-formed. For example, the number `5483819555176798000.0` was previously printed as `5.483819555176798e+18.0`. The extra `.0` at the end is not valid JSON. Thus, the output was rejected by some parsers. Now, `write_json` renders this number as `5.483819555176798e+18` instead.

This bug was also observable on the Tenzir Platform, where it could lead to request timeouts. Now, large numbers are shown correctly.

### Gracefully handle null values when charting with resolution

Jun 11, 2025 · [@raxyte](https://github.com/raxyte) · [#5273](https://github.com/tenzir/tenzir/pull/5273)

The `chart_bar` and `chart_pie` operators had a bug when the x-axis had a `null` value and the `resolution` option was specified. The unfortunate panic due to this bug has now been fixed.

[ Download on GitHub ](https://github.com/tenzir/tenzir/releases/tag/v5.4.0)

[Get the release artifacts and source code.](https://github.com/tenzir/tenzir/releases/tag/v5.4.0)