|
Some checks failed
Security / Security check (push) Failing after 2s
Field test of the setup wizard surfaced three trust breaks in one run: an unexplained macOS Documents permission prompt, a perceived crash, and an error message whose copy button could not be reached. Root causes and fixes: - chain init failures were shown as a SnackBar, which lands BEHIND the wizard's modal barrier: dimmed, clipped, copy unreachable — and the click aimed at it hit the barrier, dismissing the whole wizard with all answers (the perceived crash). Errors now open a modal dialog ABOVE the wizard via showChainErrorDialog with a copyable detail block, and the wizard is no longer barrier-dismissible. - When the resolved chain binary is older than Studio and rejects --plan-json, the wizard now explains the version skew in plain language (binary path + update path) instead of leaking a raw clap usage error. A missing binary gets its own localized story. - Step 3 announces which chain binary the preview will execute; when that binary physically lives (symlinks resolved) in a TCC-protected folder, the wizard pre-explains the macOS folder prompt. Supporting changes: FriendlyError passes through friendlyError() unchanged so call sites can ship precise localized stories through the shared presentation; SystemActions gains resolvedChainBinary() plus run/resolve test seams; ChainErrorBox hugs its content instead of filling an unbounded dialog; the wizard's answers file is written synchronously (the async dart:io variants never complete under the widget-test fake-async zone). Verified: flutter analyze clean, 53 tests green (6 new wizard error- path tests incl. clipboard round-trip), plus a live GUI walk on macOS in dark + light with a stale binary (skew dialog, copy verified via clipboard) and with the real binary (TCC pre-explanation with the resolved path, full plan preview). Signed-off-by: flemming-it <stefan.a.flemming@googlemail.com> |
||
|---|---|---|
| .. | ||
| chain_binary_recovery.dart | ||
| chain_card.dart | ||
| chain_data_row.dart | ||
| chain_delta_mark.dart | ||
| chain_empty_state.dart | ||
| chain_en_badge.dart | ||
| chain_error_box.dart | ||
| chain_flow_output.dart | ||
| chain_log_viewer.dart | ||
| chain_module_sheet.dart | ||
| chain_pill.dart | ||
| chain_sealed_identity_bar.dart | ||
| chain_search_palette.dart | ||
| chain_settings_dialog.dart | ||
| chain_status_dot.dart | ||
| chain_stores_dialog.dart | ||
| chain_system_ai_editor.dart | ||
| chain_workspace_switcher.dart | ||
| guided_setup_dialog.dart | ||
| theme_picker_grid.dart | ||
| widgets.dart | ||