Go to file
Lucio Lelii 97ad1776a6 fix: null-safe IODescriptor equals/hashCode + normalize HumanDecision option names
Live-testing the assistant (now that the empty-plan fix lets qwen3 produce a
real plan) surfaced a 500 on a plan containing a HumanDecisionBlock. Two
causes, both fixed:

1. IODescriptor.equals/hashCode NPE'd when name was null (name.equals /
   name.hashCode). FlowDataValidator.validateBlock compares block outputs via
   IODescriptor.equals, so a null-named output made the @ValidFlowStructure
   ConstraintValidator throw -> Hibernate HV000028 -> HTTP 500 instead of a
   clean validation error. Made both null-safe with java.util.Objects. Now a
   malformed config is reported as an invalid flow (and repaired), never a 500 -
   a general robustness fix for any flow, not just assistant-generated ones.

2. The null-named outputs came from the model emitting HumanDecision options as
   {label, value} instead of {name, label} (name is the routing key / branch
   output). buildBlock now normalizes options (normalizeHumanDecisionOptions):
   a missing option name is filled from its "value" (the intended routing key)
   or a slug of its "label", so every branch gets a real, non-null output name
   and the flow is valid.

Tests: draftNormalizesHumanDecisionOptionNamesFromValueOrLabel (options given
as {label,value} and {label} -> names "yes"/"reject", no null outputs, valid).
Full suite green (434).
2026-08-03 11:26:35 +02:00
.mvn/wrapper upgrade to springboot 4 2026-05-05 19:22:53 +02:00
src fix: null-safe IODescriptor equals/hashCode + normalize HumanDecision option names 2026-08-03 11:26:35 +02:00
.gitattributes first commit 2025-03-27 11:38:06 +01:00
.gitignore Improve assistant model routing and diagnostics 2026-05-20 12:27:09 +02:00
Dockerfile Update Dockerfile for Java 25 2026-04-17 14:11:02 +02:00
mvnw first commit 2025-03-27 11:38:06 +01:00
mvnw.cmd first commit 2025-03-27 11:38:06 +01:00
ollama-preloaded-docker image for test with ollama added 2025-09-29 17:00:57 +02:00
pom.xml fix: add missing Flyway autoconfiguration and shorten an overlong flow description 2026-07-22 15:24:51 +02:00