chain-studio/test
flemming-it 2bc556e0f5 feat(studio): ChainProgressBar - value and sign of life, kept apart
A waiting user asks two questions that a plain LinearProgressIndicator
answers as one: how far along is it, and is anything still happening.
The widget keeps them apart - the value may stand still for minutes
while a highlight driven by 'busy' keeps crossing the bar, so a
stalled percentage no longer reads as a frozen app.

Also: glides to new values over 600 ms so the polling interval behind
it stays invisible, refuses to walk backwards, renders indeterminate
rather than an empty bar when no value is known, stops animating once
the work ends, and honours reduce-motion.

Eight guards in test/progress_bar_test.dart cover each of those rules.
Writing them found a real defect: with busy: false the late-final
controller was first constructed inside dispose(), where the ticker's
context lookup is already unsafe.

Signed-off-by: flemming-it <stefan.a.flemming@googlemail.com>
2026-09-08 13:20:19 +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
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
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