V0.2.3
Release v0.2.3
🔧 Demos & Documentation Overhaul
- All demo scripts simplified — removed unnecessary trailing
NOP, reduced reliance on return‑value dependency injection, and converted many nodes to parameter‑less or state‑based patterns. Demos are now shorter, clearer, and focus on one concept at a time. - Inline workflow pattern refined — the
SimpleWorkflowdemo now usesself.valueas shared state instead of passing return values between nodes. Documentation clarifies that node return values do not automatically flow to the next node’s DI context; use instance fields for cross‑node state. - Manual stack management re‑envisioned —
RET_FARis no longer shown as a return value inside a node. The new demo and guide demonstrate manual push → GOTO → RET_FAR pop‑and‑return, giving you explicit control over the return address stack without relying onCALL/call_sub.
🐍 Python Version Support
- Added Python 3.14 to the CI matrix.
- Constrained
requires-pythonto>=3.10, <3.15(explicitly disallows future 3.15 until tested).
🧹 Internal Improvements
AliasNodenow accepts anyBaseNode(not onlyNode), making it more flexible.NodeComposeimplements__len__, fixing several pointer‑advancement corner cases.WorkflowInterpreter._advance_pointeruses__len__and boolean checks, improving robustness when entering nested containers.- Cleaned up type annotations and imports.
📝 Documentation Updates
- English and Chinese guides for inline workflows and manual stack management synchronised with the new demos.
- API reference examples now use
NodeTypeexplicitly where synchronous lambdas are required.
Upgrade
pip install --upgrade amrita-sense
Full Changelog: 0.2.2...0.2.3