Empirically measured against all 4 release versions + origin/main: every patch in the old script is a no-op against every current release. v1.14.4 (the version that originally needed patches) doesn't even ship src/ in the tarball — the old script silently no-op'd on it because it couldn't find files to patch, then the build crashed with MODULE_NOT_FOUND in production. Repurposed as a verifier: 5 hard checks (server.js requires, license-manager path, src/ tree presence, license-keygen.js at root, generic src/ require path scan) + informational warnings. Exits 1 on ANY failure with a clear 'Build should be ABORTED' message naming the v1.14.4-class bug if relevant. Old behaviour was 'patch and continue' (silently hid regressions); new behaviour is 'fail loud' (every regression now produces a build abort). Files changed: - scripts/dashcaddy-post-deploy-patches.sh — rewritten as verifier (222→274 lines, header explains the empirical evidence + behaviour change) - dashcaddy-api/scripts/test-dashcaddy-post-deploy-verifier.sh — new regression test, 17 assertions across 10 scenarios (clean tree, missing files, broken requires, empty src/, missing app.js, absolute path, etc.) Empirical measurements documented: - origin/main: 5/5 checks pass - v1.14.9 (latest): 5/5 checks pass (0 patches applied under old script) - v1.14.8: 5/5 checks pass (0 patches applied under old script) - v1.14.4: 2/5 checks FAIL under new verifier (src/ missing, license-manager in wrong location) — old script silently no-op'd on the same input Tests: 1214/1214 Jest + 31 shell assertions. Lint: 150 warnings, all pre-existing in untouched files (zero new warnings introduced).