Summary
flutter_svg is used for a single purpose: rendering the 3 static agent logos (pi, codex, claude) at a fixed 40×40 on the home screen. It drags in a codec subtree:
flutter_svg → vector_graphics + vector_graphics_codec + vector_graphics_compiler
Since the logos are static and fixed-size, pre-rendering them as PNG (@2x/@3x) lets us drop flutter_svg and its ~3-package subtree, reducing the dependency blast radius (159 packages today; 20 direct).
Confirmed non-usage (safe to drop)
Audited during the CI-speedup work — flutter_svg is not used for anything else:
- Splash screen →
flutter_native_splash uses a PNG (assets/makit-splash-mark.png), baked into native launch screens at build time. No runtime SVG.
- Animated brand mark (
MakitClapMark "Clap loop") → pure CustomPainter + AnimationController. No SVG.
- No animation packages (
lottie/rive) in the tree.
- Only consumer:
app/lib/ui/home/home_screen.dart (SvgPicture.asset, logos map at ~L435).
Work
Tradeoff / non-goal
- Lose vector scalability for the logos — acceptable since they render at a fixed 40×40.
http stays in the tree (also pulled by timezone via flutter_local_notifications), so this does not remove http.
- Modest win (~4 packages);
flutter_svg is flutter.dev-published and low-risk, so this is hygiene, not urgent.
Context: raised while auditing deps during the CI-speedup PR (#22). Deferred out of that PR to keep it focused.
Summary
flutter_svgis used for a single purpose: rendering the 3 static agent logos (pi,codex,claude) at a fixed 40×40 on the home screen. It drags in a codec subtree:Since the logos are static and fixed-size, pre-rendering them as PNG (@2x/@3x) lets us drop
flutter_svgand its ~3-package subtree, reducing the dependency blast radius (159 packages today; 20 direct).Confirmed non-usage (safe to drop)
Audited during the CI-speedup work —
flutter_svgis not used for anything else:flutter_native_splashuses a PNG (assets/makit-splash-mark.png), baked into native launch screens at build time. No runtime SVG.MakitClapMark"Clap loop") → pureCustomPainter+AnimationController. No SVG.lottie/rive) in the tree.app/lib/ui/home/home_screen.dart(SvgPicture.asset, logos map at ~L435).Work
assets/agents/{pi,codex,claude}.svg→ PNG at @1x/@2x/@3x (40px base) intoassets/agents/.SvgPicture.asset(asset, ...)withImage.asset(asset, ...)inhome_screen.dart; update thepi/codex/claudeasset paths from.svg→.png.pubspec.yamlassets (or rely on Flutter's resolution-aware asset resolution).flutter_svgfrompubspec.yaml;flutter pub get; verifyvector_graphics*leavepubspec.lock.flutter analyze --fatal-infosclean; visually verify logos on the home screen (light + dark).Tradeoff / non-goal
httpstays in the tree (also pulled bytimezoneviaflutter_local_notifications), so this does not removehttp.flutter_svgisflutter.dev-published and low-risk, so this is hygiene, not urgent.Context: raised while auditing deps during the CI-speedup PR (#22). Deferred out of that PR to keep it focused.