Version 7.10.0

BPMN 2.0 support. Adds a full BPMN metamodel, a vendor-neutral BPMN 2.0 XML generator, and a matching BPMN diagram type in the web modeling editor — process modeling, alongside class/object/state-machine/ agent modeling, is now a first-class BESSER diagram type. Also adds OCL constraint validation to the Django generator and fixes a Web App generator bug affecting locally-built agent containers.

BPMN metamodel

  • New BPMN model (besser.BUML.metamodel.bpmn): BPMNModel, Process, flow nodes (Task with TaskType — user, service, script, manual, business rule, send, receive —, StartEvent, EndEvent, intermediate catch/throw events with typed event definitions, gateways — exclusive, parallel, inclusive, event-based —, SubProcess, CallActivity), SequenceFlow, pools/lanes via LaneSet/Lane, DataObject/DataStore references, and text Annotation.

BPMN generator

  • New BPMN Generator (BPMNGenerator) emits plain BPMN 2.0 XML from a BPMNModel — openable in any BPMN-aware tool (Camunda 7/8, Flowable, bpmn-js, …). No engine-specific execution semantics are emitted, only the process structure (flow nodes, sequence flows, gateways, events, pools/lanes, data objects/stores, sub-processes), and the output round-trips through any conformant modeller.

  • New besser.utilities.buml_code_builder.bpmn_model_builder.bpmn_model_to_code emits a BPMNModel back to executable B-UML Python code.

Web Modeling Editor

  • New BPMN diagram type in the editor: the full BPMN element palette (events, tasks, gateways, sequence flows, pools/lanes, data objects/stores, annotations, call activities), property popups, and a default-layout saga that auto-arranges newly dropped BPMN flow nodes.

  • Backend wiring end-to-end: process_bpmn_diagram / bpmn_buml_to_json converters, a BPMNGenerator registration (category business_process) in the generator registry so /generate-output produces .bpmn files, BPMN support in the /export-buml and B-UML-file-import (/get-json-model) auto-detection paths, and BPMN participation in project-level cross-diagram validation.

Django Generator

  • OCL constraint validation: the Django generator now reuses the same OCL parser as the Pydantic generator and emits a clean() method on each constrained class, so OCL invariants defined on the domain model are enforced when creating or editing entities through Django’s admin panel or a ModelForm. Unlike Pydantic’s per-field validators (which run at construction time), Django’s clean() runs via full_clean() — automatic through the admin panel/ModelForm, but not on a bare .save() unless the caller calls full_clean() first.

Modeling Agent

  • BPMN support (BESSER-PEARL/modeling-agent#7): the AI modeling assistant gains BPMN diagram support — creating, editing, and removing BPMN elements through the same conversational actions already available for other diagram types, with guardrails against LLM hallucination (e.g. refusing to delete elements that don’t exist). This lives in the separate modeling-agent repository, which is not part of BESSER’s release/versioning; merge and deploy it alongside this release (./scripts/deploy.sh agent) to get AI-assisted BPMN editing in the web editor.

Fixes

  • Agent container crash on classical intent recognition (local Docker builds): WebAppGenerator’s per-agent agents/<slug>/Dockerfile never installed PyTorch, so any agent configured with intentRecognitionTechnology: classical crashed on startup (NameError: name 'nn' is not defined from besser-agentic-framework’s NLP engine) when run via docker compose up. The Render/GitHub deploy pipeline already handled this correctly by installing torch==2.6.0+cpu/scikit-learn==1.6.1 for classical agents, but that logic never reached the local Docker Compose/ZIP output. WebAppGenerator now resolves each agent’s configured intent-recognition technology and conditionally installs the same pinned PyTorch/scikit-learn versions in agent.Dockerfile.j2 when needed, matching the Render pipeline.

Internal updates

  • Sandboxed exec() hardening, Python-keyword name warnings, and isinstance-based (rather than class-name-string) event-definition legality checks were applied across the new BPMN converters during review.