feat(studio): temporal source bucket + provenance pill on store grid
Some checks failed
Security / Security check (push) Failing after 1s

Adds the missing UI surface for SPARK / Temporal federated
capabilities. Previously only mcp and n8n showed provenance
pills; temporal-sourced entries fell through to the default
"no badge" case.

  - storeSourceTemporal + storeProvenanceTemporal l10n keys
    (en + de). Pill format: "temporal · <provider>", icon
    Icons.timer_outlined, accent tone.
  - Source filter chip row gains a "Temporal" option in the
    Store filter dialog.
  - `_StoreProvenancePill` adds a `case 'temporal'` branch.

Operators federating a SPARK cluster (`services: -
kind: temporal`) now see their workflows visually labelled
as Temporal-sourced in the Store grid + filter UI.

dart analyze green. No test changes required — the
provenance pill is render-only.

Signed-off-by: flemming-it <stefan.a.flemming@googlemail.com>
This commit is contained in:
flemming-it 2026-05-28 14:15:39 +02:00
parent 2c13ef58ae
commit ceed8aab02
6 changed files with 1379 additions and 279 deletions

View file

@ -1030,6 +1030,7 @@ class _FilterDialogState extends State<_FilterDialog> {
(value: 'native', label: l.storeSourceNative),
(value: 'mcp', label: l.storeSourceMcp),
(value: 'n8n', label: l.storeSourceN8n),
(value: 'temporal', label: l.storeSourceTemporal),
],
_source,
(v) => setState(() => _source = v),
@ -3355,6 +3356,13 @@ class _ProvenancePill extends StatelessWidget {
monospace: true,
icon: Icons.account_tree_outlined,
);
case 'temporal':
return FaiPill(
label: l.storeProvenanceTemporal(item.provider),
tone: FaiPillTone.accent,
monospace: true,
icon: Icons.timer_outlined,
);
default:
// Native is the default: no badge needed. Keeps the
// card visually quiet only foreign code (mcp / n8n)