Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Unreleased

[0.17.15] - 2026-03-07

  • Adding research

[0.17.14] - 2026-03-07

  • Adding research paper

[0.17.13] - 2026-03-06

  • Reising seaweed fs

[0.17.12] - 2026-03-06

  • Adding example 11

[0.17.11] - 2026-03-02

  • Adding example 10 docs

[0.17.10] - 2026-03-02

  • Example 10 non blocking multi action

  • Example 10: Water tank maintenance — background goroutines with progress, cancellation, and equipment lockout

[0.17.6] - 2026-03-01

  • Updating documentation## [0.17.8] - 2026-03-01

  • Adding 04 and 09 and summary pages

[0.17.9] - 2026-03-01

  • Adding better documentation

[0.17.7] - 2026-03-01

  • Updating docs

[0.17.5] - 2026-03-01

  • Adding HTMX versions

[0.17.5] - 2026-02-28

  • Example 09: Water tank with HTMX partial updates (no full-page polling)

[0.17.4] - 2026-02-27

  • working on WASM documentation of Water tank simulation

[0.17.0] - 2026-02-26

  • Go water tank simulator

[0.16.1] - 2026-02-25

Added

  • Built-in Bulma 1.0.4 layout templates: LayoutSingle, LayoutNavbar, LayoutThreePanel (Go + Python)
  • NewControllerWithLayout() convenience constructor
  • Python lofigui.LAYOUT_SINGLE, LAYOUT_NAVBAR, LAYOUT_THREE_PANEL exports

[0.15.1] - 2026-02-25

Fixed

  • Python: reset() now drains the queue (BUG 4 — stale items persisted across resets)
  • Python: PrintContext.__exit__ also drains queue on context manager exit
  • Python: Fixed mutable default arguments extra: dict = {} in App.state_dict() and App.template_response()
  • Python: Fixed example 05 to use app_instance API instead of removed Controller methods; replaced blocking time.sleep with asyncio.sleep

[0.15.0] - 2026-02-25

Changed

  • Breaking: Go model function signature changed from func(*App) to func(context.Context, *App)
  • StartAction() now returns a context.Context that is cancelled on EndAction() or when a new action starts
  • HandleRoot() passes cancellable context to model goroutines
  • Old goroutines are automatically cancelled when a new action starts (prevents stale goroutines)

[0.14.0] - 2026-02-25

Fixed

  • Go: StateDict() deadlock — replaced nested ControllerName() call with inline lookup, added defer for unlock
  • Go: HandleDisplay() now injects polling state (refresh meta tag, polling status) via StateDict() + RenderTemplate()
  • Go: Extra context merge moved inside lock scope for safety

[0.13.4] - 2026-02-15

  • Project conformance: added ROADMAP.md, standard tasks (fmt, vet, check, clean), fixed CHANGELOG formatting
  • Visual documentation: SVG captures of examples using url2svg, docs/UI_PATTERNS.md

[0.13.2] - 2026-02-13

  • Making more LLM compatible

[0.13.0] - 2025-11-05

  • Making auto favicon configurable

[0.12.0] - 2025-10-28

  • Refactoring to make app a more centralised and opinionated controller with just model specific info in the controller.

[0.11.0] - 2025-10-27

  • Using taskfile in CI to use same commands

[0.10.0] - 2025-10-27

  • Adding tinygo example
  • Adding polling state

[0.9.0] - 2025-10-27

  • Make changes to controller idempotent for both go and python
  • adding tests and lint to precommit hook.

[0.8.0] - 2025-10-27

  • When change python controller, make app shut down previous action safely.

[0.6.0] - 2025-10-23

  • Bug fixing and making sure if start up on after action action is taken.

[0.5.0] - 2025-10-23

  • restructuring to put core controller function into lofigui
  • refactored example 01 to show this currently python only

[0.4.0]

Added

  • Comprehensive test suite with pytest
  • Type hints for all public functions and classes
  • Docstrings for all public API functions
  • HTML escaping by default in print() and table() functions with escape parameter
  • Context manager support for PrintContext class
  • Error handling and meaningful exceptions across all modules
  • Buffer size warning system for PrintContext
  • Development dependencies: pytest, pytest-cov, mypy, flake8
  • CI/CD GitHub Actions workflow
  • MIT LICENSE file
  • Community files: CONTRIBUTING.md, CODE_OF_CONDUCT.md
  • Improved .gitignore

Changed

  • Minimum Python version updated from 3.7 to 3.8 for better type hints support
  • Updated all dependencies to latest versions
  • Improved README with installation instructions and API documentation
  • Fixed changelog filename from changehistory,md to CHANGELOG.md
  • Enhanced example documentation

Security

  • Fixed XSS vulnerabilities by adding HTML escaping to all output functions
  • Added explicit warnings about using raw HTML functions

0.2.3 - 2023-06-XX

Changed

  • Code reformatted with black
  • Minor improvements and bug fixes

0.2.2 - 2023-06-XX

Changed

  • Package improvements

0.2.1 - 2023-06-XX

Changed

  • Minor updates

0.2.0 - 2023-06-XX

Added

  • Additional features and improvements

0.1.0 - 2023-06-08

Added

  • Initial release
  • Basic print functionality
  • Markdown and HTML rendering
  • Table generation with Bulma CSS
  • PrintContext for buffering
  • Example applications (hello world, SVG graph)
  • MVC architecture pattern
  • FastAPI integration examples