AI validation that lowers grades and learns, decisions that hold until the code changes, and grades that follow what can be exploited
- Validate with AI, one or five hundred
- Tick findings on the list, or select everything matching the filters, and a model reads them in the background, with progress, tokens spent and what happened to each on a new Learned rules page. A reading lower than the grade now lowers it, and the finding says so. It never raises one, never lowers a credential or a known exploited package, and never overrides a person. The flagged line now goes with the question, so a model that was not sent the code still sees what was found.
- The scanner learns from every answer
- Each answer says which other findings deserve the same grade for the same reason, and that becomes a learned rule with a synthetic test. The rule grades its siblings at once and answers later validations and later scans without asking the model, so the same question is not paid for twice. It stays in its repository until somebody applies it everywhere, and a model that later disagrees retires it and puts its grades back.
- A decision holds until the code changes
- A regrade, or an AI grade, records the code it was made against. Rescanning the same code keeps it. When the flagged lines change it is lifted, the engine's grade comes back, and the finding says who decided what and that the code changed.
- Waived findings stay waived
- A scan that missed a waived finding marked it fixed, and when it came back it was reopened as open, approved waiver and all, which put several hundred waived findings back on dashboards. It now comes back waived while the waiver stands, and the next scan repairs the ones already affected.
- How new a live credential is
- The dashboard's Live credentials opens the list newest first, with a sortable column of days since each was first discovered and how long ago it was committed. The finding page says the same. Sorting, paging and bulk actions now keep every filter on the list, where before sorting the live list showed every finding and a bulk action reached more than was on screen.
- Severity rules on Where and Repository
- A custom severity rule can now match the file, or the package for a dependency, and the repository, with a star for any part.
- Grades follow what can be exploited
- An expired token is info, a known exploited package is at least high unless it does not ship, a package only a build tool pulls in is low, and a copy of a package is judged at its own version rather than another copy's. A credential nobody can show is dead stays critical. Keys only semgrep finds now go through the credential pass, and a rule withdrawn from semgrep's registry no longer closes what it found.
- Fewer findings the code beside them already rules out
- A v-html binding whose method returns only DOMPurify output is low, a redirect that begins with the server's own address is low, a missing rate limit where there is no password is low, and a workflow value only a repository writer controls is low. Each one says why on the finding.