fix(docs): page help buttons open the right topic + wiring guard

The Federation and Runs help buttons opened the architecture doc:
federation.md/runs.md existed as assets but had no _DocEntry, so
showFaiDoc resolved the unknown slug to _kDocs.first. Register both
(onWelcome: false, so they don't clutter the newcomer grid but are
reachable), split the Welcome grid onto the curated subset, and make
the unknown-slug fallback assert in debug instead of silently opening
the wrong topic.

Guard (no-bugfix-without-a-guard): doc_help_wiring_test.dart scans
lib/ for every showFaiDoc('slug') call and asserts each has a
registered entry AND both assets/docs/<slug>[_de].md files. Exposes
kKnownDocSlugs for the test.

Signed-off-by: flemming-it <stefan.a.flemming@googlemail.com>
This commit is contained in:
flemming-it 2026-07-20 02:00:56 +02:00
parent 588f437395
commit 5a3f00bb2c
7 changed files with 226 additions and 6 deletions

View file

@ -180,6 +180,20 @@ class AppLocalizationsDe extends AppLocalizations {
String get welcomeDocApprovalsBlurb =>
'Human-in-the-Loop-Checkpoints — wann nutzen, wie das Audit-Log sie protokolliert.';
@override
String get welcomeDocFederationTitle => 'Föderation';
@override
String get welcomeDocFederationBlurb =>
'Weitere Hubs (Satelliten) anbinden, damit ihre Fähigkeiten hier nutzbar werden — was ein Satellit ist und wie die Anbindung abläuft.';
@override
String get welcomeDocRunsTitle => 'Hintergrund-Läufe';
@override
String get welcomeDocRunsBlurb =>
'Flows, die im Hintergrund weiterlaufen — wozu, wie man die Funktion einschaltet und die Läufe überwacht.';
@override
String get helpTooltip => 'Hilfe';
@ -338,6 +352,9 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String get buttonCancel => 'Abbrechen';
@override
String get buttonLearnMore => 'Mehr erfahren';
@override
String get buttonSave => 'Speichern';
@ -3164,6 +3181,14 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String get federationNameLabel => 'Satelliten-Name';
@override
String get federationAddIntro =>
'Ein Satellit ist ein weiterer Hub, den dieser Hub anbindet — dessen Fähigkeiten werden dann hier in Flows nutzbar. Sie vergeben einen Namen und erhalten ein einmaliges Token, mit dem sich der Satellit bei diesem Hub anmeldet.';
@override
String get federationNameHelp =>
'Frei wählbarer Name, um diesen Satelliten in der Liste wiederzuerkennen (z. B. Standort oder Zweck). Rein zur Anzeige — ändert nichts an der Technik.';
@override
String get federationIssueButton => 'Ausstellen';