# Changelog
All notable changes to the Colang language and runtime will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [2.0-beta.6] - 2025-01-16
### Added
* Add support for llama-3.2 models ([#877](https://github.com/NVIDIA/NeMo-Guardrails/pull/877)) by @schuellc-nvidia
* Add `it finished` utility flow in core.co library ([#913]) by @schuellc-nvidia
## [2.0-beta.5] - 2024-11-19
### Added
* Prompt template name to verbose logging ([#811](https://github.com/NVIDIA/NeMo-Guardrails/pull/811)) by @schuellc-nvidia
* New configuration setting to change UMIM event source id ([#823](https://github.com/NVIDIA/NeMo-Guardrails/pull/823)) by @sklinglernv
* New attention module to standard library ([#829](https://github.com/NVIDIA/NeMo-Guardrails/pull/829)) by @sklinglernv
* Passthrough mode support ([#779](https://github.com/NVIDIA/NeMo-Guardrails/pull/779)) by @Pouyanpi
### Fixed
* Activation of flows with default parameters ([#758](https://github.com/NVIDIA/NeMo-Guardrails/pull/758)) by @schuellc-nvidia
* ``pretty_str`` string formatting function ([#759](https://github.com/NVIDIA/NeMo-Guardrails/pull/759)) by @schuellc-nvidia
* Consistent uuid generation in debug mode ([#760](https://github.com/NVIDIA/NeMo-Guardrails/pull/760)) by @schuellc-nvidia
* Avatar posture management function in standard library ([#771](https://github.com/NVIDIA/NeMo-Guardrails/pull/771)) by @sklinglernv
* Nested ``if else`` construct parsing ([#833](https://github.com/NVIDIA/NeMo-Guardrails/pull/833)) by @radinshayanfar
* Multiline string values in interaction history prompting ([#765](https://github.com/NVIDIA/NeMo-Guardrails/pull/765)) by @radinshayanfar
## [2.0-beta.4] - 2024-10-02
### Fixed
* LLM prompt template ``generate_value_from_instruction`` for GPT and LLama model chat interface ([#775](https://github.com/NVIDIA/NeMo-Guardrails/pull/775)) by @schuellc-nvidia
## [2.0-beta.3] - 2024-09-27
### Added
* Support for new Colang 2 keyword `deactivate` ([#673](https://github.com/NVIDIA/NeMo-Guardrails/pull/673)) by @schuellc-nvidia
* Bot configuration as variable `$system.config` ([#703](https://github.com/NVIDIA/NeMo-Guardrails/pull/703)) by @schuellc-nvidia
* Basic support for most OpenAI and LLame 3 models ([#709](https://github.com/NVIDIA/NeMo-Guardrails/pull/709)) by @schuellc-nvidia
* Interaction loop priority levels for flows ([#712](https://github.com/NVIDIA/NeMo-Guardrails/pull/712)) by @schuellc-nvidia
* CLI chat debugging commands ([#717](https://github.com/NVIDIA/NeMo-Guardrails/pull/717)) by @schuellc-nvidia
### Changed
* Merged (and removed) utils library file with core library ([#669](https://github.com/NVIDIA/NeMo-Guardrails/pull/669)) by @schuellc-nvidia
### Fixed
* Fixes a event group match bug (e.g. `match $flow_ref.Finished() or $flow_ref.Failed()`) ([#672](https://github.com/NVIDIA/NeMo-Guardrails/pull/672)) by @schuellc-nvidia
* Fix issues with ActionUpdated events and user utterance action extraction ([#699](https://github.com/NVIDIA/NeMo-Guardrails/pull/699)) by @schuellc-nvidia
## [2.0-beta.2] - 2024-07-25
This second beta version of Colang brings a set of improvements and fixes.
### Added
Language and runtime:
* Colang 2.0 syntax error details ([#504](https://github.com/NVIDIA/NeMo-Guardrails/pull/504)) by @rgstephens
* Expose global variables in prompting templates ([#533](https://github.com/NVIDIA/NeMo-Guardrails/pull/533)) by @schuellc-nvidia
* `continuation on unhandled user utterance` flow to the standard library (`llm.co`) ([#534](https://github.com/NVIDIA/NeMo-Guardrails/pull/534)) by @schuellc-nvidia
* Support for NLD intents ([#554](https://github.com/NVIDIA/NeMo-Guardrails/pull/554)) by @schuellc-nvidia
* Support for the `@active` decorator which activates flows automatically ([#559](https://github.com/NVIDIA/NeMo-Guardrails/pull/559)) by @schuellc-nvidia
Other:
* Unit tests for runtime exception handling in flows ([#591](https://github.com/NVIDIA/NeMo-Guardrails/pull/591)) by @schuellc-nvidia
### Changed
* Make `if` / `while` / `when` statements compatible with python syntax, i.e., allow `:` at the end of line ([#576](https://github.com/NVIDIA/NeMo-Guardrails/pull/576)) by @schuellc-nvidia
* Allow `not`, `in`, `is` in generated flow names ([#596](https://github.com/NVIDIA/NeMo-Guardrails/pull/596)) by @schuellc-nvidia
* Improve bot action generation ([#578](https://github.com/NVIDIA/NeMo-Guardrails/pull/578)) by @schuellc-nvidia
* Add more information to Colang syntax errors ([#594](https://github.com/NVIDIA/NeMo-Guardrails/pull/594)) by @schuellc-nvidia
* Runtime processing loop also consumes generated events before completion ([#599](https://github.com/NVIDIA/NeMo-Guardrails/pull/599)) by @schuellc-nvidia
* LLM prompting improvements targeting `gpt-4o` ([#540](https://github.com/NVIDIA/NeMo-Guardrails/pull/540)) by @schuellc-nvidia
### Fixed
* Fix string expression double braces ([#525](https://github.com/NVIDIA/NeMo-Guardrails/pull/525)) by @schuellc-nvidia
* Fix Colang 2 flow activation ([#531](https://github.com/NVIDIA/NeMo-Guardrails/pull/531)) by @schuellc-nvidia
* Remove unnecessary print statements in runtime ([#577](https://github.com/NVIDIA/NeMo-Guardrails/pull/577)) by @schuellc-nvidia
* Fix `match` statement issue ([#593](https://github.com/NVIDIA/NeMo-Guardrails/pull/593)) by @schuellc-nvidia
* Fix multiline string expressions issue ([#579](https://github.com/NVIDIA/NeMo-Guardrails/pull/579)) by @schuellc-nvidia
* Fix tracking user talking state issue ([#604](https://github.com/NVIDIA/NeMo-Guardrails/pull/604)) by @schuellc-nvidia
* Fix issue related to a race condition ([#598](https://github.com/NVIDIA/NeMo-Guardrails/pull/598)) by @schuellc-nvidia
## [2.0-beta] - 2024-05-08
### Added
* [Standard library of flows](https://docs.nvidia.com/nemo/guardrails/colang-2/language-reference/the-standard-library.html): `core.co`, `llm.co`, `guardrails.co`, `avatars.co`, `timing.co`, `utils.co`.
### Changed
* Syntax changes:
* Meta comments have been replaced by the `@meta` and `@loop` decorators:
* `# meta: user intent` -> `@meta(user_intent=True)` (also user_action, bot_intent, bot_action)
* `# meta: exclude from llm` -> `@meta(exclude_from_llm=True)`
* `# meta: loop_id=` -> `@loop("")`
* `orwhen` -> `or when`
* NLD instructions `""""""` -> `...""`
* Support for `import` statement
* Regular expressions syntax change `r""` -> `regex("")`
* String expressions change: `"{{}}"` -> `"{}"`
* Chat CLI runtime flags `--verbose` logging format improvements
* Internal event parameter renaming: `flow_start_uid` -> `flow_instance_uid`
* Colang function name changes: `findall` -> `find_all` ,
* Changes to flow names that were previously part of `ccl_*.co` files (which are now part of the standard library):
* `catch colang errors` -> `notification of colang errors` (core.co)
* `catch undefined flows` -> `notification of undefined flow start` (core.co)
* `catch unexpected user utterance` -> `notification of unexpected user utterance` (core.co)
* `poll llm request response` -> `polling llm request response` (llm.co)
* `trigger user intent for unhandled user utterance` -> `generating user intent for unhandled user utterance` (llm.co)
* `generate then continue interaction` -> `llm continue interaction` (llm.co)
* `track bot talking state` -> `tracking bot talking state` (core.co)
* `track user talking state` -> `tracking user talking state` (core.co)
* `track unhandled user intent state` -> `tracking unhandled user intent state` (llm.co)
* `track visual choice selection state` -> `track visual choice selection state` (avatars.co)
* `track user utterance state` -> `tracking user talking state` (core.co)
* `track bot utterance state` -> No replacement yet (copy to your bot script)
* `interruption handling bot talking` -> `handling bot talking interruption` (avatars.co)
* `generate then continue interaction` -> `llm continue interaction` (llm.co)
## [2.0-alpha] - 2024-02-28
[Colang 2.0](https://docs.nvidia.com/nemo/guardrails/colang-2/overview.html) represents a complete overhaul of both the language and runtime. Key enhancements include:
### Added
* A more powerful flows engine supporting multiple parallel flows and advanced pattern matching over the stream of events.
* A standard library to simplify bot development.
* Smaller set of core abstractions: flows, events, and actions.
* Explicit entry point through the main flow and explicit activation of flows.
* Asynchronous actions execution.
* Adoption of terminology and syntax akin to Python to reduce the learning curve for new developers.