Skip to content

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 30 Sep 19:06
e15a393

0.4.0 (2026-09-30)

⚠ BREAKING CHANGES

  • report scans to Perch Cloud and replace local answer reuse (#170)
  • A scan asks one broad bug question, has_bug, alerting at 60%, and kind names what it found. The 15 specific bug checks are gone: on held-out bug pairs they added false alerts without ranking bugs any better. Security is asked only with --filter type=security or security in scan_types. It asks the 2025 CWE Top 25, less CWE-20, plus six more classes, filtered by language: 21 checks for Python, JavaScript and TypeScript, 22 for Java and Go, 28 for Rust, 30 for C and C++. Security findings use labels such as sql_injection and missing_authorization, so filters and closures written against the old labels no longer match. See the benchmark results.

Features

  • one bug question, and security checks chosen by CWE and language (#172) (9398517)
  • Optimize bug questions (#228) (3f15291)
  • perch scan --force asks Perch Cloud again instead of using cached answers (#233) (f90c379), closes #232
  • report scans to Perch Cloud and replace local answer reuse (#170) (268f9e1)
  • scan with Liquid AI decision models (#230) (0157f09), closes #229

Bug Fixes

  • a Choice names at most 128 lines, which is what Perch Cloud's bug model accepts (#243) (43cf831)
  • a method or file needing more than 64 requests was skipped instead of read (#179) (0f3269c)
  • a request that meets a login refreshed under it is sent again with the new token (#247) (0d8181f)
  • a scan that could not read some methods exits 1 instead of passing (#249) (0f6a33e)
  • code outside a named function was never scanned (#214) (93844c7)
  • ignore dir/** skipped only the directory's top level (#216) (63ffd5d)
  • parser downloads are retried and happen on first use, so a GitHub error no longer stops a scan (#245) (dc538f2)
  • perch check never asked mentions or callers-of rules (#209) (66a6999)
  • perch issues <id> printed documented NaN% on a default scan (#165) (b50eb63)
  • perch no longer asks which line a defect or broken rule is on; a finding points at its method (#248) (389d15a)
  • perch scan <path> read nothing when ignore covered it (#177) (eaa137b)
  • perch scan flagged code outside functions as misnamed (#224) (0a71e83)
  • perch scan kept rule answers about edited comments and deleted tests (#213) (c4ef3c1)
  • pull requests ran Perch twice (#211) (3903626)
  • security questions no longer treat the operator's own arguments as untrusted (#241) (2256b58), closes #240

Performance Improvements

  • scan reads methods in a rolling pool of 32 and asks file rules alongside searches (#244) (7e1c704)