Change Log
==========
2.1.1 (22/02/2026)
------------------
- Add cross-call-boundary taint propagation for multi-depth function chains
  - Derived values (f-strings, mutations) passed to sub-functions are now tracked and redacted

2.1 (22/02/2026)
----------------
- Add stack trace locals redaction for Sensitive values and sanitize_params
- Three-layer taint analysis: name-based, bytecode dataflow, and value checking
  - Parameter variables redacted by name (works for any type)
  - Derived variables (f-strings, containers) redacted via bytecode dataflow analysis
  - Transformations that discard the secret (e.g. len()) preserved for debugging
  - Coincidental same-value variables not falsely redacted
- Update README with sanitization examples and async sample output

2.0 (21/02/2026)
----------------
- Add async/await support for decorators
- Add Sensitive value sanitization to redact sensitive data from logs
- Add __tracebackhide__ support for cleaner tracebacks in pytest
- Refactor: modularize decorator.py into base.py and decorators.py
- Fix: rewrite custom_excepthook with proper file write mode and error handling
- Modernize GitHub Actions CI workflows
- Migrate build configuration to pyproject.toml
- Use setuptools-scm for dynamic versioning from git tags
- Drop support for Python < 3.9

1.2 (13/06/2022)
----------------
- Add anti log the same exception twice
- Add custom traceback
- Now the module can be excluded from the traceback

1.1 (09/06/2022)
----------------
- Add unit testing and tested on python 3.6 to 3.10
- Stable release of the package

1.0b2 (21/05/2022)
------------------
- Change the decorator from camelCase to snake_case
- Treat the no parenthesis decorator as an empty parenthesis decorator

1.0b1 (21/05/2022)
------------------
- First Release