Skip to content

Releases: kevmoo/analytica.dart

package:undead v0.1.1

Choose a tag to compare

@kevmoo kevmoo released this 23 Aug 20:47
e3c20fd
  • Support --suggest-private flag to detect unexported top-level declarations
    that can be made library-private (#45).
  • Add suggestPrivate option to UndeadOptions,
    UndeadReport.privateCandidatesFound,
    UndeadClassification.privateCandidate, and SuggestedAction.makePrivate.
  • Require package:analytica ^0.1.1.

package:dedupe v0.1.0

Choose a tag to compare

@kevmoo kevmoo released this 23 Aug 21:54
5dace86
  • 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

Choose a tag to compare

@kevmoo kevmoo released this 23 Aug 21:24
ff3a107
  • Fix action.yml monorepo auto-detection to evaluate default lib vs
    packages existence against the caller's $GITHUB_WORKSPACE instead of
    $ACTION_PATH (#76).
  • Fix action.yml to run the scanner from the caller's $GITHUB_WORKSPACE
    rather than $ACTION_PATH, so relative targets and --git-diff resolve
    against the repository under audit when the action is used from another
    repository (#76).
  • Add --comment-output and --max-comment-rows CLI 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 commentFile and maxCommentRows parameters to GitHubReporter.
  • Add max-comment-rows input to the GitHub Action (default 0 = 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.yml and skills/ structure for monorepo workspace.

package:analytica v0.1.1

Choose a tag to compare

@kevmoo kevmoo released this 23 Aug 08:02
80e6fc1
  • Add parseCommaSeparated utility function in package:analytica/cli.dart.
  • Fix extractNodeName and _findFirstIdentifier in
    package:analytica/analyzer.dart to ignore doc comment symbol references
    when ASTs lack element resolution (#80).
  • Fix WildcardPattern in package:analytica/analyzer.dart to correctly
    support **/ recursive directory glob matching.

package:undead v0.1.0

Choose a tag to compare

@kevmoo kevmoo released this 19 Aug 00:19
2edf42a
  • 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:ignore and
    // undead:ignore_for_file.

package:analytica v0.1.0

Choose a tag to compare

@kevmoo kevmoo released this 18 Aug 18:37
4319e9e
  • Initial release of core utilities, SDK discovery, Git integration, and CI reporting.

package:cognitive_complexity v0.2.3+2

Choose a tag to compare

@kevmoo kevmoo released this 11 Aug 23:38
e36813e
  • Streamline README.md into 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

Choose a tag to compare

@kevmoo kevmoo released this 11 Aug 06:14
5fa87af
  • Add an example.
  • Remove accidental export of internal CognitiveComplexityVisitor from
    package:cognitive_complexity/cognitive_complexity.dart.

package:cognitive_complexity v0.2.3

Choose a tag to compare

@kevmoo kevmoo released this 10 Aug 21:15
c63388c
  • Fix data_flow crashing with PathNotFoundException when 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, set DART_SDK,
      or put an SDK on PATH) instead of handing the analyzer an unresolved
      SDK location.
    • Teach PATH-based discovery the Flutter checkout layout: a
      flutter/bin/dart wrapper script now resolves to
      flutter/bin/cache/dart-sdk.
    • Add a FLUTTER_ROOT discovery fallback.
    • Add a --sdk-path option to the data_flow CLI (plumbed to the
      existing DataFlowAnalyzer.sdkPath parameter); invalid explicit paths
      are rejected with a clear error.
  • Fix --fail-on-increase ignoring --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-complexity agent 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 (or static methods) rather than
      instance methods.

package:cognitive_complexity v0.2.2+2

Choose a tag to compare

@kevmoo kevmoo released this 10 Aug 03:41
132fc31
  • 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;
      dedicated Result dataclasses reserved for public API boundaries
      (aligns the rubric with the data_flow signature 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 _Runner facades,
      not real abstractions.
  • No library or CLI code changes.