**New Features**
* Runtime font accessors and new symbol fonts for text, launcher, statusbar, and shared icons.
* Added font height base setting to device.properties
* Text fonts now have 3 sizes: small, default, large
**Improvements**
* Renamed `UiScale` to `UiDensity`
* Statusbar, toolbar and many UI components now compute heights and spacing from fonts/density.
* SSD1306 initialization sequence refined for more stable startup.
* Multiple image assets replaced by symbol-font rendering.
* Many layout improvements related to density, font scaling and icon scaling
* Updated folder name capitalization for newer style
- Add kernel support for SPI driver
- Add kernel support for UART driver
- Implemented ESP32 UART kernel driver
- Update existing UART-related code in Tactility to use new kernel driver
- Remove UART from tt::hal::Configuration
- Remove tt_hal_uart functionality but keep functions for now
- Update devicetrees for UART changes
- Kernel mutex and recursive mutex: improved locking API design
- Other kernel improvements
- Added device_exists_of_type() and device_find_by_name()
* **New Features**
* Added public accessors for querying module/device start and ready state.
* **Refactor**
* Internal state moved to opaque internal objects; module/device/driver initializers now explicitly initialize internal pointers.
* Lifecycle handling updated to construct/destruct internal state and use accessors.
* **Tests**
* Tests updated to use public accessors and explicit construct/destruct lifecycle calls.
* **Chores**
* Test build/include paths and small metadata updated.
* **New Features**
* Expanded public device and driver APIs (accessors, sync, lifecycle, binding) and a module construct+start helper.
* Added kernel symbol registry and new exported symbols (lvgl, C++ nothrow, I2S APIs, additional math funcs).
* **Refactor**
* Renamed device traversal APIs for consistency (device_for_each*).
* Moved inline helpers to explicit public declarations.
* **Chores**
* Replaced several shell release scripts with Python-based SDK release tooling.
* **Style**
* Header naming consistency fixes.
* **New Features**
* Centralized module management with global symbol resolution
* Level-aware logging with colored prefixes and millisecond timestamps
* **Breaking Changes**
* ModuleParent hierarchy and getModuleParent() removed
* Logging API and adapter model replaced; LogLevel-driven log_generic signature changed
* **Improvements**
* Unified, simplified module registration across build targets
* Tests updated to reflect new module lifecycle and global symbol resolution
* **New Features**
- Adds module symbol support and per-module symbol tables, including LVGL symbol exports moved into a dedicated table.
* **API**
- Adds symbol-resolution APIs and an accessor to enable dynamic lookup between modules.
* **Bug Fixes / Chores**
- Explicitly initializes module symbol pointers across device and platform modules to avoid uninitialized state.
* **Tests**
- Updates tests to account for symbol pointer initialization.
* **New Features**
* Added a standalone LVGL module and enabled LVGL support in the simulator for richer local UI testing.
* **Refactor**
* HAL and LVGL split into distinct modules; startup and device attach/detach flows reorganized for clearer lifecycle management.
* Public APIs tightened with clearer nullability/documentation.
* **Bug Fixes**
* More consistent LVGL start/stop and device attach/detach behavior for improved stability.
* **New Features**
* Added a HAL device module providing device enumeration, type queries and a HAL↔kernel bridge.
* **Improvements**
* Integrated HAL module into startup; standardized module names, includes and lifecycle logging; safer file append behavior; broader build support.
* **API Changes**
* Driver lifecycle now uses explicit add/remove semantics; C and HAL device type/lookup APIs clarified.
* **Chores**
* Added module README and Apache‑2.0 license; updated build configuration to include the new module.
* **Fixes**
* Updated tests and object file handling to behave correctly.
* **New Features**
* Plugin-style modules for platforms and devices with start/stop lifecycle and a runtime-consumable device tree array.
* **Refactor**
* Consolidated initialization into a kernel/module startup flow.
* Generated devicetree artifacts moved to the build Generated directory.
* **Changes**
* Removed legacy no-op registration hooks and I2C lock/unlock wrappers.
* Driver ownership and private state moved to explicit module/owner model.
* Added ERROR_NOT_ALLOWED error code.
* **Documentation**
* Added new C coding style guide detailing naming conventions for files, directories, macros, constants, variables, functions, and type definitions with illustrative examples.
* Updated C++ coding style documentation with clarifications on C naming conventions and header directory organization patterns.
* **Refactor**
* Updated header include paths throughout the codebase to use lowercase naming conventions consistently.
* **New Features**
* Time and delay utilities added (ticks, ms, µs); SD card now uses an expansion-header CS pin; HTTP downloads warn when run on the GUI task and yield to avoid blocking.
* **Bug Fixes / Reliability**
* Many hard-crash paths converted to guarded checks to reduce abrupt termination and improve stability.
* **Tests**
* Unit tests added to validate time and delay accuracy.
* **Chores**
* License header and build/macro updates.
Replace LGPL from past commit with Apache License 2.0 for the newly created projects:
- in Platforms/*
- TactilityKernel
Add license headers to source code in:
- in Platforms/*
- TactilityKernel
- TactilityFreeRtos
Updated LICENSE.md
**New features**
- Created a devicetree DTS and YAML parser in Python
- Created new modules:
- TactilityKernel (LGPL v3.0 license)
- Platforms/PlatformEsp32 (LGPL v3.0 license)
- Platforms/PlatformPosix (LGPL v3.0 license)
- Tests/TactilityKernelTests
Most boards have a placeholder DTS file, while T-Lora Pager has a few devices attached.
**Licenses**
Clarified licenses and copyrights better.
- Add explanation about the intent behind them.
- Added explanation about licenses for past and future subprojects
- Added more details explanations with regards to the logo usage
- Copied licenses to subprojects to make it more explicit