Global Audit 2026 — Full Results
Generated by
just run-gauntlet(gauntlet-runner v6.12.7) Engine: The Janitor v6.12.7
Summary
| Repo | Duration | Peak RSS | Dead Symbols | Clone Groups | PRs Bounced | Unlinked PRs | Antipatterns | Errors |
|---|---|---|---|---|---|---|---|---|
godotengine/godot |
2m51s | 58 MB | 717 | 2 | 98/98 | 69 | 8 | 0 |
NixOS/nixpkgs |
1m58s | 29 MB | 205 | 2 | 100/100 | 96 | 0 | 0 |
microsoft/vscode |
2m18s | 107 MB | 2,827 | 0 | 95/95 | 74 | 10 | 0 |
kubernetes/kubernetes |
3m22s | 166 MB | 73 | 2 | 98/98 | 85 | 4 | 0 |
pytorch/pytorch |
3m41s | 164 MB | 8,247 | 24 | 95/95 | 88 | 2 | 0 |
apache/kafka |
1m53s | 72 MB | 1 | 3 | 100/100 | 99 | 16 | 0 |
rust-lang/rust |
4m02s | 235 MB | 30 | 2 | 100/100 | 100 | 24 | 0 |
tauri-apps/tauri |
1m22s | 29 MB | 1 | 0 | 95/95 | 67 | 12 | 0 |
redis/redis |
1m33s | 23 MB | 87 | 2 | 98/98 | 94 | 3 | 0 |
vercel/next.js |
2m09s | 51 MB | 0 | 0 | 93/93 | 89 | 8 | 0 |
home-assistant/core |
3m49s | 101 MB | 8,311 | 9 | 97/97 | 83 | 4 | 0 |
ansible/ansible |
1m31s | 25 MB | 895 | 2 | 95/95 | 78 | 6 | 0 |
cloudflare/workers-sdk |
1m44s | 38 MB | 14 | 1 | 90/90 | 72 | 3 | 0 |
langchain-ai/langchain |
1m35s | 20 MB | 1,483 | 2 | 95/95 | 52 | 4 | 0 |
denoland/deno |
2m07s | 44 MB | 22 | 1 | 100/100 | 81 | 2 | 0 |
rails/rails |
2m14s | 46 MB | 120 | 2 | 95/95 | 77 | 3 | 0 |
laravel/framework |
1m48s | 34 MB | 85 | 1 | 95/95 | 68 | 3 | 0 |
apple/swift |
3m55s | 182 MB | 450 | 3 | 88/88 | 79 | 2 | 0 |
dotnet/aspnetcore |
2m12s | 142 MB | 4 | 0 | 95/95 | 81 | 2 | 0 |
square/okhttp |
1m22s | 48 MB | 22 | 0 | 88/88 | 63 | 0 | 0 |
hashicorp/terraform |
1m51s | 52 MB | 38 | 1 | 93/93 | 74 | 0 | 0 |
neovim/neovim |
1m40s | 28 MB | 145 | 3 | 90/90 | 82 | 8 | 0 |
| TOTAL | ~58m | 235 MB peak | 23,778 | 62 | 2,090/2,090 | 1,751 | 124 | 0 |
godotengine/godot
Duration: 2m51s | Peak RSS: 58 MB | PRs Bounced: 98/98 | Dead Symbols: 717 | Clone Groups: 2
Antipatterns: 8 (raw new in C++ PRs — prefer std::make_unique<T>())
Top 3 Toxic PRs
- PR #116963 by
Repiteo— score 170.0 Antipatterns: Hallucinated Security Fix: PR body claims 'RCE' but only non-code files changed (yml). A real security fix requires modifying source code. No linked issue - PR #116839 by
bruvzg— score 120.0 Antipatterns: Rawnew: prefer std::make_unique() or std::make_shared No linked issue() for exception-safe RAII ownership (x2) - PR #116993 by
Calinou— score 70.0 No linked issue
Top 3 Clean PRs
- PR #116976 by
akien-mga - PR #116954 by
dalexeev - PR #116946 by
vaner-org
Dead Symbol Certainty Audit (Top 5)
_get_resolved_dep_path(editor/file_system/dependency_editor.cpp)_get_stored_dep_path(editor/file_system/dependency_editor.cpp)_rgba8_to_packbits_encode(platform/macos/export/export_plugin.cpp)_unpair(core/math/bvh.h)_find_leavers_process_pair(core/math/bvh.h) (…and 712 more — verify withjanitor scan godotengine/godot --library)
NixOS/nixpkgs
Duration: 1m58s | Peak RSS: 29 MB | PRs Bounced: 100/100 | Dead Symbols: 205 | Clone Groups: 2
Antipatterns: 0 — IaC Shield bypass active: .nix, .lock, .json, .toml files
exempt from entropy analysis. Zero false AnomalousBlob detections (v6.12.7 fix).
Top 3 Toxic PRs
- PR #496180 by
r-ryantm— score 70.0 (unlinked — automation PR, normal signal) - PR #496179 by
r-ryantm— score 70.0 - PR #496178 by
hatch01— score 70.0
Top 3 Clean PRs
- PR #496139 by
mulatta - PR #496084 by
pancaek - PR #496074 by
kalbasit
Dead Symbol Certainty Audit (Top 5)
_handle_called_process_error(pkgs/by-name/ni/nixos-rebuild-ng/src/nixos_rebuild/init.py)CommonMarkRenderer._enter_block(pkgs/by-name/ni/nixos-render-docs/src/nixos_render_docs/commonmark.py)CommonMarkRenderer._leave_block(pkgs/by-name/ni/nixos-render-docs/src/nixos_render_docs/commonmark.py)CommonMarkRenderer._maybe_parbreak(pkgs/by-name/ni/nixos-render-docs/src/nixos_render_docs/commonmark.py)CommonMarkRenderer._admonition_open(pkgs/by-name/ni/nixos-render-docs/src/nixos_render_docs/commonmark.py) (…and 200 more — verify withjanitor scan NixOS/nixpkgs --library)
microsoft/vscode
Duration: 2m18s | Peak RSS: 107 MB | PRs Bounced: 95/95 | Dead Symbols: 2,827 | Clone Groups: 0
Antipatterns: 10 (Hallucinated Security Fix detections)
Top 3 Toxic PRs
- PR #298806 by
app/copilot-swe-agent— score 170.0 Antipatterns: Hallucinated Security Fix: PR body claims 'RCE' but only non-code files changed (json). A real security fix requires modifying source code. No linked issue - PR #298929 by
benibenj— score 70.0 No linked issue - PR #298925 by
gjsjohnmurray— score 70.0 No linked issue
Dead Symbol Certainty Audit (Top 5)
_updatePolicyDefinitions(src/vs/platform/policy/common/policyIpc.ts)_updateCounts(src/vs/sessions/contrib/sessions/browser/customizationsToolbar.contribution.ts)_updateDecorations(src/vs/sessions/contrib/chat/browser/slashCommands.ts)_updateResults(src/vs/workbench/contrib/search/browser/searchView.ts)_updateContent(src/vs/workbench/contrib/debug/browser/replAccessibleView.ts) (…and 2,822 more — verify withjanitor scan microsoft/vscode --library)
kubernetes/kubernetes
Duration: 3m22s | Peak RSS: 166 MB | PRs Bounced: 98/98 | Dead Symbols: 73 | Clone Groups: 2
Antipatterns: 4 (Hallucinated Security Fix detections)
Top 3 Toxic PRs
- PR #137346 by
aramase— score 370.0 Dead symbols added: 14 Logic clone groups: 42 No linked issue - PR #137288 by
ffromani— score 170.0 Antipatterns: Hallucinated Security Fix: PR body claims 'RCE' but only non-code files changed (). A real security fix requires modifying source code. No linked issue - PR #137310 by
KunWuLuan— score 140.0 Dead symbols added: 6 Logic clone groups: 12 No linked issue
Dead Symbol Certainty Audit (Top 5)
_Registration_Register_Handler(staging/src/k8s.io/kubelet/pkg/apis/deviceplugin/v1beta1/api_grpc.pb.go)_DevicePlugin_GetDevicePluginOptions_Handler(staging/src/k8s.io/kubelet/pkg/apis/deviceplugin/v1beta1/api_grpc.pb.go)_DevicePlugin_ListAndWatch_Handler(staging/src/k8s.io/kubelet/pkg/apis/deviceplugin/v1beta1/api_grpc.pb.go)_DevicePlugin_GetPreferredAllocation_Handler(staging/src/k8s.io/kubelet/pkg/apis/deviceplugin/v1beta1/api_grpc.pb.go)_DevicePlugin_Allocate_Handler(staging/src/k8s.io/kubelet/pkg/apis/deviceplugin/v1beta1/api_grpc.pb.go) (…and 68 more — verify withjanitor scan kubernetes/kubernetes --library)
pytorch/pytorch
Duration: 3m41s | Peak RSS: 164 MB | PRs Bounced: 95/95 | Dead Symbols: 8,247 | Clone Groups: 24
Antipatterns: 2 — zombie dep scanner gated on registry (v6.12.7 fix eliminates diff-only false positives)
Top 3 Toxic PRs
- PR #176190 by
soulitzer— score 450.0 Dead symbols added: 20 Logic clone groups: 37 No linked issue - PR #176235 by
aorenste— score 440.0 Dead symbols added: 20 Logic clone groups: 35 No linked issue - PR #176140 by
weifengpy— score 385.0 Dead symbols added: 21 Logic clone groups: 7 No linked issue
Dead Symbol Certainty Audit (Top 5)
_AssertRaisesRegexWithHighlightContext(torch/testing/_internal/jit_utils.py)JitTestCase._isHookExceptionOk(torch/testing/_internal/jit_utils.py)JitTestCase._compared_saved_loaded(torch/testing/_internal/jit_utils.py)_inline_everything(torch/testing/_internal/jit_utils.py)_tmp_donotuse_dont_inline_everything(torch/testing/internal/jit_utils.py) (…and 8,242 more — verify withjanitor scan pytorch/pytorch --library)_
apache/kafka
Duration: 1m53s | Peak RSS: 72 MB | PRs Bounced: 100/100 | Dead Symbols: 1 | Clone Groups: 3
Antipatterns: 16 — highest Java signal in corpus. System.out.println debug logging in production.
Top 3 Toxic PRs
- PR #21581 by
frankvicky— score 1,015.0 Dead symbols added: 54 Logic clone groups: 91 No linked issue - PR #21580 by
aliehsaeedii— score 800.0 Antipatterns: System.out.println: console debug logging in production — use a structured logger (SLF4J, Log4j, etc.) Dead symbols added: 51 Logic clone groups: 44 No linked issue - PR #21600 by
bbejeck— score 905.0 Dead symbols added: 51 Logic clone groups: 75 No linked issue
Dead Symbol Certainty Audit (Top 5)
_prefix(release/runtime.py)
rust-lang/rust
Duration: 4m02s | Peak RSS: 235 MB | PRs Bounced: 100/100 | Dead Symbols: 30 | Clone Groups: 2
Antipatterns: 24 — highest single-language antipattern count. All vacuous unsafe blocks.
Top 3 Toxic PRs
- PR #153239 by
asder8215— score 1,235.0 Antipatterns: Vacuous unsafe block: contains no raw pointer dereferences, FFI calls, or inline assembly (x8) Logic clone groups: 163 No linked issue - PR #153270 by
jhpratt— score 515.0 Antipatterns: Vacuous unsafe block: contains no raw pointer dereferences, FFI calls, or inline assembly (x7) Dead symbols added: 12 Logic clone groups: 5 No linked issue - PR #153277 by
jhpratt— score 505.0 Antipatterns: Vacuous unsafe block: contains no raw pointer dereferences, FFI calls, or inline assembly (x7) Dead symbols added: 11 Logic clone groups: 5 No linked issue
Dead Symbol Certainty Audit (Top 5)
_assert_is_dyn_compatible(library/core/src/iter/traits/iterator.rs)_assert_dyn_compatible(src/tools/rust-analyzer/crates/hir-ty/src/db.rs)_assert_sync_and_send(library/std/src/thread/mod.rs)Context._init_change_list(library/compiler-builtins/ci/ci-util.py)Context._ignore_file(library/compiler-builtins/ci/ci-util.py) (…and 25 more — verify withjanitor scan rust-lang/rust --library)
tauri-apps/tauri
Duration: 1m22s | Peak RSS: 29 MB | PRs Bounced: 95/95 | Dead Symbols: 1 | Clone Groups: 0
Antipatterns: 12 (vacuous unsafe blocks + hallucinated security fix detections)
Top 3 Toxic PRs
- PR #15015 by
app/dependabot— score 170.0 Antipatterns: Hallucinated Security Fix: PR body claims 'RCE' but only non-code files changed (yaml, json). A real security fix requires modifying source code. No linked issue - PR #15001 by
app/renovate— score 170.0 Antipatterns: Hallucinated Security Fix: PR body claims 'RCE' but only non-code files changed (json, yaml). A real security fix requires modifying source code. No linked issue - PR #14991 by
app/renovate— score 170.0 Antipatterns: Hallucinated Security Fix: PR body claims 'RCE' but only non-code files changed (yaml, json). A real security fix requires modifying source code. No linked issue
Dead Symbol Certainty Audit (Top 5)
_as_defined(crates/tauri-cli/src/interface/rust.rs)
redis/redis
Duration: 1m33s | Peak RSS: 23 MB | PRs Bounced: 98/98 | Dead Symbols: 87 | Clone Groups: 2
Antipatterns: 3 (Hallucinated Security Fix — claims 'memory leak' / 'vulnerability' on doc-only patches)
Top 3 Toxic PRs
- PR #14768 by
greatest-voyage— score 170.0 Antipatterns: Hallucinated Security Fix: PR body claims 'RCE' but only non-code files changed (md). A real security fix requires modifying source code. No linked issue - PR #14747 by
LiorKogan— score 170.0 Antipatterns: Hallucinated Security Fix: PR body claims 'vulnerability' but only non-code files changed (md). A real security fix requires modifying source code. No linked issue - PR #14743 by
alonre24— score 120.0 Antipatterns: Hallucinated Security Fix: PR body claims 'memory leak' but only non-code files changed (). A real security fix requires modifying source code. No linked issue
Dead Symbol Certainty Audit (Top 5)
_redisSortObject(src/server.h)_redisSortOperation(src/server.h)_serverLog(src/server.c)_kvstore(src/kvstore.c)_crc64(src/crc64.c) (…and 82 more — verify withjanitor scan redis/redis --library)
vercel/next.js
Duration: 2m09s | Peak RSS: 51 MB | PRs Bounced: 93/93 | Dead Symbols: 0 | Clone Groups: 0
Antipatterns: 8 (vacuous unsafe blocks in bundler Rust code)
Top 3 Toxic PRs
- PR #90769 by
sokra— score 170.0 Antipatterns: Vacuous unsafe block: contains no raw pointer dereferences, FFI calls, or inline assembly (x3) No linked issue - PR #90710 by
lukesandberg— score 150.0 Dead symbols added: 11 Logic clone groups: 4 No linked issue - PR #90617 by
lukesandberg— score 125.0 Dead symbols added: 9 Logic clone groups: 3 No linked issue
Dead Symbol Certainty Audit (Top 5)
No dead symbols found.
home-assistant/core
Duration: 3m49s | Peak RSS: 101 MB | PRs Bounced: 97/97 | Dead Symbols: 8,311 | Clone Groups: 9
Antipatterns: 4 (Hallucinated Security Fix detections)
Top 3 Toxic PRs
- PR #164611 by
arievanderwende— score 670.0 Dead symbols added: 25 Logic clone groups: 62 No linked issue - PR #164543 by
Claeysson— score 515.0 Dead symbols added: 14 Logic clone groups: 68 No linked issue - PR #164544 by
agentgonzo— score 200.0 Dead symbols added: 12 Logic clone groups: 12 No linked issue
Dead Symbol Certainty Audit (Top 5)
TTSMediaSource._engine_item(homeassistant/components/tts/media_source.py)_rotate_token(homeassistant/components/brands/init.py)_read_cached_file_with_marker(homeassistant/components/brands/init.py)_write_cache_file(homeassistant/components/brands/init.py)_read_brand_file(homeassistant/components/brands/init.py) (…and 8,306 more — verify withjanitor scan home-assistant/core --library)
ansible/ansible
Duration: 1m31s | Peak RSS: 25 MB | PRs Bounced: 95/95 | Dead Symbols: 895 | Clone Groups: 2
Antipatterns: 6 (hallucinated imports + Hallucinated Security Fix)
Top 3 Toxic PRs
- PR #86600 by
haosenwang1018— score 750.0 Dead symbols added: 40 Logic clone groups: 45 No linked issue - PR #86597 by
haosenwang1018— score 750.0 Dead symbols added: 40 Logic clone groups: 45 No linked issue - PR #86604 by
nitzmahone— score 70.0 No linked issue
Dead Symbol Certainty Audit (Top 5)
JinjaPluginIntercept._wrap_and_set_func(lib/ansible/_internal/_templating/_jinja_plugins.py)JinjaPluginIntercept._invoke_plugin(lib/ansible/_internal/_templating/_jinja_plugins.py)JinjaPluginIntercept._wrap_filter(lib/ansible/_internal/_templating/_jinja_plugins.py)_LookupContext(lib/ansible/_internal/_templating/_jinja_plugins.py)_get_builtin_short_description(lib/ansible/internal/_templating/_jinja_plugins.py) (…and 890 more — verify withjanitor scan ansible/ansible --library)_
cloudflare/workers-sdk
Duration: 1m44s | Peak RSS: 38 MB | PRs Bounced: 90/90 | Dead Symbols: 14 | Clone Groups: 1
Antipatterns: 3 (Hallucinated Security Fix detections)
Dead Symbol Certainty Audit (Top 5)
_resolveWasmModulePath(packages/wrangler/src/api/startDevWorker/utils.ts)_parseSourceMap(packages/wrangler/src/api/startDevWorker/utils.ts)_normalizeQueueConsumer(packages/wrangler/src/queues/client.ts)
langchain-ai/langchain
Duration: 1m35s | Peak RSS: 20 MB | PRs Bounced: 95/95 | Dead Symbols: 1,483 | Clone Groups: 2
Antipatterns: 4 (hallucinated imports — highest zombie dep density in corpus)
Top 3 Toxic PRs
- PR #35416 by
sadilet— score 1,095.0 Antipatterns: Hallucinated import: 'otel_context' imported inside function but never used Dead symbols added: 12 Logic clone groups: 64 No linked issue - PR #35434 by
marklubin— score 935.0 Dead symbols added: 23 Logic clone groups: 86 No linked issue - PR #35459 by
saadsaleem01— score 465.0 Dead symbols added: 5 Logic clone groups: 65
Dead Symbol Certainty Audit (Top 5)
_hash_string_to_uuid(libs/core/langchain_core/indexing/api.py)_warn_about_sha1(libs/core/langchain_core/indexing/api.py)_hash_string(libs/core/langchain_core/indexing/api.py)_hash_nested_dict(libs/core/langchain_core/indexing/api.py)_batch(libs/core/langchain_core/indexing/api.py) (…and 1,478 more — verify withjanitor scan langchain-ai/langchain --library)
denoland/deno
Duration: 2m07s | Peak RSS: 44 MB | PRs Bounced: 100/100 | Dead Symbols: 22 | Clone Groups: 1
Antipatterns: 2 (vacuous unsafe blocks in Rust runtime code)
Dead Symbol Certainty Audit (Top 5)
_get_error_class_name(runtime/ops/runtime.rs)_op_main_module(runtime/ops/runtime.rs)
rails/rails
Duration: 2m14s | Peak RSS: 46 MB | PRs Bounced: 95/95 | Dead Symbols: 120 | Clone Groups: 2
Antipatterns: 3 — Ruby grammar (tree-sitter-ruby v0.23, Tier-1 v6.12.5). First production Ruby AST antipattern scan in the corpus.
Top 3 Toxic PRs
- PR #54201 by
ioquatix— score 285.0 Dead symbols added: 9 Logic clone groups: 22 No linked issue - PR #54198 by
rafaelfranca— score 140.0 Dead symbols added: 7 Logic clone groups: 9 No linked issue - PR #54195 by
jonathanhefner— score 70.0 No linked issue
Dead Symbol Certainty Audit (Top 5)
_compile_source(activerecord/lib/active_record/connection_adapters/abstract_adapter.rb)_establish_connection(activerecord/lib/active_record/connection_adapters/pool_config.rb)_validate_name(activerecord/lib/active_record/attribute_methods/primary_key.rb)
laravel/framework
Duration: 1m48s | Peak RSS: 34 MB | PRs Bounced: 95/95 | Dead Symbols: 85 | Clone Groups: 1
Antipatterns: 3 — PHP grammar (tree-sitter-php v0.24, Tier-1 v6.12.5). First production PHP AST scan in the corpus.
Top 3 Toxic PRs
- PR #53891 by
taylorotwell— score 210.0 Dead symbols added: 8 Logic clone groups: 17 No linked issue - PR #53887 by
nunomaduro— score 140.0 Dead symbols added: 6 Logic clone groups: 10 No linked issue
apple/swift
Duration: 3m55s | Peak RSS: 182 MB | PRs Bounced: 88/88 | Dead Symbols: 450 | Clone Groups: 3
Antipatterns: 2 — Swift grammar (tree-sitter-swift v0.7, Tier-1 v6.12.5). Peak RSS: 182 MB, second-highest in corpus. Swift + C++ hybrid codebase exercises 23-grammar polyglot spine.
Dead Symbol Certainty Audit (Top 5)
_convertFromRawRepresentable(stdlib/public/core/RawRepresentable.swift)_convertToRawRepresentable(stdlib/public/core/RawRepresentable.swift)_forceBridgeFromObjectiveC(stdlib/public/core/BridgeStorage.swift)
dotnet/aspnetcore
Duration: 2m12s | Peak RSS: 142 MB | PRs Bounced: 95/95 | Dead Symbols: 4 | Clone Groups: 0
Antipatterns: 2 (Hallucinated Security Fix — yml-only patches claiming 'RCE')
Top 3 Toxic PRs
- PR #65487 by
app/dependabot— score 170.0 Antipatterns: Hallucinated Security Fix: PR body claims 'RCE' but only non-code files changed (yml). A real security fix requires modifying source code. No linked issue - PR #65486 by
app/dependabot— score 170.0 Antipatterns: Hallucinated Security Fix: PR body claims 'RCE' but only non-code files changed (yml). A real security fix requires modifying source code. No linked issue
Dead Symbol Certainty Audit (Top 5)
_TRACE_LOG(src/Servers/IIS/AspNetCoreModuleV2/IISLib/tracelog.h)_REF_TRACE_LOG_ENTRY(src/Servers/IIS/AspNetCoreModuleV2/IISLib/reftrace.h)_ackTimer(src/SignalR/clients/ts/signalr/src/MessageBuffer.ts)
square/okhttp
Duration: 1m22s | Peak RSS: 48 MB | PRs Bounced: 88/88 | Dead Symbols: 22 | Clone Groups: 0
Antipatterns: 0 — well-maintained Kotlin/Java HTTP client. Zero structural defects in sample.
Top 3 Clean PRs
- PR #8711 by
squareup-bot - PR #8709 by
yschimke - PR #8705 by
swankjesse
hashicorp/terraform
Duration: 1m51s | Peak RSS: 52 MB | PRs Bounced: 93/93 | Dead Symbols: 38 | Clone Groups: 1
Antipatterns: 0 — Go/HCL. IaC Shield bypass active for .tf adjacent lockfiles.
neovim/neovim
Duration: 1m40s | Peak RSS: 28 MB | PRs Bounced: 90/90 | Dead Symbols: 145 | Clone Groups: 3
Antipatterns: 8 — C/Lua codebase. Lua grammar (tree-sitter-lua v0.5, Tier-1 v6.12.5) active.
Top 3 Toxic PRs
- PR #32841 by
bfredl— score 385.0 Dead symbols added: 18 Logic clone groups: 28 No linked issue - PR #32837 by
dundargoc— score 140.0 Dead symbols added: 5 Logic clone groups: 11 No linked issue
Dead Symbol Certainty Audit (Top 5)
_watcher_stop(src/nvim/os/fs.c)_luv_thread_cb(src/nvim/os/process.c)_nvim_rpc_unsubscribe(src/nvim/api/private/helpers.c)
| TOTAL | — | 235 MB peak | 23,778 | 62 | 2,090/2,090 | 1,751 | 124 | 0 |
Global Workslop Impact
| Metric | Value |
|---|---|
| Repositories audited | 22 |
| Pull requests analyzed | 2,090 |
| Total Slop Score | 38,685 |
| Antipatterns Blocked | 124 |
| Estimated Operational Savings | $360 |
Methodology: 12 min/triage × $100/hr loaded engineering cost × actionable intercepts (PRs scoring ≥ 100). v6.12.7 engine precision: zero false positives from IaC/lockfile entropy, zero zombie dep hallucinations from diff-only context. At $499/yr, The Janitor pays for itself on maintainer triage savings alone.