Skip to content

Releases: tang-vu/ContribAI

v6.8.0

Choose a tag to compare

@github-actions github-actions released this 27 Apr 17:51

Added

  • contribai prs command — list submitted PRs from local memory with status filter:
    • --status open|merged|closed|failed|all (default all)
    • --limit N (default 20)
    • --json — emit a JSON array (PR number parsed as int) for piping to jq/scripts
    • Pretty mode color-codes status (green=merged, cyan=open, red=closed, yellow=failed) and renders date / PR# / repo / title / URL.
    • Complements stats (which shows only the last 5) by giving a full filtered view.
  • 4 unit tests on the JSON converter and date trimmer.

v6.7.0

Choose a tag to compare

@github-actions github-actions released this 27 Apr 17:20

Added

  • 10 new analysis skills — coverage went from 17 → 27 skills, closing major language and framework gaps the analyzer was previously missing:
    • csharp_specific — C#: IDisposable, async void, null-coalescing, LINQ deferred-execution
    • ruby_specific — Ruby: monkey-patching, frozen_string_literal, eval/send injection
    • php_specific — PHP: SQL injection, type juggling, error suppression, deprecated mysql_*
    • vue_patterns — Vue 3: ref vs reactive, v-html XSS, lifecycle ordering
    • rails_security — Rails: mass-assignment, raw find_by_sql, CSRF, secret_key_base
    • laravel_security — Laravel: $fillable/$guarded, unprotected routes, DB::raw injection
    • spring_security — Spring/Spring Boot: filter-chain holes, JPA injection, exposed actuators
    • dockerfile_security — Dockerfile: latest tag, root user, secrets in layers, missing HEALTHCHECK
    • github_actions_security — Actions: untrusted ${{ github.event.* }}, pwn-request via pull_request_target, missing permissions scope
  • 8 new unit tests covering the new skills (csharp/ruby+rails/php+laravel/java+spring/vue/dockerfile/actions/no-leak).

v6.6.0

Choose a tag to compare

@github-actions github-actions released this 27 Apr 16:52

Added

  • contribai logs command — tail ~/.contribai/events.jsonl from the CLI:
    • --tail N — show the last N events (default 20). Streams the file with a ring buffer so huge logs don't blow up memory.
    • --filter <substring> — case-insensitive filter on event type (e.g. pr, hunt, error, complete).
    • --json — emit one raw JSON object per line for piping into jq/scripts.
    • Pretty mode color-codes events by lifecycle stage (cyan=start, green=complete/merged, red=error) and renders the data map as compact key=value pairs with long strings truncated.
    • Skips and reports unparseable lines instead of failing the whole command.

v6.5.0

Choose a tag to compare

@github-actions github-actions released this 27 Apr 13:58

Added

  • contribai doctor now checks for newer GitHub releases (anonymous, 5s timeout) and surfaces an "UPDATE AVAILABLE" hint when the installed binary is behind.

Fixed

  • Sprint 22.6 — release-blocking issues on main:
    • Compile error in validate_change_schema test (json_parser.rs:342) — was passing &&str instead of &serde_json::Value (E0308).
    • Clippy 1.95 lints under -D warnings: unnecessary_sort_by (repo_intel.rs), manual_checked_ops (tui.rs), 6 × collapsible_match (ast_intel.rs, patrol.rs).
    • 4 pre-existing failing tests:
      • test_multihop_2hop_resolution — 2-hop resolver now iterates file_imports.keys() instead of parsed_files.keys() so chains can follow files whose symbols haven't been parsed.
      • test_detect_ai_policy_ban — function now lowercases input.
      • test_detects_ai_ban_llm / test_detects_ai_ban_manual_only — added regex patterns for (LLM|GPT|...) generated/written code and only accept|allow|welcome manual|human contributions.
  • Removed unused imports & a useless len() >= 0 comparison in test files.

Changed

  • Bumped 11 Rust deps (rust-deps group via dependabot #29): rand 0.8 → 0.10, criterion 0.5 → 0.8, axum-server 0.7 → 0.8, tree-sitter-css 0.23 → 0.25, tree-sitter-php 0.23 → 0.24, plus tokio/clap/uuid/axum patch bumps.
  • Version sync: Cargo.toml 6.0.0 → 6.5.0, install scripts v5.2.0 → v6.5.0, README badge → v6.5.0 (caught misalignment between Cargo.toml and the v6.4.1 git tag).

v6.4.1

Choose a tag to compare

@github-actions github-actions released this 14 Apr 07:32

See CHANGELOG.md for details.

v6.4.0

Choose a tag to compare

@github-actions github-actions released this 14 Apr 06:15

See CHANGELOG.md for details.

v6.3.0

Choose a tag to compare

@github-actions github-actions released this 14 Apr 05:42

See CHANGELOG.md for details.

v6.2.1

Choose a tag to compare

@github-actions github-actions released this 14 Apr 05:15

See CHANGELOG.md for details.

v6.2.0

Choose a tag to compare

@github-actions github-actions released this 10 Apr 20:35

Added

  • Sprint 18 complete — Dependencies, benchmarks, binary optimization:
    • Criterion benchmark suite (5 benchmarks: AST extraction, framework detection, risk classification)
    • Rust dependabot (weekly automated dependency updates)
    • Test fixtures for benchmarking (Python/Rust/JavaScript samples)

Changed

  • Dependencies updated:
    • tower 0.4 → 0.5 (compatible with axum 0.7)
    • Tree-sitter grammar audit (documented 0.23/0.24/0.25 compatibility)
  • Binary size optimization: 34MB → 23MB (32% reduction)
    • Moved profile.release to workspace root (eliminated warning)
    • LTO + strip + opt-level=z all applied correctly

Stats

  • Binary size: 34MB → 23MB (-32%)
  • Benchmarks: 0 → 5 (criterion framework)
  • Dependabot: Python+Actions → +Rust (weekly updates)

v6.1.0

Choose a tag to compare

@github-actions github-actions released this 10 Apr 20:08

Added

  • Sprint 17 complete — Code quality & dead code removal:
    • Framework detection from imports (20+ frameworks: Django, React, Rails, etc.)
    • Copilot provider fully wired in all factory functions
    • Session dead code removed (commented out for future feature)
    • 5 new framework detection tests

Fixed

  • 6 clippy warnings eliminated — Zero-warning strict lint:
    • Removed unused imports (OpenOptions, std::io::Write, warn, CopilotProvider)
    • Fixed unwrap() after is_some()if let Some(p) = path
    • Derived Default for PluginManager (manual impl removed)
    • Test helper warnings suppressed with #[allow(dead_code)]

Stats

  • Tests: 587 → 602 (+15)
  • Clippy warnings: 6 → 0
  • Dead code: Session module removed, Copilot wired