Skip to content

Releases: latchfield/vulcan-core

v1.2.2 - CI Updates

10 Feb 01:22
5dacf72

Choose a tag to compare

Another housekeeping release, updating various dependencies and improving the project build process.

What's Changed

  • Migrate to LangChain 1.x interfaces
  • Relax dependency specs
  • Add multi-version Python testing to CI
  • Add "just" tool and recipes
  • Change package ecosystem from pip to uv in dependabot
  • Use hatch-vcs for dynamic versioning in builds
  • Modify publish workflow error messaging for clarity
  • Remove compatibility test action and integrate into tests
  • Add version parsing utility for better Python version management
  • Update Dockerfile to include zstd for improved act build performance
  • Modify .gitignore to include utils directory
  • Adjust VSCode extensions recommendations

Full Changelog: v1.2.1...v1.2.2

v1.2.1 - Dependency updates

03 Feb 00:36
9289833

Choose a tag to compare

Summary

This is a housekeeping release, updating various dependencies and improving the project build process.

What's Changed

  • Migrate package manager to uv, update devcontainer and GHA build by @segfly in #90
  • Bump langchain-openai from 0.3.27 to 0.3.28 in the python-minor group by @dependabot[bot] in #79
  • Bump pip from 25.3 to 26.0 by @dependabot[bot] in #92
  • Bump actions/checkout from 6.0.1 to 6.0.2 in the actions-minor group across 1 directory by @dependabot[bot] in #93

Full Changelog: v1.2.0...v1.2.1

v1.2.0 - Explainability Reporting

14 Jul 19:44
9331f70

Choose a tag to compare

Vulcan v1.2.0 Explainability Reports are Here!

In this release, we're excited to announce Vulcan's latest feature: explainability reporting! 🎉

Vulcan's explainability features allow AI application developers and operators deeper insight into how their AI-powered systems make decisions. Instead of using large complex prompts with opaque LLM models, Vulcan's approach combines rule-based logic with LLM microprompts, allowing for vastly improved traceability in AI-powered decision-making processes.

Enabling explainability reporting is easy! First, create your Facts and Rule definitions:

engine = RuleEngine()

engine.rule(
    name="Order more apples if delicious",
    when=condition(f"Are {Inventory.apple_kind} considered delicious by most people?"),
    then=action(partial(QueuedOrder, apples=50)),
)

Then set your initial Fact state and evaluate your rules with auditing enabled. A report will be available when the evaluation completes.

engine.fact(Inventory(apples=5, apple_kind="fuji"))

engine.evaluate(audit=True)
engine.yaml_report()
report:
  iterations:
  - id: 0
    timestamp: '2025-07-14T16:07:14.742891Z'
    elapsed: 2.441
    matches:
    - rule: 205a7ab3:Order more apples if delicious
      timestamp: '2025-07-14T16:07:14.742920Z'
      elapsed: 2.441
      evaluation: True = Are {Inventory.apple_kind|fuji|} considered delicious by most people?
      consequences:
        QueuedOrder.apples: 50
      rationale: Fuji apples are generally considered delicious by most people due to their sweetness and crisp texture.

Congratulations! 🎉
With Vulcan, you just took your first step towards better AI repeatability and explainability!

→ Learn more about Vulcan Explainability Reports

In addition to new features, several bug and performance improvements coincide with this release. Below is the complete list of changes:

What's Changed

  • Fix for KeyError if some facts are missing by @segfly in #62
  • Fix for AICondition inversion error by @segfly in #69
  • Improved resliency of lambda parsing and argument extraction by @segfly in #70
  • Improve internal prompting techniques for AI rules by @segfly in #72
  • New explainability reporting feature by @segfly in #75
  • Prevent rules interfering with one another in the same iteration by @segfly in #77

Full Changelog: v1.1.5...v1.2.0

v1.1.5 - Fix for REPL and vscode interactive window

17 Jun 15:31
eccd7c7

Choose a tag to compare

Bugfix for lambdas for situations where source files are not available.

What's Changed

  • Switched lambda source retrieval to use inspect.findsource by @segfly in #54

Full Changelog: v1.1.4...v1.1.5

v1.1.4 - Reworked hotfix for incomplete lambda parsing fix

14 Jun 22:58
963d6a0

Choose a tag to compare

This is a hotfix for the issue preventing the same set of rules from being (re)loaded into multiple rule engine instances (#44 and #46). The previous fix in #45 was incomplete, as the test case covered repeated invocations, but not looping invocation.

What's Changed

  • Fixed lambda parser tracking for looping cases by @segfly in #47

Full Changelog: v1.1.3...v1.1.4

v1.1.3 - Hotfix for lambda reparsing bug

14 Jun 13:55
4faf63d

Choose a tag to compare

This is a hotfix for the issue preventing the same set of rules from being (re)loaded into multiple rule engine instances (#44). The bug was introduced with the ability to parse multiple lambda expressions on the same source line as a fix for #28.

What's Changed

  • Fix for lambda reparsing idempotency by @segfly in #45

Full Changelog: v1.1.2...v1.1.3

v1.1.2 - Lambda Bugfixes and LLM Retries

13 Jun 22:12
7b8f460

Choose a tag to compare

This release fixes a number of nuisance and edge-case issues with lambda expressions. It also introduces a retry mechanism to improve LLM reliability in the event of refusal or network issue.

What's Changed

  • LLM retry mechanism for AI conditions by @segfly in #43
  • Bump various dependencies
  • Bugfix for #20 - Added ignore hint and pinned specific patch version of pyright. by @segfly in #21
  • Fix for #32 - LLM taking placeholders literally by @segfly in #38
  • Improve handling of multiline lambda conditions by @segfly in #40
  • Preserve short circuit evaluation in compound conditions by @segfly in #41
  • Improved multiple and mixed declaration lambda handling by @segfly in #42

Full Changelog: v1.1.1...v1.1.2

v1.1.1 - Additional validation checks and tests

16 Apr 15:28

Choose a tag to compare

Patch updates for improved validation

What's Changed

  • Bump pydantic from 2.10.6 to 2.11.1 in the python-minor group by @dependabot in #7
  • Additional RuleEngine and Fact validation checks, testing, and documentation corrections by @segfly in #8

Full Changelog: v1.1.0...v1.1.1

v1.1.0 - Model Configuration

10 Apr 21:43
558a91b

Choose a tag to compare

Minor version update to improve usability.

Added

  • Added ability to choose model provider when declaring conditions

Full Changelog: v1.0.0...v1.1.0

v1.0.0 - Initial Release

03 Apr 19:53
9c3d514

Choose a tag to compare

Our initial release of Vulcan! 🎉

After many months of development and testing, we are proud to share this initial release of Vulcan Core with the community. For details about Vulcan's capabilities and features, please browse the documentation at: https://latchfield.com/vulcan/

Added

  • Forward-chaining rules engine
  • Support for LLM hybrid rules
  • Vector database support
  • Initial documentation and guides