mirror of
https://github.com/AgentSeal/codeburn.git
synced 2026-08-23 15:34:19 +00:00
detectJunkReads took its count from core's detector and re-derived its display and trend from the host's own JUNK_DIRS regex. The two lists disagreed: core classifies `vendor`, `site-packages`, `out` and `target` as junk; the host's did not. Core was already counting reads under those segments — the count is not what was wrong. The host's derivation was. In a repo whose junk reads all live under one of them — Go and PHP vendor, Python site-packages, Rust target, Java or Next out — the host loop matched nothing, so `recentJunkReads` stayed at zero. Where the window also had recent activity, `computeTrend` read that as fixed and returned 'resolved', and the finding was dropped. Whole ecosystems never saw it. In mixed repos it survived but rendered incoherently: the explanation quoted core's total while the directory list and the CLAUDE.md suggestion came from the narrower host counts, so the numbers did not add up and the suggested directories omitted the one actually causing the waste. Core now exports `junkSegmentOf`, which returns the exact segment that made a path junk. The host deletes JUNK_DIRS and JUNK_PATTERN outright and asks core in both loops — junk-reads and duplicate-reads, which had the same split. The host still names the directory for the payload, because a class alone cannot render `vendor/ (5x)`; it just no longer decides what junk means. Inside core, the precedence rule (dependency > build > vcs) lived in the order of three loops, and adding junkSegmentOf duplicated them. Both functions now consult one private helper, so the two cannot drift — a second copy of one rule is what caused this bug in the first place. Two display changes fall out. A path under two junk segments of the same table now names the first in path order rather than the first in array order, so `/x/build/dist/y` reports `build` where it used to report `dist`; the count is unchanged. Terminal junk directories and Windows-style paths are now matched, which the old slash-delimited regex missed — those align the host with what core was already counting. One robustness note: the old `JUNK_PATTERN.test()` coerced a truthy non-string `file_path`, while `junkSegmentOf` would throw on one. The type is narrowed at the point of use so the new path cannot throw where the old one could not. |
||
|---|---|---|
| .. | ||
| src | ||
| tests | ||
| package.json | ||
| tsconfig.json | ||
| tsup.config.ts | ||
| vitest.config.ts | ||