// changelog

v1.8.0

Signal control to cut repeat noise — a user-private baseline that accepts a brownfield repo's existing findings so you only see new ones, and inline `// commitbrief-ignore` suppression with a visible reason — both true removals that are reported, never silent. Plus a `.pre-commit-hooks.yaml` for one-line pre-commit framework adoption, and three new flaky-test rules: brittle selectors, over-mocking, and wall-clock-dependent assertions.

Released June 20, 2026

Added

  • Signal control: baseline + inline suppression (ADR-0027). Two new ways to cut repeat noise without hiding findings from review:

    • Baselinecommitbrief --update-baseline records the current findings in a user-private .commitbrief/baseline.json (gitignored, never committed); subsequent runs show only new findings. It’s local convenience only — it never propagates, so CI and the next reviewer still see everything (a teammate can’t bake a bug into a shared baseline). Skip it for a run with --no-baseline; turn it off with review.baseline: false. Findings are fingerprinted by file + severity + title (not line number, so a baselined finding survives code drift).
    • Inline suppression — a // commitbrief-ignore: reason (or commitbrief-ignore[high]: reason) comment on a finding’s line drops that finding, with the reason visible in the diff the reviewer reads.
    • Both are true removals — a removed finding no longer counts toward --fail-on and no longer appears in --json findings[] (unlike the display-only --min-severity). Neither is silent: additive optional meta.baselined / meta.suppressed counts appear in --json (the schema stays v1) and a one-line N baselined · M suppressed footer prints to stderr.
  • .pre-commit-hooks.yaml — pre-commit framework integration. Add CommitBrief to any repo’s .pre-commit-config.yaml in one entry. Two hook ids: commitbrief (language: golang, the framework builds and pins it for you — no separate install) and commitbrief-system (language: system, uses an already-installed commitbrief on PATH). Distinct from the existing git-native install-hook.

  • Flaky-test detector: three new rules (ADR-0022). The deterministic, provider-free pre-pass now flags three more high-precision anti-patterns in changed test files, alongside hard-sleep and unseeded-random:

    • brittle-selector (JS/TS) — position-based UI/test selectors: :nth-child, absolute XPath, .eq(<n>) / .nth(<n>), trailing [n] predicates. Stable data-testid/role/text selectors are not flagged.
    • over-mock — a test piling on an excessive number of mock setups (file-scoped, per test function), a signal the test is brittle.
    • time-dependency — an assertion coupled to the wall clock (time.Now() / Date.now() / new Date() …) without an injected clock. All three are on by default for API providers; skip with --no-flaky or review.flaky: false. Localized (en/tr).