Optimize Dumpster Fire signal with time-based scanning#52
Conversation
Remove Rotting Secrets signal (duplicative with Dumpster Fire). Replace arbitrary entry limits with adaptive time-budget gating: - Global 8ms time budget shared across parallel directory scans - Scans as many entries as possible within budget - Fast systems scan more, slow systems gracefully degrade - Added context check after expensive stat() syscalls Performance improvement: | Metric | Before | After | |---------------------|----------|----------| | Cold cache time | 85ms | <8ms | | ~/Downloads (716 files) | First 100 entries | All within budget | Files removed: - src/signals/rotting_secrets.go - src/signals/rotting_secrets_test.go - docs/signals/rotting_secrets.md Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #52 +/- ##
==========================================
- Coverage 81.44% 81.40% -0.04%
==========================================
Files 62 61 -1
Lines 4656 4609 -47
==========================================
- Hits 3792 3752 -40
+ Misses 672 669 -3
+ Partials 192 188 -4
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Pull request overview
This pull request optimizes the Dumpster Fire signal by replacing arbitrary entry limits with adaptive time-based scanning. The Rotting Secrets signal is removed as it was duplicative with Dumpster Fire.
Changes:
- Removed the Rotting Secrets signal (implementation, tests, and documentation) as it was duplicative with Dumpster Fire
- Implemented parallel directory scanning with a global 8ms time budget for the Dumpster Fire signal
- Changed default scanning configuration from hard entry limits (500 entries, 2ms per directory) to time-based gating (0 entry limit, 0 timeout - uses caller's context)
- Added responsive context checking after expensive stat() syscalls in the scanning loop
Reviewed changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| src/signals/rotting_secrets.go | Removed duplicative signal implementation |
| src/signals/rotting_secrets_test.go | Removed tests for deleted signal |
| docs/signals/rotting_secrets.md | Removed documentation for deleted signal |
| src/signals/registry.go | Removed Rotting Secrets from signal registry (count: 38 → 37) |
| SIGNALS.md | Removed Rotting Secrets entry from signals list |
| README.md | Updated security checks count from 38 to 37 |
| src/signals/internal/filestat/filestat.go | Changed defaults to support time-based gating; added context check after stat() syscall |
| src/signals/dumpster_fire.go | Implemented parallel scanning with 8ms global time budget |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Remove Rotting Secrets signal (duplicative with Dumpster Fire).
Replace arbitrary entry limits with adaptive time-budget gating:
Performance improvement:
Files removed: