Skip to content

Releases: nullhack/flowr

v1.0.0 — First Stone

06 May 15:44
7232f35

Choose a tag to compare

v1.0.0 — First Stone

Added

  • Specification reference page: docs/index.html — semver.org-style specification with numbered rules, RFC 2119 language, formal syntax grammar, normative D3 diagrams, and FAQ
  • Remove fuzzy match operator: ~= (APPROXIMATELY_EQUAL) removed from the specification and reference implementation; flows using ~= now produce FlowParseError with state context

Changed

  • Condition operators reduced from 7 to 6: ==, !=, >=, <=, >, <
  • flowr/domain/condition.py: removed APPROXIMATELY_EQUAL enum value, ~= from operator prefix map, and approximate comparison logic
  • flowr/domain/loader.py: added _validate_condition_operators() to reject ~= in all when-clause forms (inline dict, list-form, named references) with FlowParseError
  • Specification documents: flow_definition_spec.md, glossary.md, system.md, product_definition.md updated to list exactly 6 operators
  • ADR_20260426_fuzzy_match_algorithm.md: deprecated with removal notice
  • README.md: banner image uses absolute URL for PyPI rendering, guard conditions explicitly list 6 operators, documentation links use absolute URLs
  • pyproject.toml: version bumped to 1.0.0, Documentation URL points to spec page, added PyPI classifiers

Removed

  • ~= condition operator (APPROXIMATELY_EQUAL) — no longer a valid operator in the flowr specification
  • 6 obsolete tests referencing ~= parsing and evaluation

v0.5.0 Fine Sift

05 May 07:00
6bae6f5

Choose a tag to compare

Fine Sift — Subflow Transition Overhaul

Highlights

  • Subflow exit resolution: exit names now resolve through the parent flow's transition map instead of being used directly as state IDs
  • Subflow chaining: atomic exit + re-enter next subflow (e.g., discovery-flow → architecture-flow) without manual state manipulation
  • Recursive subflow entry: handles 3-level nesting (main-flow → feature-dev-flow → planning-flow)
  • JSON-first output: --json flag replaced with --text; JSON is now the default for all commands
  • next shows all transitions: includes blocked/guarded transitions with trigger→target mapping, status markers, and condition hints

New Features

  • states --session — list states in the current (sub)flow
  • validate --session — validate the current (sub)flow
  • check --session <trigger> — show transition conditions for a trigger (fixed argparse bug)
  • session init auto-enters subflow when first state has flow: field

Bug Fixes

  • resolve_subflows() .yaml extension fallback for flow references without extension
  • Stack frame records correct parent state (subflow wrapper, not pre-transition state)
  • check --session <target> argparse consuming target as flow_file

Full Changelog: v0.4.0...v0.5.0

v0.4.0

02 May 18:05
f7e700a

Choose a tag to compare

What's Changed

  • feat: session management extended — complete interview requirements by @nullhack in #6
  • release: v0.4.0 Refined Semolina by @nullhack in #7

New Contributors

Full Changelog: v0.3.20260427...v0.4.0

v0.3.20260427 - Coarse Grind

27 Apr 06:49

Choose a tag to compare

v0.3.20260427 - Coarse Grind

"Nothing sifted out — the whole package, included."

Changelog

Fixed

  • fix: package build missing subpackages — replaced static packages = ["flowr"] with setuptools.packages.find so flowr.cli and flowr.domain are included in the installed distribution
  • fix: license deprecation — changed project.license from TOML table to SPDX string "MIT"
  • fix: CI verification — updated package install checks to import all submodules (flowr, flowr.cli, flowr.domain)

SHA: b2504d6

v0.1

26 Apr 13:37

Choose a tag to compare