chain-studio/test
flemming-it ea2cd87b5e fix(runs): stop claiming the hub is unreachable on RPC-level errors
The runs monitor folded every load failure into 'hub not reachable',
contradicting the sidebar's green connected dot whenever the hub
answered but the RPC failed — most visibly against a pre-0.22 hub
whose version predates the ListInvocations RPC (UNIMPLEMENTED).

Classify the failure instead (top-level, unit-tested):
- UNIMPLEMENTED -> 'this view needs a newer hub version' with a
  doctor-page link (the update banner lives there)
- FAILED_PRECONDITION from the detached gate -> the regular
  feature-off empty state with the guide button
- UNAVAILABLE / DEADLINE_EXCEEDED / socket-level failures -> the
  honest 'hub not reachable' state (unchanged)
- everything else -> a load-failed state with the friendly error
  and a copyable detail box

The error view is a public callback-driven widget so the tests pump
each variant without a live hub. New DE+EN strings for the too-old
and load-failed states; grpcCodeOf/grpcMessageOf exposed from the
friendly-error mapper instead of duplicating the duck-typing.

Signed-off-by: flemming-it <stefan.a.flemming@googlemail.com>
2026-07-18 17:33:11 +02:00
..
integration feat(settings): hub auth-policy panel — T4/T5 security parity in the GUI 2026-07-15 03:19:33 +02:00
a11y_test.dart fix(ui): WCAG light-theme accent, overflow-safe audit page, formal address 2026-07-15 04:34:19 +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
detached_run_test.dart feat: detached-runs monitor page (T3 parity) 2026-07-12 14:43:37 +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
friendly_error_test.dart refactor: rename app fai_studio -> chain_studio 2026-06-16 17:48:11 +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
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
pref_corruption_test.dart fix: survive corrupt preferences at startup; drop CocoaPods leftovers 2026-07-15 10:46:22 +02:00
responsive_test.dart feat(nav): discoverable sidebar — instant tooltips, shortcuts made visible, pinnable rail 2026-07-17 23:36:33 +02:00
runs_error_classification_test.dart fix(runs): stop claiming the hub is unreachable on RPC-level errors 2026-07-18 17:33:11 +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
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_switcher_test.dart feat: sealed-area connection switch + identity bar (multi-project stage 3) 2026-07-12 17:31:39 +02:00