Skip to content

Releases: lakeday-org/perch

v0.4.3

Choose a tag to compare

@github-actions github-actions released this 11 Oct 00:11
73a085d

0.4.3 (2026-10-11)

Features

  • perch ci shows what CI found on your branch (#252) (6f40a1f)

Bug Fixes

  • perch scan stopped on a function inside a constructor that uses this (#359) (dacd98f)
  • print rule breaks in perch scan (#343) (cbc6211), closes #342

v0.4.2

Choose a tag to compare

@github-actions github-actions released this 08 Oct 04:33
0bc7e10

0.4.2 (2026-10-08)

Features

  • perch coverage finds low-value tests and real coverage gaps (#317) (767a4e4)
  • perch coverage finds tests in every language scan reads (#331) (0c27493)
  • perch coverage makes every mutant of a method, fourteen kinds (#337) (7f88076)
  • perch coverage predicts which mutants your tests kill (#320) (73fc9bf)
  • PERCH_BASE_URL can point at OpenAI's Decisions API (#335) (e122e6d)

Bug Fixes

v0.4.1

Choose a tag to compare

@github-actions github-actions released this 02 Oct 20:51
8e2d85e

0.4.1 (2026-10-02)

Features

  • perch tells Perch Cloud which command and run sent each request (#267) (93f6730)

Bug Fixes

  • a repository with no code scans its file rules instead of failing (#250) (bba684d)
  • perch scan --filter rule= hid perch.yaml parse errors (#264) (879944b)
  • perch scan asked again about unchanged methods when lines above them moved (#310) (7f6967d)
  • perch scan failed on defect readings barely over 50% (#303) (613c4c4), closes #302
  • perch sent a model more questions per request than it accepts (#265) (07d38ca)
  • Rust super imports resolved to no module or the wrong one (#287) (32ecb54)

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)

v0.3.5

Choose a tag to compare

@github-actions github-actions released this 24 Sep 18:23
f23d126

0.3.5 (2026-09-24)

Bug Fixes

  • a method whose neighbourhood did not fit the budget was never read (#103) (182b5a4)
  • a reading over the request allowance was sent partway before being dropped (#104) (5754679)
  • a request could carry more questions than the gateway accepts (#121) (6a399b7)
  • a scan target reached through a symlink read no methods (#146) (69b519d)
  • a scan with no API credits reported nothing to report and exited 0 (#145) (a6c5960)
  • a scan with only method rules still read every file's source (#148) (05b46d6)
  • a syntax error anywhere in a file dropped every method in it (#140) (f0acade)
  • Improve large document scanning (#102) (5500d69)
  • large scans repeatedly rewrote every previous answer (#116) (37822e3)
  • perch rules could not add to, edit or remove from a split rule file (#100) (9a2dbd8)
  • question batches were capped at 128 when System One limits tokens (#152) (014fc18)
  • reference extraction rejected non-ASCII names and misread TypeScript imports (#147) (9e0d66c)
  • unqualified Go calls searched every file in the repository (#127) (159dbec)

Performance Improvements

  • the node wrapper called into native code on every property read (#105) (50df913)

v0.3.4

Choose a tag to compare

@github-actions github-actions released this 21 Sep 04:03
df8ce5d

0.3.4 (2026-09-21)

Features

  • scan_types decides which issue types a scan asks about (#62) (27868d0)

Bug Fixes

  • a scan could hang, crash, or pass on an unread file (#93) (06d577b)
  • allow custom API endpoints and models (ba775a9)
  • dependency and build directories were entering scans across languages (#92) (b4ad713)
  • file rules skip the files method scanning excludes (#88) (77aee23)
  • large files were skipped or exceeded Jev's request limits (#89) (aa3f08c)
  • minified JavaScript variants stay out of scans (#82) (2d2fded)
  • write .perch/.gitignore instead of editing .git/info/exclude (#76) (f494ffe)

v0.3.3

Choose a tag to compare

@github-actions github-actions released this 19 Sep 01:42
54a38d6

0.3.3 (2026-09-19)

Bug Fixes

  • a release published from the branch could not tell it was one (#59) (d1db70b)

v0.3.2

Choose a tag to compare

@github-actions github-actions released this 18 Sep 23:33
94b3412

0.3.2 (2026-09-18)

Features

  • perch scan --filter rule=<name> runs one rule (#56) (2802d1e)

Bug Fixes

  • a broken search rule was reported nowhere and failed nothing (#55) (9c3bfa6)
  • perch scan <dir> read the whole repository (#48) (1628250)
  • release-please tagged a form nothing publishes on (#41) (b037c17)

Miscellaneous Chores

  • keep 0.x versions on patch bumps (#57) (a3b4929)

perch: v0.3.0

Choose a tag to compare

@github-actions github-actions released this 18 Sep 18:26
3289b85

0.3.0 (2026-09-18)

Features

  • let release-please decide the version (#37) (221ab9a)
  • perch.yaml can say what not to read (#40) (3c5d842)

Bug Fixes

  • report a defect whose line was never located (#39) (77e7eba)
  • the corrected method alone, checked by reachability, metrics, the tests that reach it, and System One (80d1067)