# 1.0.0-Beta21

This release brings another round of powerful tools and refinements to the BoxLang community, making development more dynamic and robust than ever. We’ve added new capabilities for debugging and tracing, expanded context-sensitive controls for thread management, and introduced new methods for fluent attachment handling.

For deeper flexibility, our improvements enhance configurability, streamline session control, and add deeper levels of JSON serialization management. Plus, we’ve squashed a wide range of bugs, enhancing stability across database connections, date handling, and runtime compatibility with CFML.

In addition, CSRF Token functionality is now provided via [the `bx-csrf` module](https://forgebox.io/view/bx-csrf).

#### New Feature

[BL-713](https://ortussolutions.atlassian.net/browse/BL-713) Global events for Application events

[BL-720](https://ortussolutions.atlassian.net/browse/BL-720) Implement table filter for dbinfo component

[BL-721](https://ortussolutions.atlassian.net/browse/BL-721) getComponentList() should also return the declared attributes of a component

[BL-722](https://ortussolutions.atlassian.net/browse/BL-722) getFunctionList() should also return the declared arguments of a BIF

#### Improvement

[BL-710](https://ortussolutions.atlassian.net/browse/BL-710) Implement Algorithm Argument for RandRange

[BL-716](https://ortussolutions.atlassian.net/browse/BL-716) Set request class loader into thread as context class loader

[BL-717](https://ortussolutions.atlassian.net/browse/BL-717) Retain directories in dynamic class loader

[BL-728](https://ortussolutions.atlassian.net/browse/BL-728) Add nullIsUndefined flag to control how null variables are handled

[BL-729](https://ortussolutions.atlassian.net/browse/BL-729) Don't default properties with no default value to null when compat has enabled nullIsUndefined scope behavior

#### Bug

[BL-638](https://ortussolutions.atlassian.net/browse/BL-638) Passing a null named argument hides outer bindings by the same name

[BL-641](https://ortussolutions.atlassian.net/browse/BL-641) Missing BIF - CSRFGenerateToken is now supplied with the `bx-csrf` module

[BL-669](https://ortussolutions.atlassian.net/browse/BL-669) Difference in args vs local variables handling

[BL-677](https://ortussolutions.atlassian.net/browse/BL-677) Incompat: metadata annotations from inherited sub classses added to top level class

[BL-679](https://ortussolutions.atlassian.net/browse/BL-679) cfloop collection with an array throws casting exception

[BL-697](https://ortussolutions.atlassian.net/browse/BL-697) argument collection optional param is null

[BL-711](https://ortussolutions.atlassian.net/browse/BL-711) dot access not chaining to static access

[BL-712](https://ortussolutions.atlassian.net/browse/BL-712) NPE when calling non-existent Java method

[BL-715](https://ortussolutions.atlassian.net/browse/BL-715) Duplicate of cfc instance presenting as struct

[BL-718](https://ortussolutions.atlassian.net/browse/BL-718) Key access in StructMapWrapper not working

[BL-719](https://ortussolutions.atlassian.net/browse/BL-719) GetTagData(), GetFunctionData() function not implemented, implement in the COMPAT module

[BL-724](https://ortussolutions.atlassian.net/browse/BL-724) import name restrictions too strict

[BL-726](https://ortussolutions.atlassian.net/browse/BL-726) Assignment not working on static fields of an imported class

[BL-727](https://ortussolutions.atlassian.net/browse/BL-727) Adding two ints uneccessarily returns a long


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://boxlang.ortusbooks.com/readme/release-history/beta-stage/1.0.0-beta20.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
