Releases: kevmoo/analytica.dart
Releases · kevmoo/analytica.dart
Release list
package:undead v0.1.1
- Support
--suggest-privateflag to detect unexported top-level declarations
that can be made library-private (#45). - Add
suggestPrivateoption toUndeadOptions,
UndeadReport.privateCandidatesFound,
UndeadClassification.privateCandidate, andSuggestedAction.makePrivate. - Require
package:analytica ^0.1.1.
package:dedupe v0.1.0
- Initial release of
pkg:dedupe:- Token-level and structural clone detection across Dart and Flutter codebases.
- Polynomial rolling hash k-gram indexing and maximal clone extension.
- Granular normalization filters (
--ignore-comments,--ignore-literals,--ignore-identifiers). - Persistent content-hashed disk caching (
--cache,--cache-dir,--clear-cache). - Exact line-union overlapping clone cluster deduplication and net lines saved analysis.
- Linear adjacent chaining and MinHash token verification for large-scale clone clusters (>50 instances).
- Git diff integration and PR delta scanning (
--git-diff,--only-changed). - Multi-format report generation: Markdown, JSON, GitHub Actions annotations/summaries, and terminal text.
- Per-file duplication metrics, cluster classification, and estimated lines saved analysis.
- Value-semantic, immutable report models (
CloneInstance,DuplicateCluster,DedupeReport) with full JSON serialization. - CLI binary entrypoint (
bin/dedupe.dart).
package:cognitive_complexity v0.2.4
- Fix
action.ymlmonorepo auto-detection to evaluate defaultlibvs
packagesexistence against the caller's$GITHUB_WORKSPACEinstead of
$ACTION_PATH(#76). - Fix
action.ymlto run the scanner from the caller's$GITHUB_WORKSPACE
rather than$ACTION_PATH, so relativetargetsand--git-diffresolve
against the repository under audit when the action is used from another
repository (#76). - Add
--comment-outputand--max-comment-rowsCLI options: with
--format=github, write a second report capped to the most significant rows
(violations, then increases, then additions) for posting as a PR comment,
while the step summary keeps the full table (#49). - Add
commentFileandmaxCommentRowsparameters toGitHubReporter. - Add
max-comment-rowsinput to the GitHub Action (default0= unlimited)
to keep sticky comments under GitHub's 65536-character body limit. - Anchor GitHub annotations to the declaration line only, so they render
under the function signature instead of after the closing brace (#55). - Move package into pub workspace monorepo layout under
packages/cognitive_complexity. - Restore root
action.ymlandskills/structure for monorepo workspace.
package:analytica v0.1.1
- Add
parseCommaSeparatedutility function inpackage:analytica/cli.dart. - Fix
extractNodeNameand_findFirstIdentifierin
package:analytica/analyzer.dartto ignore doc comment symbol references
when ASTs lack element resolution (#80). - Fix
WildcardPatterninpackage:analytica/analyzer.dartto correctly
support**/recursive directory glob matching.
package:undead v0.1.0
- Initial release of reachability and dead/unused declaration analyzer.
- Support for CLI execution, package entrypoint harvesting, and Flutter/test
framework adapters. - Deterministic analysis modes: open-world (libraries) and closed-app
(standalone/executables). - Custom suppression directives:
// undead:ignoreand
// undead:ignore_for_file.
package:analytica v0.1.0
- Initial release of core utilities, SDK discovery, Git integration, and CI reporting.
package:cognitive_complexity v0.2.3+2
- Streamline
README.mdinto a focused, scannable TL;DR. - Extract deep-dive reference documentation into modular guides under
doc/:doc/scoring.md: Scoring matrix, nesting multipliers, and Dart 3 AST rules.doc/cli.md: Command-line options, git diff delta evaluation, and CI ratcheting.doc/data_flow.md: Statement data-flow analysis, method extraction theory, and programmatic API.doc/github_actions.md: Complete GitHub Action workflow setup, parameters, and fork security permissions.
package:cognitive_complexity v0.2.3+1
- Add an example.
- Remove accidental export of internal
CognitiveComplexityVisitorfrom
package:cognitive_complexity/cognitive_complexity.dart.
package:cognitive_complexity v0.2.3
- Fix
data_flowcrashing withPathNotFoundExceptionwhen run as a
standalone AOT executable (dart run cognitive_complexity:data_flow@/
dart install), where SDK auto-discovery resolved to the app bundle
(#21):- Fail fast with an actionable error (pass
--sdk-path, setDART_SDK,
or put an SDK onPATH) instead of handing the analyzer an unresolved
SDK location. - Teach
PATH-based discovery the Flutter checkout layout: a
flutter/bin/dartwrapper script now resolves to
flutter/bin/cache/dart-sdk. - Add a
FLUTTER_ROOTdiscovery fallback. - Add a
--sdk-pathoption to thedata_flowCLI (plumbed to the
existingDataFlowAnalyzer.sdkPathparameter); invalid explicit paths
are rejected with a clear error.
- Fail fast with an actionable error (pass
- Fix
--fail-on-increaseignoring--fail-threshold: when both are set,
an increase now only fails the run if the new score exceeds the
threshold. Sub-threshold increases are still reported (delta table, PR
comment) but no longer block healthy changes such as added error
handling. Without--fail-threshold, the strict any-increase ratchet is
unchanged. - Update the
dart-cognitive-complexityagent skill:- Add explicit rule under Tier 1/2 prescribing that extracted private helper
routines that do not read or mutate class instance state (this) must be
declared as private top-level functions (orstaticmethods) rather than
instance methods.
- Add explicit rule under Tier 1/2 prescribing that extracted private helper
package:cognitive_complexity v0.2.2+2
- Refine the skill's 3-Tier Decomposition Rubric per empirical feedback
(#19):- "Slice at natural seams" rule: enlarge slices to whole loops/state
machines before classifying; solves coupled 2-variable state
(queue+visited) without weakening the Tier 3 gate (stays at >= 3
with recorded evidence). - Named records for private/file-local slices at any output count;
dedicatedResultdataclasses reserved for public API boundaries
(aligns the rubric with thedata_flowsignature synthesizer). - Pattern E: loop-body extraction with explicit signal returns
(enum/sealed) instead of boolean control-flow flags; ordered
dispositions for control-flow escapes. - Domain-modeling exit: promoting coupled state to a real named, tested
domain class is out of rubric scope — the gate bans_Runnerfacades,
not real abstractions.
- "Slice at natural seams" rule: enlarge slices to whole loops/state
- No library or CLI code changes.