version 0.3
==============
- New ``pytest`` test item: run your pytest files as a test step; each
  test shows up with its own PASS / FAIL / SKIP. Requires pytest to be
  installed (``pip install pytest``).
- Search the test tree in the GUI (Ctrl+F): find items by name, type or
  doc; matches are highlighted and you can step through them.
- console ``read_until`` can now wait for several possible texts at once
  (it matches the first one seen), and a ``regex: true`` option lets you
  match with a regular expression.
- Serial console: a clear message when the device is missing, and serial
  ports now work in the Flatpak version.
- If a test file cannot be loaded (for example pytest is not installed),
  only that step fails — the rest of the tests still run.
- Fix: a variable (``$(...)``) used in a console ``telnet_port`` is now
  correctly substituted.

version 0.2.3
=============
- Windows version now working reliably. Fix of a problem of jrpc ports
  handshakes between the py and lua processes and testium.
  Beneficial to linux version too.
- Windows: UTF-8 console output and a self-sufficient validation
  wrapper (run.bat).
- Resolved python_bin / lua_bin are now published into the global dict,
  so test scripts can read them via $(python_bin) / $(lua_bin).
- Windows: new per-user installer (no admin).

version 0.2.2
==============
- Flatpak sandbox issue fixed for term console. Now a term console is
  exactly like a host console.
- Persistence fix of dialogs in case of flatpak.

version 0.2.1
==============
- Faster test loading, especially for large tests built from jinja
  templates and ``!include``: compiled jinja templates are cached and
  reused (a file included many times is compiled once), rendering happens
  in memory instead of through a temporary file, and YAML is parsed with
  the libyaml C loader when available. Typical load time is 3-6x lower on
  include / template-heavy tests; behaviour is unchanged.
- Fix: a nested list holding more than one step under ``steps`` no longer
  duplicates its entries while the step tree is built.
- New load-time benchmark under ``test/benchmark/`` (synthetic-tree
  generator + in-process timing harness) to measure the load pipeline.

version 0.2
==============
- Test items: each item type now declares its accepted parameters
  (``PARAMS = ParamSet(...)``). Typos in a ``.tum`` are surfaced as a
  WARN listing the accepted names instead of being silently ignored;
  missing required parameters error out at load time with the source
  ``.tum`` file as context. No change to valid existing tests.
- Editor support: testium now ships a language server. ``testium lsp``
  gives ``.tum`` files item-type completion, hover documentation and an
  outline view in any LSP-capable editor (a VSCode / VSCodium client is
  provided separately). ``testium schema`` dumps the item/parameter
  schema as JSON. The server works from every channel — bundled in the
  binary / Flatpak / AppImage, and pulled by ``pip install testium[lsp]``
  for wheel installs.
- build_all.sh: the four heavy channels now build in parallel (results
  reported as each finishes; Ctrl+C stops them cleanly). New ``--ram``
  option builds on a tmpfs (``/dev/shm``) and skips UPX for much faster
  packaging on USB-stick / SD-card storage.

version 0.1.3
==============
- Stop interrupts engaged blocking steps (console, py_func, lua_func,
  json_rpc, sleep) within ~200 ms instead of waiting for the step
  to finish.
- GUI Start / Stop / Pause flow simplified.
- lua_func: a function returning nil is no longer reported as a failure.
- ``-d python_bin=...`` and the GUI ``python_bin`` preference now reach
  the eval subprocess (used to be silently ignored). ``param.yaml`` can
  also override ``python_bin`` for py_func / cycle / post_exec.
- Validation suite: ``test/validation/run.sh`` (and ``run.bat``)
  runs the suite inside a dedicated venv in the system temp dir.
- build_all.sh: ``release_note.txt`` and the user manual copied into
  ``dist/``; warning if the file has no entry for the version being built.
- Flatpak: every GUI file/directory dialog (open test, save report, log
  path, default report/log dirs, python/lua interpreter pickers) now
  bypasses the XDG document portal — the v0.1.2 fix was only on the
  "open test" dialog.
- Flatpak: py_func / lua_func / run sub-instance now execute on the host
  via flatpak-spawn, lifting the previous glibc/ABI incompatibility that
  prevented user-configured host Python or Lua interpreters from being
  reached from the sandbox.
- Validation suite: single entry point with ``--mode source|wheel|
  pyinstaller|flatpak|appimage`` to validate any packaging channel
  against the same item set; reports are stamped per mode.
- GUI: the "Run tum" test item now uses the testium logo.

version 0.1.2
==============
- Flatpak: opening a test from the GUI now correctly finds its companion
  files (param.yaml, .py scripts, ...).

version 0.1.1
==============
- New install channels: Flatpak bundle and AppImage. The AppImage runs
  on any distribution (built inside a Debian container).
- About dialog: version is now correct in Flatpak and AppImage builds
  (used to display "unknown").
- GUI dialogs no longer hang on pure-Wayland sessions.
- Plot "last values" API: more tolerant timeout on loaded machines.
- run item: `testium_path` and `python_bin` parameters removed —
  sub-instances are launched in the same packaging mode as the parent.
- License: EUPL-1.2.

version 0.1
==============
- Start of the project
