chore: adopt Dart 3.9 toolchain — honest floor + tall-style reformat (T-353)

Raise the declared minimums in pubspec.yaml to what our deps already
require: Flutter >=3.35.0 / Dart >=3.9.0 (was 3.19.0 / 3.5.0). alchemist
0.12 needs Flutter 3.32; Dart 3.9 first ships in Flutter 3.35, so 3.35 is
the binding floor. Pin the exact build toolchain in .fvmrc (Flutter
3.44.1).

Moving to the Dart 3.9 language level switches `dart format` to the new
"tall" style and enables two new lints. This commit is the resulting
mechanical churn, isolated from any behaviour change:
  - whole-tree `dart format` reformat (tall style)
  - `dart fix` for unnecessary_underscores + use_null_aware_elements

No runtime behaviour change; `make test` green.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-11 12:11:53 +02:00
co-authored by Claude Opus 4.8
parent bcea5f15b7
commit 6d0ebab721
444 changed files with 7587 additions and 12849 deletions
+7 -17
View File
@@ -13,27 +13,17 @@ enum ToastSeverity { success, warning, error, info }
const String toastChannel = 'toast';
ToastSeverity _severityFromName(Object? name) => switch (name) {
'success' => ToastSeverity.success,
'warning' => ToastSeverity.warning,
'error' => ToastSeverity.error,
_ => ToastSeverity.info,
};
'success' => ToastSeverity.success,
'warning' => ToastSeverity.warning,
'error' => ToastSeverity.error,
_ => ToastSeverity.info,
};
/// Raise a toast by publishing to the MessageBus — the decoupled path:
/// emitters depend only on the bus, never on the [ToastService]. [publisher]
/// is the emitter id (e.g. `builtin.git`), kept for provenance/filtering.
void publishToast(
MessageBus messages,
String publisher,
String message, {
ToastSeverity severity = ToastSeverity.info,
Duration? duration,
}) {
messages.publish(publisher, toastChannel, {
'message': message,
'severity': severity.name,
if (duration != null) 'durationMs': duration.inMilliseconds,
});
void publishToast(MessageBus messages, String publisher, String message, {ToastSeverity severity = ToastSeverity.info, Duration? duration}) {
messages.publish(publisher, toastChannel, {'message': message, 'severity': severity.name, if (duration != null) 'durationMs': duration.inMilliseconds});
}
/// One live toast. Immutable; the [ToastService] owns the list.