v1.7.0
A deterministic flaky-test detector flags timing-dependent and unseeded-random anti-patterns in changed tests before any model call. Plus guard hardening — user-extensible secret patterns and a prompt-injection scan of your own rules — glob support for the `--file`/`--dir` filters, and a `setup --alias` installer for a `cbr` shell shortcut.
Added
-
Deterministic flaky-test detector (ADR-0022). A static, provider-free pre-pass scans the added lines of changed test files for high-precision flakiness anti-patterns — hard-coded sleeps / fixed waits (
time.Sleep,Thread.sleep,Task.Delay,asyncio.sleep,*.waitForTimeout, numericcy.wait,usleep,sleep(<n>)) and unseeded randomness (Math.random, Pythonrandom.*, Gomath/rand). Findings merge into the structured output, so they render, count toward--fail-on, and--copylike any other finding. No model call, no JSON-schema change. On by default for API providers; skip per-run with--no-flakyor persistently withreview.flaky: false. Localized (en/tr). -
setup --alias— install a shell alias (ADR-0023).commitbrief setup --aliasskips the provider wizard and installs a shell alias (defaultcbr) into the right startup file per shell — bash, zsh, fish, PowerShell, and cmd.exe (via a DOSKEY macrofile loaded from a mergedAutoRunregistry value). The alias lives in an idempotent managed block that is replaced in place on re-run and never clobbers surrounding lines. If the name shadows an existing command you are warned first.--alias=<name>sets it without prompting. -
User-extensible secret-scan patterns (ADR-0024).
guard.secret_patternslets you add your own credential regexes on top of the built-in eight — useful for internal/company token formats. Patterns are additive: the built-ins always run and cannot be disabled or shadowed (useguard.secret_scan: falsefor that). An invalid regex aborts the review before any provider call, naming the offending entry. As with the built-ins, only the line number and pattern name are ever reported — never the matched text. -
Prompt-injection scan of your rules (ADR-0025). When you use a custom
COMMITBRIEF.mdorOUTPUT.mdtemplate, its content is scanned for prompt-injection phrasing (“ignore previous instructions”, “you are now…”, “system prompt”, …) before it joins the system prompt. On a match the CLI prints a non-blocking warning (file + line numbers) and continues — it never aborts, because it is your own file. The embedded default rules are trusted and skipped. Toggle withguard.injection_scan(default on). -
Glob support for
--file/--dir(ADR-0026). The path filters now accept gitignore-style glob patterns in addition to exact paths. A value containing*,?, or[is compiled as a glob: a slash-less pattern matches the basename at any depth (--file '*.go'), and a slash-bearing pattern is anchored to the repo root (--file 'internal/**/*.ts').--diraccepts globs too (--dir 'app/**'). Backward compatible: a value with no glob metacharacter keeps its exact pre-v1.7 behavior. An invalid pattern errors clearly instead of silently mis-filtering.