๐ Release Notes - v0.3.11¶
TaipanStack v0.3.11 is here! This rigorous release focuses heavily on DevSecOps, Security hardening, and achieving Complete Type-Safety. Through an extensive PR audit, we eliminated legacy type aliases, hardened our Circuit Breaker against micro-chaos, and enforced strict protection against ReDoS and execution exceptions.
๐ก๏ธ Security¶
- Fix (ReDoS): Prevented unhandled regex backreference processing in
sanitize_filenameavoiding string manipulation DoS vectors (PR #294). - Fix (Recursion Error): Prevented
RecursionErrorDoS in_mask_datawhen handling deeply nested JSON payloads during logging (PR #284). - SAST: Engineered and deployed custom Semgrep rules into the CI/CD pipeline to natively detect Command Injection, XXE, and DoS patterns (PR #272).
- Hardening (JWT): Hardened the JWT parsers against malformed input types (catching
TypeErrorandAttributeError) using intensive Hypothesis fuzzing (PR #275).
๐๏ธ Resilience¶
- Chaos Mitigation (CircuitBreaker): Vastly hardened the
HALF_OPENstate in theCircuitBreaker. Protected the state transitions with strict concurrency limits and locks to mitigate "Thundering Herd" API onslaughts upon recovery (PR #285).
๐งน Refactoring & Strict Typing¶
- Type-Safety: Enforced strict static typing protocols across core decorators utilizing
ParamSpecandConcatenate(PR #288). - Result APIs: Adopted native
resultlibrary methods, formally deprecating the legacyunwrap_orwrappers for improved ecosystem compatibility (PR #273). - Modernization: Upgraded
core/optimizations.pyto leverage native Python 3.10+match/casestructural pattern matching (PR #283). - Complexity: Halved cyclomatic complexity in core security guards, boosting maintainability and readability (PR #270).
- Resilience Refactor: Modernized type aliases and unions in the resilience module to fulfill the newest Pyright and Mypy strict modes (PR #274).
๐งช QA / Testing¶
- Test Coverage: Ramped up code coverage in the sanitizers module and verified retry loop exhaustion cases (PR #286, #268). Total tests remain comprehensively tracked at 1006.
A huge thank you to all contributors who participated in the DevSecOps audit to bring this release to perfection!