chain-studio/test
flemming-it 14f9217007 feat(studio): show what a running update is doing, not just that it runs
Applying an update downloads and swaps a binary and takes minutes; the
doctor showed a spinner inside a disabled button for the whole time.
SystemActions gained a streaming CLI runner that hands each line to the
caller as it arrives, with CHAIN_PLAIN=1 set for the child so the CLI
emits one line per transition instead of its redraw-in-place block.

The update card now shows an indeterminate bar labelled with the
running step and an elapsed counter on its own timer, so the counter
keeps moving between lines that can be minutes apart. No invented
percentage: the CLI reports steps, not a measurable total.

The streaming path still defers to debugRunFaiOverride, so tests stay
hermetic and never spawn a process; three guards pin that.

Signed-off-by: flemming-it <stefan.a.flemming@googlemail.com>
2026-09-08 17:41:21 +02:00
..
integration feat(settings): hub auth-policy panel — T4/T5 security parity in the GUI 2026-07-15 03:19:33 +02:00
support feat(workspace): one global switcher anchor in the shell sidebar 2026-08-28 00:00:06 +02:00
a11y_test.dart feat(test): hermetic hub fake + state-matrix sweep across all pages 2026-07-19 01:02:51 +02:00
approvals_origin_test.dart fix(approvals): usertest-panel hardening (0.81.0) 2026-07-26 16:05:55 +02:00
approvals_reviewer_identity_test.dart feat(approvals,audit): record the reviewer as the unchecked claim it is 2026-08-03 23:50:34 +02:00
audit_filter_test.dart feat(audit): full-history JSONL export in the actions menu 2026-07-18 01:49:20 +02:00
chain_log_test.dart feat(settings): hub auth-policy panel — T4/T5 security parity in the GUI 2026-07-15 03:19:33 +02:00
chain_segments_test.dart refactor(ui): one canonical segment control (ChainSegments) everywhere 2026-07-19 02:58:54 +02:00
detached_run_test.dart feat: detached-runs monitor page (T3 parity) 2026-07-12 14:43:37 +02:00
doc_help_wiring_test.dart fix(docs): page help buttons open the right topic + wiring guard 2026-07-20 02:00:56 +02:00
doctor_deeplinks_test.dart feat(doctor): deep-link findings to the page where they are actioned 2026-07-18 18:02:04 +02:00
doctor_facts_test.dart fix(doctor): honest module count, temp-path audit warning, connection line 2026-07-18 00:56:46 +02:00
field_help_test.dart feat(docs): in-place help pattern — explain a surface where it happens 2026-07-20 02:00:56 +02:00
friendly_error_test.dart feat(errors): classify the install 'no store entry' failure 2026-07-22 13:48:31 +02:00
guided_setup_test.dart feat(setup): first-run gate, hub-first preview, honest wording — setup before the app 2026-07-17 00:59:22 +02:00
hub_auth_policy_panel_test.dart fix(shell): daemon-start and health-poll auth handling; policy panel freshness 2026-07-15 05:50:24 +02:00
hub_banner_test.dart fix(shell): daemon-start and health-poll auth handling; policy panel freshness 2026-07-15 05:50:24 +02:00
install_confirm_test.dart feat(store): trust gate before every module install 2026-07-17 23:44:14 +02:00
install_verification_test.dart fix(store,doctor): doc-verifier findings on the trust surfaces 2026-07-21 13:23:58 +02:00
l10n_formality_test.dart fix(l10n): no literal backticks in UI text, two stray informal imperatives 2026-07-18 00:25:31 +02:00
load_docs_test.dart refactor: rename internal Fai* design system + fai_ helpers to chain 2026-06-16 17:53:17 +02:00
nav_manifest_test.dart test: generated nav manifest guards the sidebar truth 2026-07-12 23:27:49 +02:00
ollama_service_suggestion_test.dart feat(doctor,shell): ollama host-service suggestion + hub-update hint (0.80.0) 2026-07-23 00:03:42 +02:00
pref_corruption_test.dart fix: survive corrupt preferences at startup; drop CocoaPods leftovers 2026-07-15 10:46:22 +02:00
progress_bar_test.dart feat(studio): ChainProgressBar - value and sign of life, kept apart 2026-09-08 13:20:19 +02:00
progress_bar_visual_test.dart feat(studio): real install progress in the store dialog and the wizard 2026-09-08 14:00:24 +02:00
responsive_test.dart fix(audit): wrap overflow-menu labels instead of clipping them 2026-08-03 23:49:48 +02:00
reviewer_identity_test.dart feat(approvals,audit): record the reviewer as the unchecked claim it is 2026-08-03 23:50:34 +02:00
runs_error_classification_test.dart feat(approvals,runs): explain approvals in place + one-click hub update (0.81.0) 2026-07-26 15:50:41 +02:00
sealed_identity_bar_test.dart feat: sealed-area connection switch + identity bar (multi-project stage 3) 2026-07-12 17:31:39 +02:00
setup_gate_test.dart feat(setup): first-run gate, hub-first preview, honest wording — setup before the app 2026-07-17 00:59:22 +02:00
sidebar_test.dart feat(nav): discoverable sidebar — instant tooltips, shortcuts made visible, pinnable rail 2026-07-17 23:36:33 +02:00
state_matrix_test.dart feat(test): hermetic hub fake + state-matrix sweep across all pages 2026-07-19 01:02:51 +02:00
store_caps_test.dart fix(flows): only offer install for capabilities the store resolves 2026-07-22 13:46:08 +02:00
store_maintainers_test.dart feat(store): show module maintainers (0.79.0) 2026-07-22 22:06:18 +02:00
store_today_badge_test.dart fix(store,audit,workspace): usertest low-findings tail (0.72.1) 2026-07-18 01:08:09 +02:00
update_apply_progress_test.dart feat(studio): show what a running update is doing, not just that it runs 2026-09-08 17:41:21 +02:00
widget_test.dart refactor: rename app fai_studio -> chain_studio 2026-06-16 17:48:11 +02:00
workspace_switch_race_test.dart fix(workspace): close the sealed-switch privacy race, restore the parked filter 2026-08-27 23:48:03 +02:00
workspace_switcher_test.dart feat(workspace): one global switcher anchor in the shell sidebar 2026-08-28 00:00:06 +02:00