famon 1.0.1
famon: ^1.0.1 copied to clipboard
A command-line tool to monitor Firebase Analytics events from logcat.
Changelog #
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
1.0.1 - 2026-01-20 #
1.0.0 - 2026-01-20 #
Changed #
- Package renamed from
firebase_analytics_monitortofamon - Install with:
dart pub global activate famon - Repository renamed to
github.com/mikezamayias/famon - All internal class names updated (e.g.,
FamonCommandRunner)
Migration from firebase_analytics_monitor #
If you were using the old package, simply run:
dart pub global deactivate firebase_analytics_monitor
dart pub global activate famon
Previous releases (as firebase_analytics_monitor) #
1.3.3 - 2026-01-20 #
Fixed #
- Fixed update message showing incorrect command (
firebase_analytics_monitor updateinstead offamon update) - Fixed version display always showing
1.1.0regardless of installed version - Added version consistency checks to release process to prevent future version mismatches
Added #
- Added
tool/update_version.dartscript for updating version in both pubspec.yaml and version.dart
1.3.2 - 2026-01-16 #
Changed #
- Added
firebase-debug.logto.gitignoreto prevent accidental commit of debug logs
1.3.1 - 2026-01-16 #
Security #
- Fixed command injection vulnerability in ClipboardService (Windows) by using stdin instead of command arguments
- Fixed command injection vulnerability in FileDialogService (macOS) by escaping AppleScript strings
- Added ReDoS protection in EventCacheService.searchEvents() with pattern length limits and dangerous pattern detection
Performance #
- Extracted RegExp patterns to static final in IosLogParserService for
_extractTimestamp()and_cleanValue()methods - Added fallback substring search when regex patterns are deemed unsafe
Removed #
- Removed unused
ActionResultclass from shortcut_action.dart
1.3.0 - 2026-01-16 #
Added #
- Interactive keyboard shortcuts for monitoring sessions:
s- Copy recent events to clipboardf- Save events to filep- Toggle pause/resume monitoringt- Show session statisticsc- Clear screen?- Show help overlayq- Quit monitoring
- Customizable keyboard shortcuts via
~/.famon/shortcuts.yaml ShortcutManagerfor handling key bindings and action executionActionRegistryfor registering and managing keyboard actionsKeyboardInputServicefor raw terminal input handling
1.2.0 - 2026-01-15 #
Added #
- iOS Support: Monitor Firebase Analytics events from iOS simulators and physical devices
- iOS Simulator support via
xcrun simctl spawn - Physical iOS device support via
idevicesyslog - New
--platformoption to select target platform (android, ios-simulator, ios-device) - iOS-specific log parsing with support for various timestamp formats
- Troubleshooting tips for iOS tool installation
- iOS Simulator support via
- Documentation for iOS monitoring setup in README
Performance #
- Made all regex patterns static final across the codebase
- Added memory bounds to EventCacheService with LRU eviction (max 10,000 events)
- Added graceful shutdown and resource management for long-running sessions
- Improved stderr handling to prevent buffer overflow
Changed #
- Refactored Android log handling into dedicated services for better separation of concerns
- Introduced
LogSourceFactoryandLogParserFactoryfor platform-specific implementations - Added
PlatformTypeenum for type-safe platform selection
1.1.0 - 2026-01-13 #
Security #
- Added input validation for custom parameters and frequency options
- Added file path validation to prevent path traversal attacks
- Added explicit null handling for stdin.readLineSync()
- Added safe type casting for argResults in DatabaseCommand
- Added validation to DateTimeRange constructor
Changed #
- Replaced overly broad exception handling with specific types
- Extracted MonitorCommand.run() into smaller focused methods
- Consolidated event filtering logic in EventFilterUtils
- Introduced FilteredMonitorDependencies container for better DI
- Extracted FaWarningBuffer from EventFormatterService (SRP)
- Extracted DatabaseDirectoryResolver from IsarDatabase
- Replaced hardcoded magic numbers with named constants
- Used consistent DI for UpdateCommand
- Optimized log parser regex evaluation order
- Pushed event filtering to database level for better performance
- Optimized list creation in EventCacheService
Added #
- Warning for malformed UTF-8 data in logcat output
- Visible warnings for parameter parsing failures
- Comprehensive tests for FilteredMonitorCommand
Fixed #
- Corrected branch name in static analysis workflow
- Increased minimum test coverage threshold to 30%
1.0.2 - 2026-01-12 #
Fixed #
- Fixed package installation from pub.dev by including generated files (
*.g.dart,*.config.dart) - Package can now be properly installed via
dart pub global activate firebase_analytics_monitor
[1.0.1] - 2025-12-19 #
Changed #
- Replaced specific event examples with generic event names in documentation
- Improved example output in README to be more generic
Added #
- MIT LICENSE file
- CHANGELOG.md following Keep a Changelog format
- GitHub Actions workflow for static analysis on PRs to dev branch
[1.0.0] - 2025-12-19 #
Added #
- Real-time Firebase Analytics event monitoring via
adb logcat - Smart filtering with
--hideand--show-onlyoptions - Beautiful colorized output for events
- Session statistics and smart suggestions for filtering
- Event parsing with support for parameters and item arrays
famon monitorcommand for real-time event streamingfamon helpcommand with detailed usage examples- Shell completion support
- Persistent event storage with Isar database
- Export/import functionality for event data