Symptom

The settings header and chip title for IncomingWebHook and OutgoingWebHook nodes displayed “IncomingWebHook” / “OutgoingWebHook” — mid-word capital H, no space — instead of the industry-standard “Incoming Webhook” / “Outgoing Webhook”.

Root cause

KrillApp.title() in IconManager.kt derives the display string purely from the serialization discriminator class name via resourceName().substringAfterLast("."). The sealed data objects are named IncomingWebHook / OutgoingWebHook in the krill-oss SDK (those names are load-bearing for serialization), so the derived display string inherited the non-standard capitalization.

Fix

Added explicit when branches in KrillApp.title() for the two webhook types, returning "Incoming Webhook" and "Outgoing Webhook" respectively. The else branch continues to derive the title from the class name for all other node types.

Prevention

Node types whose class name is not a natural human-readable label (compound words, PascalCase that splits oddly) need an explicit override in KrillApp.title() rather than relying on the default class-name derivation. The new KrillAppTitleTest acts as a regression guard for these two types.