···2233All notable changes to this project will be documented in this file.
4455+## [0.1.0-alpha.12] - 2026-02-28
66+77+### Fixed
88+99+- **`ifElse` inverted arguments** — `onTrue` was called when predicate was false and vice versa; swapped parameter order and ternary to match naming
1010+- **`matchLiteral` soundness gap** — Split into exhaustive `matchLiteral` (requires all cases) and partial `matchLiteralOr` (with default fallback)
1111+- **Fiber interrupt doesn't cancel async** — Interrupt now calls cleanup on in-flight async operations and force-resolves blocked promises
1212+- **`zip` fiber leak** — When the second effect fails, the first fiber is now interrupted instead of being abandoned
1313+- **`traverseResult` unnecessary cast** — Removed redundant `as unknown as` double-cast; TypeScript narrows correctly
1414+- **Generic guards missing type predicates** — Added explicit `: x is T` annotations to `isDefined`, `isNotNull`, `isNotNullish` (TS 5.5 inference doesn't apply to generics)
1515+- **Interpreter null assertion** — Replaced `result!` with null guard in Blocked handler's next thunk
1616+- **Documentation: `race()` array syntax** — Fixed `race([fast, slow])` to `race(fast, slow)` in testing strategies
1717+- **Documentation: timeout test** — Fixed test to expect `Success(null)` instead of `Failure` on timeout
1818+- **Documentation: `yield*` pseudo-code** — Replaced generator syntax with actual `pipe`/`flatMap` in fiber example
1919+- **Documentation: `all()` return type** — Corrected type comment from tuple to union array
2020+- **Documentation: dead link** — Fixed `/concepts/01-branded-types-and-refinements/` to `/concepts/02-branded-types/`
2121+- **Examples: comma-expression patterns** — Replaced `(sideEffect, expr)` with explicit block bodies in http-client and task-queue
2222+- **Examples: redundant `as` casts** — Removed unnecessary `as MessageError` casts in forest-election story
2323+- **Documentation: task-queue key concepts** — Updated from `fork`/`join` to `allSequential`/`timeout`/`retry`
2424+- **Documentation: unused imports** — Removed unused `fork`/`join` from forest-election story
2525+2626+### Added
2727+2828+- **39 new tests** (261 → 300 total) covering: `ifElse`, `matchLiteral`, `matchLiteralOr`, `mapErr`, `isOk`/`isErr`, `toNullable`, `flatMapOption` edge cases, `accessEff`, `tapEff`, `repeatEff`, `interruptFiber`, `matchExit`, `liftA2Option` both-None, Option Functor laws, Option Monad laws
2929+530## [0.1.0-alpha.11] - 2026-02-28
631732### Added
+1-1
package.json
···11{
22 "name": "purus-ts",
33- "version": "0.1.0-alpha.11",
33+ "version": "0.1.0-alpha.12",
44 "description": "Pure TypeScript effect system with fiber-based concurrency, brands, refinements, and pattern matching",
55 "type": "module",
66 "main": "./dist/index.js",