Advisory issues read as advice rather than failure

`ADVISORY_ISSUES` moves next to `ValidationIssue` in pipeline.py, and the
model derives an `advisory` flag from its own code, so the distinction the
engine already made ships to the client instead of being re-guessed there.

The dock keeps its summary in `--destructive` only when a real fault is
among the issues and paints an advisory row `--muted-foreground`; the
canvas leaves advisories off a node's dot and border entirely, since node
status has three colours and no warning tier.

biome checks the generated `openapi.json`, which nothing formats since the
SDK script dropped its format pass — ignore it like the other generated
files.
This commit is contained in:
2026-08-25 21:46:40 +02:00
parent b2466bfc44
commit cdb1bffdd4
9 changed files with 59 additions and 14 deletions
+10 -1
View File
@@ -4,7 +4,7 @@ from fluksio.flow.controller import _declared_inputs
from fluksio.flow.events import EventBus
from fluksio.flow.messages import DType, MessageSpec
from fluksio.flow.nodes import Node
from fluksio.flow.pipeline import Pipeline
from fluksio.flow.pipeline import Pipeline, ValidationIssue
from fluksio.flow.schemas import FlowDef, FlowInput
@@ -197,3 +197,12 @@ def test_values_carry_timestamps():
values = pipeline.values("f")
assert values["f.out"]["value"] == 1.0
assert values["f.out"]["ts"] > 0
def test_only_advisory_codes_are_flagged_advisory():
"""The UI reads this to keep an advisory out of the fault tone."""
hook = ValidationIssue(code="unauthenticated_hook", message="open")
cycle = ValidationIssue(code="cycle", message="loop")
assert hook.advisory is True
assert cycle.advisory is False