## SanderMertens/flecs — v4.1.4…v4.1.5

_193+ commits._

### Features
- **#2010 Add missing comments to Flecs headers** (5b77ecf)
- **Add fuzzing tests** (d7426d1)
- **Add more fuzzing test cases** (296d1a8)
- **Add more fuzzing tests** (521c4cb)
- **Add writ of battle to the README** (9ed0f05)
- **Refactor duplicated hook logic to new type_info API** (b7c2b40)
- **Add more fuzzing test cases** (c03a3ec)
- **Add new fuzzing test cases** (86d4fea)
- **Add fuzzing test cases** (d5617d4)
- **#1961 Add (OnInstantiate, DontInherit) trait to Parent component** (4e22b78)
- **Add test that repros observer cache invalidation** (e982ae1)
- **Make sure to add Script tag to script entities with Parent hierarchies** (cbfa96b)
- **Add reproducer test for script assert** (f1549c2)
- **Add tests for prefab child id offsets** (4c93aad)
- **#1939 Add ecs_query_get_groups() function** (882a5a4)
- **#1937 Add validation check on whether system .callback or .run is set** (792a357)
- **#1936 Add dedicated phase member to ecs_system_desc_t** (02295a5)
- **#1703 Add component tuple getters to C++ API** (ab056fb)
- **#1932 Add Prefab to children of entity after adding Prefab** (63f506f)
- **Add dot(), normalize(), length(), length_sq() to script math** (7d8a0e5)
- **Add perlin noise functions to flecs script** (f8f9306)
- **Update examples in Hierarchy manual to use new API** (379af73)
- **#1926 Add perlin noise and other math functions to flecs script** (3cf5ac2)

### Fixes
- **#2019 Fix issue where ref could return wrong value during recursive entity cleanup** (4b9dbf3)
- **#2017 Fix incorrect assert in alert builder** (9dfb8c0)
- **#2016 Fix try_get_mut methods calling get_mut, get_mut_second with wrong return type** (1c3bba1)
- **#2015 Fix ecs_vec_fini type mismatch in JSON deserializer** (9b97c96)
- **#2014 Fix incorrect unit prefix for Femto unit** (7f07bdc)
- **#2013 Fix issue where queries incorrectly detected if entity- variables are used before table- variables** (43b2d24)
- **#2012 Fix issue in JSON serializer where wrong pair string was appended** (7bf262b)
- **#2011 Fix issue with deferred calls to modified() for DontFragment components** (c995d22)
- **#2009 Fix incorrect comments in term builder header** (39ecda8)
- **#2008 Fix issue where observer was not always called for deferred set of DontFragment component** (2ea03ac)
- **#2007 Fix issue where it wasn't possible to inherit from entity with Relationship trait** (fab63ca)
- **#2006 Fix issue with cloning entity symbols** (b189eae)
- **#2005 Fix API doc comments for type_index()/column_index()** (bb07a08)
- **#2004 Fix issue where observers were not always called for deferred DontFragment operations** (c646f92)
- **#2003 Fix issue with removing sparse pair with recycled target** (16fc517)
- **Fix issue with determining alignment of 64bit primitive types on 32bit platforms** (1c0be3d)
- **Fix issue where allocator wasn't used when initializing template using vector** (115c75d)
- **Fix issue with escaping characters in entity names** (f035b20)
- **Fix double-free in script template using cleanup** (809c6b0)
- **Fix flaky test case in query.Cached suite** (e423fad)
- **#1998 Fix cr != NULL assert in observable code** (e51526c)
- **#1996 Fix issue in script parser with Windows line endings** (803180c)
- **#1994 Fix issue with DontFragment and not terms if no entities have the DontFragment component** (aab726d)
- **#1817 Fix issue with enum reflection on VS 19.44** (0a15ebb)
- **#1950 Fix issue with overriding existing exclusive relationships** (3d5a593)
- **#1991 Fix issue where source wasn't correctly populated for optional observer term** (eccd863)
- **#1955 Fix issue where emscripten build fails without REST addon** (3081b3f)
- **#1989 Fix issue with printing stack trace on Windows** (85b373a)
- **#1984 Fix issue with combining relationship constraints with component disabling** (786ff39)
- **#1983 Fix issue where on_group_delete was called without matching on_group_create** (dcb9292)
- **#1980 Fix issue with recursively setting ParentDepth** (4069f83)
- **#1979 Fix issue with deleting sparse component while deferring is suspended** (c94331d)
- **#1978 Fix issue where ParentDepth was incorrectly updated after reparenting** (ad10d23)
- **#1977 Fix issue with cleaning up hierarchy with Parent component and traversable entity** (9ecf65d)
- **#1975 Fix issue with observer up traversal and parent hierarchies** (449f1b0)
- **#1974 Fix issue w/cascade and deleting empty tables** (8c33e18)
- **#1973 Fix issues with adding Prefab tag after hierarchy is created** (018313b)
- **#1970 Fix issue with using has()/get() from hooks** (900f508)
- **Fix potential crashes where string variables were passed to format string arguments of assert macros** (dbce020)
- **Fix crash in assert if entity name with mismatching template delimiters is also an invalid format string** (9c35ba3)
- **#1968 Fix script parser corruption when creating new expression with missing entity statement** (69ca642)
- **Fix invalid free when constructing script templates** (cf55069)
- **Fix issue with out-of-bounds copy in meta member parsing** (31c4df9)
- **Fix issue with dereferencing code pointer after parsing invalid comment** (7369bb5)
- **#1966 Fix issue where adding multiple tags inside of new expression would fail** (ab7cfae)
- **#1965 Fix cleanup issue with Parent hierarchy and (OnDeleteTarget, Delete) policy** (f71e771)
- **Fix script crash when writing past the array bounds in initializers** (c068b0d)
- **Fix memory leaks on script parsing errors** (1eb5e46)
- **Fix memory leaks when parsing invalid char/string literals** (fffa510)
- **Fix issues where script error would not throw error message** (689adf8)
- **#1957 Fix issue with resolving enum type in binary expressions** (a7fba6c)
- **Fix issue where deleting mixed trees would not set EcsIdMarkedForDelete flag** (3899dbe)
- **Fix issue with cleaning up mixed ChildOf/Parent trees** (b87d468)
- **Fix crash when removing Parent component in batch on entity that did not have Parent** (e26ad67)
- **Fix issue with removing component in one stage, and setting it in another stage** (9f927ec)
- **#1953 Fix issue with deferred setting of Parent to deleted parent entity with observer** (fc8ce32)
- **#1952 Fix issue with deferred setting of Parent to deleted parent entity** (322f208)
- **Fix issue with updating parent record administration** (5b24fe7)
- **#1946 Fix issue where deferred setting after removing on a prefab instance could fail** (f28e4aa)
- **#1944 Fix issue with setting parent component in command batch** (841f5cb)
- **Fix component inheritance example in query manual** (d057567)
- **#1943 Fix issues with sparse components and overriding** (8bf2084)
- **#1940 Fix issue where on_group_create wasn't called for default group** (7d53172)
- **#1934 Fix issue with recycled prefabs with children with Parent components** (baf9555)
- **#1933 Fix error when ECS_STRUCT sees struct with only private members** (5d2f760)
- **#1931 Fix issue where instance children with Parent component didn't get DontFragment components** (a0865a4)
- **Fix issue where parent was serialized incorrectly for children with Parent component** (6f7f224)
- **Fix crash when serializing query with only ChildOf term to JSON** (4762811)
- **#1928 Fix race condition in component registration code** (92cd08c)
- **Fix issues with ecs_new_w_parent and deferred mode** (117297b)
- **#1924 Fix issue where OrderedChildren OnRemove observer conflicts with cleanup logic** (e90d9d0)

### Backend
- **Update README.md** (d7d0c4f)
- **#2020 Allow for modifying reflection of native types after they have been used** (f058ba3)
- **Update version number to 4.1.5** (124dd92)
- **Update capsule art in README** (37bcca0)
- **Prevent CI from triggering twice when creating a PR** (328974e)
- **#2002 Remove ptrs cache from cached queries** (b5544a5)
- **Implement cycle detector for reflection framework** (2b18804)
- **Cleanup code** (63e1b8d)
- **Prevent modifying reflection data after component has been used** (5f2ea59)
- **Detect cycles in prefab instantiation code** (0d92039)
- **Reject singleton kind on non-singleton script entities** (3693ff1)
- **Harden script entity path handling for malformed input** (26b1b3f)
- **Harden tokenizer bounds checks for malformed script tokens** (6d9bbba)
- **Skip recursive RTT struct member hooks** (f27b790)
- **Handle trailing escape in script identifiers** (d82f590)
- **Harden malformed script hierarchy handling** (43aae62)
- **#2000 Implement set_group() for systems** (8d627fc)
- **#1999 Infer system type from function argument list passed to each()** (446fbac)
- **#1997 Implement world.each([](flecs::entity e) {}) method for iterating all entities in the world** (52532a1)
- **#1995 Reduce the binary overhead of component registration** (f0d8636)
- **#1988 Allow components to be referred to by typename in query DSL** (939da53)
- **#1987 Decrease binary size of component registration** (c1fe3f4)
- **#1985 Implement type_info endpoint** (94a4d41)
- **#1982 Make sure that components with on_replace hooks can be assigned from scripts** (e76dc9e)
- **#1981 Bugfixes** (93dbe39)
- **Enforce that hooks cannot be called if it has a corresponding INVALID flag set** (8d9d432)
- **Deep-copy script lifecycle component state** (464d6cb)
- **Refactor const var teardown to clear ownership state** (c429884)
- **Make script parameter cleanup idempotent** (bd339cb)
- **Don't crash on missing entity for variable component evaluation** (795a7bb)
- **Import FLECS_SCRIPT_MATH when available in fuzzer test cases** (5bdc55a)
- **Don't crash on deeply nested script scopes** (456067f)
- **Don't crash on invalid string assignments in meta cursor** (b200c81)
- **Don't crash on invalid reflected array/vector element types** (819b7f9)
- **Improve robustness of script visitor depth handling** (34a92f3)
- **Improve robustness of script recursion depth handling** (188df68)
- **#1964 Prevent adding Parent component as tag in script** (21cc1ea)
- **#1958 Call init_builtin_components() at the end of world reset** (2a67529)
- **Improve robustness of whitespace/comment parsing** (a376f85)
- **Don't crash on invalid recursive type definitions** (73ef028)
- **Improve robustness of script number parsing** (b802fa7)
- **Improve robustness of script comment parsing** (ab5aa57)
- **#1951 Script improvements** (5ea9920)
- **Improve error message of invalid Parent component assert** (511ee01)
- **Replace parent validity checks in observable code with asserts** (ce8e6da)
- **#1947 Journaliing improvements** (454000f)
- **#1948 Allow ecs_get_target() to be used with value pairs** (0f94df7)
- **#1898 EntitiesComponents.md fixes** (9a194f9)
- **#1942 Make query_base constructor const** (23cf8bf)
- **#1941 Remove duplicate line in rest addon** (a2150d2)
- **#1938 Update meta utils macros so types can be used with fwd declarations** (2b00bc6)
- **Implement binary vector operations with operands of the same type** (fdb09a9)
- **Implement binary vector operations** (0d0571e)
- **Implement vector functions for Flecs script** (6cdb47f)
- **Allow for children to change hierarchy storage** (a50a921)
- **#1923 Don't create member entities when using C++ component::member API** (7b30a54)

_Recap by [Repo Wrapped](https://repowrapped.com/gh/SanderMertens/flecs?utm_source=github-action)._