Releases: tang-vu/ContribAI
Releases · tang-vu/ContribAI
Release list
v6.8.0
Added
contribai prscommand — list submitted PRs from local memory with status filter:--status open|merged|closed|failed|all(defaultall)--limit N(default 20)--json— emit a JSON array (PR number parsed as int) for piping tojq/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
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-executionruby_specific— Ruby: monkey-patching, frozen_string_literal, eval/send injectionphp_specific— PHP: SQL injection, type juggling, error suppression, deprecated mysql_*vue_patterns— Vue 3: ref vs reactive, v-html XSS, lifecycle orderingrails_security— Rails: mass-assignment, rawfind_by_sql, CSRF, secret_key_baselaravel_security— Laravel: $fillable/$guarded, unprotected routes, DB::raw injectionspring_security— Spring/Spring Boot: filter-chain holes, JPA injection, exposed actuatorsdockerfile_security— Dockerfile:latesttag, root user, secrets in layers, missing HEALTHCHECKgithub_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
Added
contribai logscommand — tail~/.contribai/events.jsonlfrom 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 intojq/scripts.- Pretty mode color-codes events by lifecycle stage (cyan=start, green=complete/merged, red=error) and renders the
datamap as compactkey=valuepairs with long strings truncated. - Skips and reports unparseable lines instead of failing the whole command.
v6.5.0
Added
contribai doctornow 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_schematest (json_parser.rs:342) — was passing&&strinstead 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 iteratesfile_imports.keys()instead ofparsed_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 codeandonly accept|allow|welcome manual|human contributions.
- Compile error in
- Removed unused imports & a useless
len() >= 0comparison 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.toml6.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
v6.4.0
v6.3.0
v6.2.1
v6.2.0
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.releaseto workspace root (eliminated warning) - LTO + strip + opt-level=z all applied correctly
- Moved
Stats
- Binary size: 34MB → 23MB (-32%)
- Benchmarks: 0 → 5 (criterion framework)
- Dependabot: Python+Actions → +Rust (weekly updates)
v6.1.0
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()afteris_some()→if let Some(p) = path - Derived
DefaultforPluginManager(manual impl removed) - Test helper warnings suppressed with
#[allow(dead_code)]
- Removed unused imports (
Stats
- Tests: 587 → 602 (+15)
- Clippy warnings: 6 → 0
- Dead code: Session module removed, Copilot wired