Skip to content

V0.3.3

Choose a tag to compare

@JohnRichard4096 JohnRichard4096 released this 28 Jun 06:31
ab582f7

Release Summary: AmritaSense v0.3.3

We are pleased to announce the release of AmritaSense 0.3.3, which introduces important documentation enhancements, runtime safety improvements, and a formal policy for AI‑generated content.


🔐 New AIGC Content Licensing Policy (AACLP v1)

We have adopted the AmritaConstant AIGC Content Licensing Policy (AACLP v1) to provide clear guidelines for contributions involving AI‑generated content. This policy:

  • Recognises AI tools as part of the development toolchain, while placing ultimate responsibility on human contributors.
  • Sets out rules for core business logic, documentation, and test cases.
  • Requires all AI‑assisted content to be reviewed by a human before submission.

The full policy is available in POLICY_OF_AIGC and referenced in the README and CONTRIBUTING.md.


📚 Documentation Overhaul

New Guide: External Interrupt Calls (4.4)

A comprehensive new section explains how external systems can safely inject subroutines using call_sub(interrupt=True) and the interpreter lock. This unlocks powerful debugging, monitoring, and dynamic control capabilities.

Expanded SuspendObjectStream API Reference

The reference documentation for SuspendObjectStream has been completely rewritten, covering:

  • Two‑layer interrupt architecture (outer control‑flow suspend vs. inner data‑flow callback).
  • The distinction between stateful suspend points and stateless polling.
  • Detailed public methods, usage patterns, and concurrency safety.

Revised “Execution and Interrupt” (3.4)

The core concepts chapter now clearly distinguishes between:

  • Internal interrupts – suppressible exceptions (Exception) vs. unsuppressible InterruptNotice.
  • External interrupts – driven by call_sub(interrupt=True).
  • Cooperative suspendwait_to_suspend / resume for recoverable pauses.
    A new table summarises the differences, and the panic/recovery flow is now illustrated with a Mermaid diagram.

Other Documentation Updates

  • Added local search to VitePress configuration.
  • Updated Python version support to 3.10 – 3.15 in getting‑started guides.
  • Improved examples and fixed arrow formatting ( replaced by ->) across demos and guides.

⚙️ Runtime Improvements

  • Safe call_sub lock checks: Added a runtime guard that raises a RuntimeError if call_sub is invoked without interrupt=True when the interpreter lock is not already held, preventing accidental misuse.
  • Centralised reset on InterruptNotice: The reset() method now handles cleanup (clearing pointer, return‑address stack, and jump marks) for better maintainability.
  • Version bump: amrita-sense now at 0.3.3.

🧪 CI and Testing

  • Updated the CI script comment to reflect the pipeline steps.
  • Expanded test coverage for the new lock check and interrupt reset behaviour.

🗑️ Miscellaneous

  • Demos 03_dependency_injection.py, 06_try_catch.py, 08_interrupt_suspend.py, 12_inline_workflow.py, and 13_ret_far.py now use -> consistently for visual clarity.
  • The CODE_OF_CONDUCT.md contact email has been updated.

Pull Requests


We encourage all users to review the new AIGC policy and the enhanced documentation, especially the external interrupt and suspend‑object‑stream sections. Upgrade to 0.3.3 via pip:

pip install --upgrade amrita-sense

Happy workflows! 🚀

Full Changelog: 0.3.2...0.3.3