Advisory issues read as advice rather than failure
Docs / docs (push) Successful in 21s
Playwright Tests / test-playwright (1, 2) (push) Failing after 2m37s
Playwright Tests / test-playwright (2, 2) (push) Canceled after 35s
Playwright Tests / merge-reports (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Test Backend / test-backend (push) Canceled after 0s
Compose Smoke Test / test-compose (push) Canceled after 0s

`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.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013Gf7WaExcJ9bs3kfJXB3nK
This commit is contained in:
2026-08-25 21:46:40 +02:00
co-authored by Claude Opus 5
parent 4a2337f4de
commit 3af5342a2b
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