feat: add local-first private AI digest workflow

Migrate app code into canonical feature slices, add phone-only AI digest scheduling and review, wire local notification/background task support, and cover the flow with tests.
This commit is contained in:
Rijad Zuzo
2026-05-17 00:17:20 +02:00
parent dab50abf0e
commit f655adfbea
212 changed files with 24178 additions and 15895 deletions
+4
View File
@@ -0,0 +1,4 @@
# Shared Feature UI
Only genuinely reusable feature-facing widgets belong here. If a widget is owned
by one slice, keep it inside that slice to avoid horizontal drift.
+2 -40
View File
@@ -1,40 +1,2 @@
import 'dart:ui';
import 'package:flutter/material.dart';
class FrostedCard extends StatelessWidget {
const FrostedCard({
required this.child,
super.key,
this.padding = const EdgeInsets.all(20),
});
final Widget child;
final EdgeInsetsGeometry padding;
@override
Widget build(BuildContext context) {
return ClipRRect(
borderRadius: BorderRadius.circular(24),
child: BackdropFilter(
filter: ImageFilter.blur(sigmaX: 12, sigmaY: 12),
child: Container(
padding: padding,
decoration: BoxDecoration(
color: Colors.white.withValues(alpha: 0.72),
borderRadius: BorderRadius.circular(24),
border: Border.all(color: Colors.white.withValues(alpha: 0.6)),
boxShadow: const <BoxShadow>[
BoxShadow(
color: Color(0x14000000),
blurRadius: 24,
offset: Offset(0, 12),
),
],
),
child: child,
),
),
);
}
}
// Legacy compatibility export for the shared frosted card widget.
export 'package:relationship_saver/core/presentation/frosted_card.dart';