Pulling a model moves gigabytes and could take fifteen minutes behind
a 14-pixel spinner. The model picker now follows the hub's pull stream
and shows a bar with the backend's own status and the megabytes for
the layer in flight.
The byte counts describe the current layer, not the whole model, so
the bar restarts per layer. That is deliberate and stated in the code:
the backend never says how many layers are still coming, so a single
overall number would have to be invented.
Signed-off-by: flemming-it <stefan.a.flemming@googlemail.com>
Two settings bugs the operator hit:
1. 'Test connection' appeared to do nothing. The result/error panel
renders at the bottom of the System-AI editor's scrollable,
600px-capped form, so on a tall dialog it lands below the fold —
the footer button flickers 'Testing…' and nothing visible changes.
The editor now holds a ScrollController and animates the content
to reveal the outcome whenever a test result or error appears.
2. The welcome onboarding checklist kept 'connect System-AI'
unchecked right after saving a working config. The checklist row
opens the Settings dialog (an overlay, not a navigation), and on
close the checklist never re-probed — so it showed the stale
pre-config state. Both settings-opening rows (System-AI, MCP) now
re-probe when the dialog closes; navigation-based rows already
self-heal on return.
Studio suite green; flutter analyze clean.
Signed-off-by: flemming-it <stefan.a.flemming@googlemail.com>
The System-AI editor rendered its failure (test connection, save, model
pull) as a bare Text(_error) — selectable-but-not-copyable, the exact
thing the operator needs to paste back. Route it through ChainErrorBox
(selectable + one-tap copy button), and show a failed test result via
ChainErrorBox too instead of a plain SelectableText.
Signed-off-by: flemming-it <stefan.a.flemming@googlemail.com>
The Studio design system, widgets and helpers carried a Fai* / fai_
prefix (FaiSpace, FaiColors, FaiTheme, FaiLog, 17 fai_*.dart files, the
faiBinary* l10n keys). Studio is the Ch∆In product, so rename them to
Chain* / chain_ — carefully preserving English fail/failure/failed.
Also fix stale references: the 'fai' binary in l10n strings -> 'chain',
FAI_* env vars (FAI_BIN/DATA_DIR/MODULES_DIR/TODAY/BOOTSTRAP_TOKEN) ->
CHAIN_*, fai_platform -> fai_chain, fai_hub -> chain_hub. Vendor
security-hook tooling (FAI_BANNED_TERMS_FILE) + the .fai bundle ext left.
flutter analyze + test: clean (20 passed).
Signed-off-by: flemming-it <stefan.a.flemming@googlemail.com>
2026-06-16 17:53:17 +02:00
Renamed from lib/widgets/fai_system_ai_editor.dart (Browse further)