feat(studio): guided-setup wizard (reuses chain init engine)
A Welcome 'Setup assistant' button opens a wizard that collects scenario / intent / target (+ approval & data-local toggles), then calls `chain init --answers` to preview the assembled plan and `--apply --force` to write the config — reusing the Rust deterministic engine, no logic duplicated. New SystemActions.chainInit; copyable errors via showFaiProcessError; EN+DE l10n. analyze clean; smoke test + existing welcome/sidebar tests pass. Signed-off-by: flemming-it <stefan.a.flemming@googlemail.com>
This commit is contained in:
parent
36a8252f67
commit
c9fa068991
9 changed files with 509 additions and 0 deletions
|
|
@ -19,6 +19,7 @@ import '../l10n/app_localizations.dart';
|
|||
import '../main.dart' show StudioShellState;
|
||||
import '../theme/theme.dart';
|
||||
import '../theme/tokens.dart';
|
||||
import '../widgets/guided_setup_dialog.dart';
|
||||
import '../widgets/widgets.dart';
|
||||
|
||||
class WelcomePage extends StatelessWidget {
|
||||
|
|
@ -59,6 +60,15 @@ class WelcomePage extends StatelessWidget {
|
|||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
const _Hero(),
|
||||
const SizedBox(height: ChainSpace.md),
|
||||
Align(
|
||||
alignment: Alignment.centerLeft,
|
||||
child: OutlinedButton.icon(
|
||||
onPressed: () => GuidedSetupDialog.show(context),
|
||||
icon: const Icon(Icons.auto_fix_high),
|
||||
label: Text(AppLocalizations.of(context)!.guidedSetupTitle),
|
||||
),
|
||||
),
|
||||
const SizedBox(height: ChainSpace.xxl),
|
||||
// When the hub is down the onboarding checklist
|
||||
// would render dead (all-unchecked, nothing to
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue