Generated
Every change, in the order it merged
This is the main branch of the engine, read back as a list. Each entry is a commit that reached main: the pull request it came from, the part of the product it touched most, and the scan modules it changed. It is written by a script from the repository history, so it cannot describe a change that did not ship or omit one that did.
- Engine version
- v1.61.0
- Changes listed
- 150
- Via pull request
- 48
- Modules touched
- 88
Regenerated 2026-09-06 at c51f923 · history shown from 2026-08-05 · the narrative behind each release is in docs/HISTORY.md
6 September 2026
- website
docs(history): record the #418 port series — four measured pieces, two rules not taken, one narrowed
#470c51f92342 filesalso engine, tests, our CI, repo, tooling, docs
bundleSizeciSecuritycodeQualitydocumentationhardcodedUrllinksprSizesecrets
- website
fix(nightly): install every workspace, and go red when the sweep is red — three tests failed for nothing a human looks at
#471cb642cc41 filesalso engine, tests, our CI, repo, tooling
bundleSizeciSecuritycodeQualitydocumentationhardcodedUrllinksprSizesecrets
- website
fix(ci): the job named "Full Scan" ran the quick suite; the Stop-hook sweep was never wired (port of #418, piece 4)
#4699b1b23b40 filesalso engine, tests, repo, our CI, tooling
bundleSizeciSecuritycodeQualitydocumentationhardcodedUrllinksprSizesecrets
- website
fix(website): suite sizes, tool count and model names are read from the engine, never typed (port of #418, piece 3)
#468c9439dc37 filesalso engine, tests, tooling
bundleSizeciSecuritycodeQualitydocumentationhardcodedUrllinksprSizesecrets
- engine
fix(rules): port #418's rule fixes onto main, each re-measured on the corpus (piece 2)
bundleSizeciSecuritycodeQualitydocumentationhardcodedUrllinksprSizesecrets
5 September 2026
- engine
docs: one stripper — Doctrine §4 rows, KI #77 string-guard half closed, KI #108 opened, HISTORY entry
#460ebd2a6b74 filesalso tests, CI integration, our CI, docs
asyncIterationauthBypassbashSafetyciSecuritycookieSecuritycronExpressioncrossFileTaintdataIntegrityenvVarserrorSwallowhardcodedUrlhomoglyphintegrationTestsmoneyFloatnPlusOnepromptSafetyraceConditionredosresourceLeakretryHygienesecurityshellssrftlsSecurityundefinedRef
- engine
feat(core): one stripper — every string and comment guard imports source-strip.js; three false negatives the corpus was sitting on
#458c15d52871 filesalso tests, CI integration, our CI
asyncIterationauthBypassbashSafetyciSecuritycookieSecuritycronExpressioncrossFileTaintdataIntegrityenvVarserrorSwallowhardcodedUrlhomoglyphintegrationTestsmoneyFloatnPlusOnepromptSafetyraceConditionredosresourceLeakretryHygienesecurityshellssrftlsSecurityundefinedRef
- engine
walk: one definition of what a walk skips — fifteen private exclude lists become imports of src/core/walk-excludes.js, and the import graph stops skipping every dot-directory
#4578ab5b7019 filesalso tests, docs
crossFileTaintenvIntegritymutationopenapiDriftsecretssyntaxundefinedRef
- engine
deadCode: shipped-but-unreachable files, on one import graph that resolves the indirection (KI #96)
#443c682da647 filesalso tests, docs, website, tooling
aiReviewauthBypassciSecuritycodeQualitycrossFileTaintdeadCodeduplicateCodeerrorSwallowfakeFixDetectorhardcodedUrlintegrationTestskuberneteslinkslintmutationnPlusOneraceConditionregressionPredictorretryHygienerollbackHonestyruntimeErrorssqlMigrationsssrfterraform
- engine
Confidence: the block threshold is calibrated on the corpus, on every run (Move 09)
#4401ada58b34 filesalso tests, docs, website, our CI, tooling
aiReviewauthBypassciSecuritycodeQualitycrossFileTaintduplicateCodeerrorSwallowfakeFixDetectorhardcodedUrlintegrationTestskuberneteslintmutationnPlusOneraceConditionregressionPredictorretryHygienerollbackHonestyruntimeErrorssqlMigrationsssrfterraform
- engine
Modules: the last 22 CRLF conversions — split and join together, and a fix keeps the file's line endings (KI #77)
#44254d2bbc39 filesalso website, tests, docs, our CI, tooling
aiReviewauthBypassciSecuritycodeQualitycrossFileTaintduplicateCodeerrorSwallowfakeFixDetectorhardcodedUrlintegrationTestskuberneteslintmutationnPlusOneraceConditionregressionPredictorretryHygienerollbackHonestyruntimeErrorssqlMigrationsssrfterraform
4 September 2026
- engine
KI #106 closed: the last nine framework gates open (promptSafety → seo), ceilings ratchet nightly (Move 06)
#43126a14bf34 filesalso tests, docs, our CI, tooling, repo
bashSafetyciSecuritydataIntegrityflakyTestspromptSafetyseoshellsqlMigrationstrpcContractzodSchemaPresence
- engine
Part 2 — corpus to twenty (four monorepos); six more modules measured; shared guard fixes; webhookPayload + cacheHeaders gates; moneyFloat + prSize
#4283fb420044 filesalso tests, docs, website, precision corpus, repo
accessibilityauthBypasscacheHeadersciSecurityfakeFixDetectorhardcodedUrlintegrationTestslinksmoneyFloatperformanceprSizesecurityseounitTestswebhookPayload
- tests
Part 1 — doctrine + the Fifty in the repo; corpus to 16 repos (all eight languages); KI #106 gates; 8 modules measured on the monorepos
#426a35d67e65 filesalso engine, docs, website, precision corpus, tooling
accessibilityaiHallucinationbashSafetyciSecuritycodeQualitydocumentationerrorSwallowintegrationTestsmonorepoConstraintsnPlusOnesecretssecurityseosyntaxtypescriptStrictnessundefinedRefunitTestsvisualwebHeaders
- engine
The Fifty, moves 10/11/17/19/21/24/25/28/36/38 + 7 engine precision fixes our own scanner found
#423910e4b7138 filesalso website, tests, docs, tooling, our CI, repo
asyncIterationauthBypassbashSafetycacheHeadersclaudeCompliancecookieSecuritycronExpressiondataIntegritydatetimeBugdeadCodedeployContractdockerfiledocumentationduplicateCodeenvVarserrorSwallowfakeFixDetectorfeatureFlagflakyTestshardcodedUrlhomoglyphkuberneteslogPiimoneyFloatnPlusOneopenapiDriftpromptSafetyraceConditionredosresourceLeakretryHygienerollbackHonestysecretRotationsecurityserviceConsistencyshellsqlMigrationsssrfsystemdterraformtlsSecuritytypescriptStrictnesswebHeaders
- engine
fix: the gate could not fail, and the corpus proving it was safe held two fixtures
#41935bf48968 filesalso tests, website, precision corpus, CI integration, our CI, docs, tooling, repo
aiHallucinationaiReviewauthBypassbashSafetycodeQualitycompatibilitycrossFileTaintdataIntegritydeployContractdeployScriptValidatordocumentationerrorSwallowfakeFixDetectorhardcodedUrlintegrationTestsmutationnativeBundlerGuardperformancesecretssecuritysyntaxtrpcContractwebhookPayloadwpAdminProtectionwpBackupValidationwpExposedFileswpUserEnumeratewpXmlrpcExposedzodSchemaPresence
2 September 2026
- tests
test(events-push): pin the eventId vectors Gluecron confirmed, and record KI #103
direct to main6b29f382 filesalso docs
- website
docs(gate-verdict): the 'warning failed the push' note described code that never shipped
direct to maine3bd4e92 filesalso tests
- website
fix(gluecron): the verdict Gluecron received came from a file the tests never ran
direct to main0737dc311 filesalso tests
- website
fix(events-push): Gluecron's baseSha never reached scan_queue.base_sha
direct to main528e2ad3 filesalso tests
- website
fix(gate): the PR gate could never go red, and Gluecron's failed on a warning
direct to main3d917a98 filesalso tests, engine
- engine
fix(wp): the version-leak module told customers "Good" without ever fetching
direct to main6e0c00810 filesalso tests
wpAdminProtectionwpBackupValidationwpMalwarePatternswpPhpVersionEolwpPluginCveCheckwpThemeAbandonmentwpUserEnumeratewpVersionLeakwpXmlrpcExposed
1 September 2026
- engine
fix(python): two false positives on the first Python repo we ever scanned
direct to main2aced502 filesalso tests
- engine
fix(deadCode): a `.js` specifier that means `.ts` broke every re-export chain
direct to mainea3d6672 filesalso tests
- tests
fix(codeQuality): console.log outside library code is info, not a warning
direct to main7230bbf4 filesalso engine
- tests
test(confidence): the 0.20-vs-full question answered — the scorer was right
direct to main438787f1 file
- engine
fix(innerHTML): our own false positives, found by auditing our side of the diff
direct to mainfd5db3d2 filesalso tests
- engine
fix(scope): .mjs and .cjs were never scanned for dangerous patterns
direct to main2230dcf12 filesalso tests
aiReviewcodeQualitycompatibilitydataIntegritydocumentationintegrationTestsmutationperformancesecurity
- engine
fix(flakyTests): 54% of the warning noise on a clean repo was hermetic tests
direct to main7a292b12 filesalso tests
- tests
test(secrets): pin the invariant that stops a neighbouring field hiding a key
direct to mainf94ebd21 file
- engine
fix(readiness): the derived score disagreed with the gate it derives from
direct to main278925a3 filesalso tests
- engine
fix(score,scope): the public badge graded customers backwards
direct to main473cfe28 filesalso website, tests
- engine
fix(scope): we blocked axios, lodash, chalk and fastify — 5 of 6 clean repos
direct to main595c32011 filesalso tests, docs
- docs
docs(benchmarks): precision/recall on third-party code, measured today
direct to main2ba612c1 file
- engine
fix(mcp,security): every MCP scan was crashing, and a second innerHTML rule
direct to main4f6246b7 filesalso tests
- website
fix(platform): our public map advertised a Vapron endpoint that never existed
direct to mainc2ae9326 filesalso tests
31 August 2026
- engine
fix(mcp): the agent surface handed dev agents a silently short list
direct to mainaaf95ea2 filesalso tests
- our CI
fix(bashSafety): a deploy that could exit 0 having restarted nothing
direct to main3a54e9a6 filesalso engine, tests, tooling
- engine
fix(a11y,visual,perf,data): one real defect, four rules reporting what they never observed
direct to main695f7709 filesalso tests, website
- website
fix(authBypass): all 16 blocking findings were false positives
direct to maine69f9a714 filesalso engine, tests
- tests
test(suppression): a mute with no positive control now fails CI
direct to main29b5ca93 filesalso engine
- engine
fix(mcp,playground): two places we told the customer something untrue
direct to main872605c2 filesalso website
- website
fix(status): ready:true while the credential was known filler
direct to main8f403222 filesalso tests
- engine
fix(lint): one unnecessary escape has held main red for 24 commits
direct to main8d134471 file
29 August 2026
- tooling
fix(smoke): the */5 cron is not a 5-minute check — real cadence moves to the box
direct to main09d1efc6 filesalso our CI, docs
- website
fix(status): the preferred git host could go dark with nothing reporting it
direct to main56b04f81 file
- CI integration
docs(smoke): correct the vapron latency claim — path, not server
direct to main755f86f3 filesalso tests, docs
- CI integration
feat(smoke): empire-smoke targets corrected and actually scheduled (KI #102)
direct to main9be1b4c5 filesalso our CI, tests, docs
- docs
fix(config): our own .gatetest.json described protection that did not exist
direct to main37d3ba22 filesalso repo
- engine
feat(cli): the gate stopped ignoring your flags in silence
direct to main26d503c3 filesalso tests
- tests
fix(tests): MCP scan_local test used a 30s timeout its siblings had already outgrown
direct to main0bb30ad1 file
- tests
fix(tests): stale model id broke the legacy-model guard
direct to main2b205ba1 file
- docs
docs(roadmap): record the fourth instance of the duplicated-helper class
direct to main1716d631 file
- website
fix(preview): the file path was deciding finding severity, in both directions
direct to main511cbc12 filesalso tests
- website
fix(preview): free scan returned file:null for every finding — one parser now, not two
direct to mainaa76db73 filesalso tests
26 August 2026
- engine
fix(config): warn on .gatetest.json keys nothing reads
direct to main21ea14b2 filesalso tests
25 August 2026
24 August 2026
- docs
Merge remote-tracking branches 'origin/flywheel/site-stats' and 'origin/flywheel/trainer-report'
direct to mainb24f464228 filesalso engine, website, tests, CI integration, repo
aiHallucinationaiReviewauthBypassbashSafetycompatibilitycookieSecuritydependenciesduplicateCodeerrorSwallowflakyTestssecurity
- website
feat(suppression): suppression in place — @gatetest ignore <rule> on the PR writes .gatetestignore (audit advancement #13)
direct to main74e39e68 filesalso docs, engine, CI integration, tests
- website
feat(pipeline): reliability hardening — audit advancement #11 complete
direct to maind56523510 filesalso tests, docs
- engine
feat(recall): the six missed NodeGoat classes now detected — NoSQLi, template XSS, cookie flags, IDOR, CSRF, helmet (audit advancement #6)
direct to maincfa08db6 filesalso docs, tests
- website
feat(fix-verification): every AI fix now ships with proof — audit #7 complete
direct to maine725c3313 filesalso tests, engine, docs, repo
- engine
fix(precision): ship the full 2026-08-18 FP-residue list, every rule with positive + negative controls
direct to main0095cd312 filesalso tests, docs
aiHallucinationbashSafetycompatibilitydependenciesduplicateCodeerrorSwallowflakyTests
21 August 2026
- website
fix(deps): next 16.2.10 -> 16.3.1 + npm audit clean in both workspaces (closes KI #59)
direct to mainb306cec5 filesalso docs, repo
- website
honesty: architecture diagram fix-stage label matches the shipped pipeline
direct to maina88b6db1 file
- website
docs+honesty: production-ready checklist; site copy now describes only what ships
direct to main48bb13d19 filesalso engine, docs
20 August 2026
18 August 2026
- docs
docs(audit): report reflects the sore-point ships (registry, PR budget, reachability, attribution)
direct to maine745ecb1 file
- website
feat(gate): "in this change" attribution — every PR finding says whether it sits in code the change touched
direct to mainfdc99079 filesalso tests
- website
docs+site(sync): 'How we keep it quiet' on how-it-works; ROADMAP records the sore-point ships
direct to main5cea8612 filesalso docs
- engine
feat(noise): one defect is one finding — cross-module dedupe, risk-first ranking, a 5-item PR budget
direct to main99c593712 filesalso website, tests
- engine
fix(ops): readiness probe reads the real /api/scan/preview shape — a healthy funnel no longer reads as 'scanned nothing'
direct to main49f54d52 filesalso tests
- docs
docs(audit): the 2026-08-18 deep-audit report — shipped, live status, complaints, FP measurement, top-20 advancements, Craig's list
direct to main2ff7bbb1 file
- docs
fix(security): the hosted engine never executes customer-controlled code on the box
direct to main68ef2ea6 filesalso tests, website
- website
fix(lint): our own quick gate on our own repo — two useless escapes, three raw anchors, one deliberate-fallback marker
direct to main5df15095 filesalso engine
- website
fix(website): sync the site with the product — funnel, honesty and SEO fixes from the audit
direct to maind34379344 filesalso tests, our CI, tooling, docs
- website
fix(security): close the unauthenticated SSRF / fail-open / free-AI-spend holes the audit found
direct to main0936de113 filesalso engine, tests
- engine
fix(fake-fix): scope the git diff to the scanned project (-- .) — a subdirectory scan reported the enclosing repo's commit
direct to main430e1951 file
- engine
fix(engine): cut blocking false positives ~90% on real repos — measured, with positive controls
direct to main770aabb32 filesalso tests
accessibilityauthBypassclaudeCompliancecodeQualitydataIntegritydeployReadinessdeployScriptValidatore2eenvVarslinksmutationperformancesecretssecurityseoundefinedRefunitTestsvisual
- website
fix(scan): every hosted scan runs the real engine on the whole repo — not 23 modules on 50 files
direct to main070de6515 filesalso tests
- website
fix(scan): read public repos without any git-host credential — the funnel no longer dies with the PAT
direct to mainb0b45c26 filesalso tests
- docs
Merge remote-tracking branch 'origin/flywheel/trainer-report'
direct to main36f7350242 filesalso website, tests
- website
chore(stats): refresh website testing statistics 2026-08-18
direct to main60160d11 file
16 August 2026
- docs
docs(ki-101): deploy half resolved — production is on HEAD for the first time
direct to maind0d788f1 file
- website
fix(legal,deploy): stop publishing notes meant for counsel; deploy to the live checkout
direct to main9244d8e3 filesalso our CI
- engine
fix(ops): the readiness probe ran red 100 times and still missed the outage
direct to main8a732005 filesalso our CI, tests, tooling, docs
- website
fix(scan): an unreadable repo tree is not an empty repo — stop blaming the customer
direct to main3a9437b2 filesalso tests
12 August 2026
- our CI
fix(deploy): fail when the deploy is inert — the warning was tried and lost
direct to maina2b308d1 file
- tests
fix(preflight): name the fatal blocker, stop crying wolf about the optional cron
direct to mainf8c9e1d2 filesalso tooling
- precision corpus
fix(corpus): re-baseline empty-js-module — and TIGHTEN its error ceiling to 0
direct to mainbe0643b3 files
- engine
fix(accuracy): console.log is a library-code rule — stop firing it everywhere
direct to main67ab0b02 filesalso tests
- website
feat(ui): wire up shadcn/ui + Radix, and defuse the token collision first
direct to main227562f6 filesalso docs
6 August 2026
- website
feat(home): three doors in, and the website was quietly advertising 120 modules
direct to mainff0fe9b5 filesalso tests
- website
feat(status): detect env vars that are SET but fake
direct to maind68977a4 filesalso engine, tests
- docs
docs: first end-to-end production test — pipeline proven to the GitHub API, blocked there by dead credentials
direct to main110c4e02 files
5 August 2026
- website
fix(security): lock down /api/heal/ssh — admin-only, env-only SSH target
direct to maine12cf642 filesalso tests
- tooling
fix(deploy): every deploy would have stripped +x from tick.sh and killed the timers
direct to mainb379a4e3 files
- docs
docs: record what probing the running system actually found
direct to main3a3555c2 files
- tooling
feat(deploy): actually drain the scan queue — nothing ever scheduled the ticks
direct to main39f4e3e6 files
- website
fix(worker): the scan queue never drained — 'column q.host does not exist'
direct to maind3fe3731 file
- tooling
fix(deploy): the clean-tree guard made the deploy script single-use
direct to main96df6c51 file
- tooling
fix(deploy): pipefail + grep -q made the restart check false whenever it was true
direct to main54552a51 file
- tooling
fix(deploy): the deploy script built, said done, and never restarted
direct to main3bd67ec1 file
Older history lives in docs/HISTORY.md, which also records the measurement behind each release. Want to see the engine on code it does not control? The precision benchmark is regenerated nightly.