Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Changelog

All notable changes will be documented here. The format is based on Keep a Changelog. Lilo adheres to Semantic Versioning.

v0.5.4 - 2025-11-20

Added

  • Local signal file monitoring.
  • Offline licensing for Docker.
  • Monitoring drill-down.
  • Monitoring point of interest.
  • VSCode Extension documentation.
  • Public Docker image available on GHCR with accompanying docs.
  • Analysis sidebar now auto-refreshes and shows a spinner while analysis runs.

Change

  • Monitor tree sample limit increased to 3100.
  • Spec status is no longer a preview feature.

Fixed

  • Monitor tree range made responsive.
  • Styles of the VSCode sidebar.
  • Sample projects for monitoring are bundled correctly.
  • Local signal file UX issues resolved.

v0.5.3 - 2025-11-14

Added

  • A Whirlwind Tour guide.
  • Offline licenses for SpecForge.
  • Automated downsampling for monitoring.
  • Gemini and Ollama LLM provider support.
  • CLI monitoring commands gained interval and sampling options.
  • Falsification examples added to the docs.

Fixed

  • Issue with stale falsifier list.
  • Module name mismatch error reported location.
  • CLI commands now run from the project directory.

v0.5.2 - 2025-11-10

Changed

  • Falsification timeout from 60 to 240 seconds.

Fixed

  • Errors being reported in multiple files.

v0.5.1 - 2025-11-05

Added

  • New documentation site: https://docs.imiron.io/.
  • You can now create animation gif animations.
  • Projects are setup with a lilo.toml file, see Project Configuration.
  • Registration of system falsifiers in lilo.toml.
  • VSCode spec status now lists analysis.
  • Spec analysis in VSCode.
  • Run falsification engines from the spec analysis pane.

Changed

  • Better type errors for conflicting record construction/update.
  • LLM explanations are localised according to user's VSCode settings.
  • Unbound variable errors now include a list of in-scope variables with similar spellings.
  • System globals (signals and params) can have attributes, including docstrings.
  • The command JSON format has changed significantly, as is expected to be stable (backwards compatible) going forwards. In particular this uses system names, not filenames.
  • One can specify a param as null (JSON) to remove the default param values.
  • LLM spec generation will fail for under-specified specifications.
  • CLI interface is updated to work with modules.

v0.5.0 - 2025-10-14

Added

  • Default params: param foo: Float = 42 sets 42 as the default value of parameter foo.
  • Timeout attributes:
    #[timeout = 3]
    spec foo = ...
    
    will set the timeout to 3 seconds for analysis tasks on spec foo.
  • Warning for mismatched server/client versions.
  • Spec stubs:
    spec no_overheat
    
    creates a "spec stub" (an unimplemented spec). There is also a code action to suggest an implementation using the docstring, using AI.
  • Retry analysis with longer timeout: if an analysis times out, there is a code action to retry with a longer timeout.
  • Record features:
    • Record update (including deep)
    • Field punning.
    • Path construction and path update.
  • Warnings for unused defs, signals and params.
  • Code hierarchy in VSCode.
  • Modules: User can create modules (containing only def and type declarations), and import them.

Changed

  • VSCode code lenses resolve one at a time, which results in a much more responsive experience.