cura 0.6.1
cura: ^0.6.1 copied to clipboard
CLI tool to audit Flutter/Dart package health, dependency scores, and maintenance status.
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.
Unreleased #
0.6.1 - 2026-02-24 #
Fixed #
CacheDatabasedouble-initialisation race: Two concurrentawait CacheDatabase.instancecalls arriving before the database was ready both invoked_initDatabase(), creating the SQLite connection twice. Fixed by memoising the initialisationFuture(_initFuture ??= _initDatabase()), ensuring all concurrent callers share a single in-flight operation.close()now also resets_initFutureso re-opening is safe.CachedAggregator.fetchManysilent error swallow: Errors thrown by pool tasks were not forwarded to the stream, leaving error cases silently dropped. AddedonErrorforwarding so stream consumers receive errors correctly.CachedAggregatordead import: Unusedimport 'package:cura/src/domain/ports/cache_repository.dart'removed.
Changed #
MultiApiAggregatorusesPoolManager: Replaced the inlinePoolconstruction with the sharedPoolManagerutility. The aggregator no longer owns a rawpoolimport; concurrency configuration flows throughPoolManager(maxConcurrency: ...).- Dartdoc — infrastructure cache layer: Added comprehensive API documentation to
CachedEntry,CacheDatabase,TtlStrategy(including popularity range 0–100 and per-tier TTL tables),CachedAggregator, andMultiApiAggregator.
0.6.0 - 2026-02-24 #
Added #
config init --force: New-f/--forceflag oncura config initto overwrite an existing config file with built-in defaults.- Complete
config show: Now displays all configuration fields grouped by category (Appearance, Cache, Scoring, Performance, Behaviour, Logging, API, Exclusions) with score-weights validation warning.
Fixed #
config setincomplete key support:_writeValuewas missinggithub_token,cache_max_age_hours,enable_cache,auto_update,fail_on_vulnerable,fail_on_discontinued,show_suggestions,max_suggestions_per_package,verbose_logging, andquiet— those keys were readable but silently ignored on write.config getnull display: Unknown / unset values now print(not set)instead of the string"null".ScoreWeights.fromJsontype safety: JSON fields are now cast withas int?before applying the default fallback.ConfigDefaults.defaultConfigmutability: Field changed fromstatictostatic finalto prevent accidental reassignment at runtime.
Changed #
- Centralized concurrency manager built on top of the
poolpackage. - Dartdoc: Added comprehensive API documentation to
ScoreWeights,ConfigDefaults,ConfigRepository,YamlConfigRepository, and allconfigsub-commands.
0.5.0 - 2026-02-22 #
Added #
- Visual Score Breakdown: New bar charts (█ ▓ ▒ ·) for intuitive score reading.
- Rich UI Elements: Added popularity dots (●●●) and Pub score indicators (●/◐/○).
- Color-coded Status: Visual update indicators (🟢/🟡/⚠) and severity colors for vulnerabilities.
- GitHub Metrics: Enhanced formatting for stars, forks, and last commit dates.
Changed #
- Presenter Refactor: Complete overhaul of
ViewPresenterfor better information hierarchy. - Output Styling: Standardized usage of clean separator lines (═) for better scannability.
0.4.0 - 2026-02-19 #
Added #
- Version Command: Added a dedicated
versioncommand for detailed system information (CLI version, Dart SDK, Platform). - Update Checker: Automatic check against pub.dev API to notify users when a newer version is available.
- Global Flag: Added
--version/-vas a global flag for quick version check. - Versioning Logic: Centralized
AppInfoandVersionUtilsfor robust Semantic Versioning (SemVer) comparisons. - Multi-API aggregation (pub.dev + GitHub + OSV)
- Streaming reactive package analysis
- SQLite caching (24h TTL)
- GitHub metrics integration
Changed #
- CLI Output: Customized the default help message for better UX.
- Constants: Refactored
AppConstantsto use dynamic versioning instead of hardcoded strings.