Neil
97b71c2285
refactor(usage): split AI-usage scanners and stores under the max-lines budget ( #14668 )
...
The three usage scanners and their stores, plus the renderer usage-overview
model, each carried a file-level `eslint-disable max-lines` and had grown to
338-769 counted lines against a 300-line budget. AGENTS.md calls for splitting
rather than suppressing, and config/max-lines-baseline.txt is a shrink-only
ratchet, so this removes all seven suppressions and prunes their entries
(341 -> 334).
Each file is cut along the seams it already had -- and that several of the
suppression comments named out loud: filesystem discovery / record parsing /
attribution / aggregation for the scanners, and pricing policy / scope filters /
rollups / session rows / automation attribution for the stores.
Pure move, no behavior change. Code is relocated verbatim; the only edits are
import plumbing and, where a private class method became a free function, the
mechanical `this.state` -> `state` parameter threading. Every converted call
site passes `this.state` at call time and the automation path takes a live
`getState: () => this.state` getter, so no state is snapshotted. No barrel
exports: each new module owns real logic and importers point at the owner.
Verified: oxlint clean, ratchet passes, typecheck clean, full unit suite green
(remaining failures are pre-existing load flakes in untouched files, each green
when re-run serially), no import cycles among the 64 affected modules, and a
statement-level diff of every split confirms the moves are verbatim.
2026-08-15 18:33:33 -07:00
..
2026-08-15 00:54:20 -07:00
2026-08-15 18:33:33 -07:00
2026-08-15 18:25:37 -07:00
2026-08-15 18:25:37 -07:00
2026-08-11 12:13:16 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-08-15 17:59:29 -07:00
2026-08-11 14:03:16 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 18:33:33 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-03 23:25:14 -07:00
2026-08-15 18:33:33 -07:00
2026-08-10 16:34:15 -07:00
2026-08-15 00:41:45 -07:00
2026-08-15 18:25:37 -07:00
2026-08-07 15:51:24 -07:00
2026-08-11 22:13:35 -07:00
2026-08-15 04:47:24 -07:00
2026-08-14 12:50:35 -07:00
2026-07-23 18:35:31 -07:00
2026-08-10 16:34:15 -07:00
2026-08-12 13:02:23 -07:00
2026-08-11 22:13:35 -07:00
2026-08-13 22:48:24 -07:00
2026-08-15 00:54:20 -07:00
2026-08-13 22:48:24 -07:00
2026-08-15 18:17:20 -07:00
2026-08-15 18:17:20 -07:00
2026-08-10 16:34:15 -07:00
2026-07-10 00:11:27 -07:00
2026-07-30 19:33:05 -07:00
2026-08-15 18:25:37 -07:00
2026-07-29 17:44:41 -07:00
2026-08-15 18:25:37 -07:00
2026-08-15 18:17:20 -07:00
2026-08-11 18:19:43 -07:00
2026-08-13 22:48:24 -07:00
2026-07-23 18:35:31 -07:00
2026-08-15 18:17:20 -07:00
2026-07-27 16:36:39 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-07-23 18:35:31 -07:00
2026-08-11 18:19:43 -07:00
2026-08-13 22:09:23 -07:00
2026-08-11 18:19:43 -07:00
2026-08-11 18:19:43 -07:00
2026-08-01 14:24:31 -07:00
2026-08-15 18:33:33 -07:00
2026-08-14 22:18:36 -07:00
2026-08-11 22:34:54 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 20:44:16 -07:00
2026-08-13 22:48:24 -07:00
2026-08-15 04:16:00 -07:00
2026-08-14 13:09:50 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 18:25:37 -07:00
2026-07-21 18:23:20 -07:00
2026-08-14 21:46:09 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-08-11 01:48:14 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-08-15 00:54:20 -07:00
2026-07-24 19:54:25 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-08-15 18:08:54 -07:00
2026-07-20 01:14:17 -07:00
2026-08-01 19:22:39 -07:00
2026-07-23 18:35:31 -07:00
2026-08-13 22:48:24 -07:00
2026-08-01 19:22:39 -07:00
2026-08-01 19:22:39 -07:00
2026-08-09 22:52:11 -07:00
2026-08-09 22:52:11 -07:00
2026-07-23 06:22:56 -07:00
2026-07-23 06:22:56 -07:00
2026-07-23 18:35:31 -07:00
2026-07-23 18:35:31 -07:00
2026-06-22 18:01:37 -07:00
2026-06-22 18:01:37 -07:00
2026-07-17 15:27:39 -07:00
2026-07-17 15:27:39 -07:00
2026-07-24 19:54:25 -07:00
2026-07-24 19:54:25 -07:00
2026-07-29 21:43:45 -07:00
2026-07-29 21:43:45 -07:00
2026-07-26 00:13:48 -07:00
2026-07-26 00:13:48 -07:00
2026-08-01 19:22:39 -07:00
2026-08-01 13:38:45 -07:00
2026-08-15 18:25:37 -07:00
2026-08-14 19:04:54 -04:00
2026-08-14 19:04:55 -04:00
2026-08-13 22:48:24 -07:00
2026-06-30 11:31:55 -07:00
2026-08-14 19:04:55 -04:00
2026-08-14 19:04:55 -04:00
2026-08-13 16:23:22 -07:00
2026-08-14 19:04:55 -04:00
2026-08-14 19:04:54 -04:00
2026-08-14 19:04:55 -04:00
2026-08-14 19:04:55 -04:00
2026-08-13 16:23:21 -07:00
2026-08-13 16:23:21 -07:00
2026-06-30 11:31:55 -07:00
2026-08-01 13:38:45 -07:00
2026-08-01 13:38:45 -07:00
2026-08-13 22:48:24 -07:00
2026-08-02 17:40:58 -07:00
2026-08-02 17:40:58 -07:00
2026-08-15 18:25:37 -07:00
2026-06-19 17:14:55 -07:00
2026-08-15 18:25:37 -07:00
2026-08-15 18:25:37 -07:00
2026-08-15 18:25:37 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 18:25:37 -07:00
2026-08-15 18:25:37 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 18:25:37 -07:00
2026-08-15 18:25:37 -07:00
2026-07-29 18:21:26 -07:00
2026-08-15 18:08:54 -07:00
2026-08-11 17:29:22 -07:00
2026-08-15 18:25:37 -07:00
2026-08-01 13:38:45 -07:00
2026-08-12 14:31:42 -07:00
2026-08-12 14:31:42 -07:00
2026-08-02 20:46:49 -07:00
2026-08-13 22:48:24 -07:00
2026-08-02 20:46:49 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-08-02 20:46:49 -07:00
2026-08-13 22:48:24 -07:00
2026-07-18 23:01:29 -07:00
2026-07-23 18:35:31 -07:00
2026-07-23 18:35:31 -07:00
2026-08-13 22:48:24 -07:00
2026-07-23 18:35:31 -07:00
2026-07-29 18:21:26 -07:00
2026-07-10 17:52:50 -07:00
2026-07-15 15:23:35 -07:00
2026-08-13 22:48:24 -07:00
2026-07-06 16:43:05 -07:00
2026-07-06 16:43:05 -07:00
2026-07-31 00:51:39 -07:00
2026-07-31 00:51:39 -07:00
2026-07-31 00:51:39 -07:00
2026-07-31 00:51:39 -07:00
2026-07-28 15:34:52 -07:00
2026-07-28 15:34:52 -07:00
2026-08-03 23:11:36 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-06 21:19:04 -07:00
2026-08-06 21:19:04 -07:00
2026-08-06 21:19:04 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-07-27 01:14:33 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-06 21:19:04 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-14 22:18:36 -07:00
2026-08-15 00:54:20 -07:00
2026-08-14 22:18:36 -07:00
2026-07-31 11:58:46 -07:00
2026-08-13 17:02:28 -07:00
2026-08-13 17:02:28 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-08-06 21:19:04 -07:00
2026-08-06 21:19:04 -07:00
2026-08-14 19:04:55 -04:00
2026-08-14 19:04:55 -04:00
2026-07-25 22:28:07 -07:00
2026-07-25 22:28:07 -07:00
2026-08-07 21:59:24 -07:00
2026-08-07 21:59:24 -07:00
2026-08-01 19:22:39 -07:00
2026-07-23 18:03:43 -07:00
2026-07-23 18:03:43 -07:00
2026-08-01 19:22:39 -07:00
2026-08-04 01:37:25 -07:00
2026-07-23 18:35:31 -07:00
2026-07-23 18:35:31 -07:00
2026-08-14 21:36:09 -07:00
2026-08-14 21:36:09 -07:00
2026-07-25 04:04:19 -07:00
2026-07-25 04:04:19 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-08-10 01:06:32 -07:00
2026-08-13 22:48:24 -07:00
2026-07-26 02:32:05 -07:00
2026-07-26 02:32:05 -07:00
2026-06-29 22:38:29 -07:00
2026-07-09 16:24:20 -07:00
2026-08-13 22:48:24 -07:00
2026-07-20 14:34:53 -07:00
2026-07-23 18:35:31 -07:00
2026-07-23 18:35:31 -07:00
2026-08-15 18:25:37 -07:00
2026-08-15 18:25:37 -07:00
2026-08-12 14:31:42 -07:00
2026-08-12 14:31:42 -07:00
2026-08-12 20:55:29 -07:00
2026-08-12 14:31:42 -07:00
2026-08-12 14:31:42 -07:00
2026-08-12 20:55:29 -07:00
2026-08-12 20:55:29 -07:00
2026-08-12 14:31:42 -07:00
2026-08-13 23:47:20 -07:00
2026-07-10 17:27:47 -07:00
2026-08-13 22:48:24 -07:00
2026-08-09 13:31:22 -07:00
2026-08-09 13:31:22 -07:00
2026-08-05 01:13:13 -07:00
2026-08-05 01:13:13 -07:00
2026-08-05 01:13:13 -07:00
2026-08-05 01:13:13 -07:00
2026-07-29 18:21:26 -07:00
2026-07-29 18:21:26 -07:00
2026-07-29 18:21:26 -07:00
2026-07-29 18:21:26 -07:00
2026-07-29 18:21:26 -07:00
2026-07-29 18:21:26 -07:00
2026-07-29 18:21:26 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-07-11 21:03:04 -07:00
2026-07-11 21:03:04 -07:00
2026-07-23 18:35:31 -07:00
2026-08-13 22:48:24 -07:00
2026-08-02 20:46:49 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-07-17 15:27:39 -07:00
2026-07-17 15:27:39 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-07-23 18:35:31 -07:00
2026-07-28 19:58:58 -07:00
2026-07-28 19:58:58 -07:00
2026-07-28 19:58:58 -07:00
2026-07-28 19:58:58 -07:00
2026-08-09 19:01:35 -07:00
2026-07-31 14:29:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-07-28 19:58:58 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-13 22:48:24 -07:00
2026-07-22 18:52:37 -07:00
2026-08-04 02:02:53 -07:00
2026-08-15 00:54:20 -07:00
2026-07-09 23:00:01 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-13 22:48:24 -07:00
2026-07-29 18:21:26 -07:00
2026-05-31 10:11:51 -07:00
2026-05-31 10:11:51 -07:00
2026-08-15 00:38:13 -07:00
2026-08-15 00:38:13 -07:00
2026-07-11 02:03:14 -07:00
2026-08-01 13:38:45 -07:00
2026-08-01 13:38:45 -07:00
2026-08-10 19:55:29 -07:00
2026-07-24 00:27:40 -07:00
2026-07-24 00:27:40 -07:00
2026-07-25 22:28:07 -07:00
2026-07-25 22:28:07 -07:00
2026-08-13 23:47:20 -07:00
2026-08-13 23:47:20 -07:00
2026-08-13 23:47:20 -07:00
2026-08-13 23:47:20 -07:00
2026-08-13 23:47:20 -07:00
2026-08-13 23:47:20 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 23:47:20 -07:00
2026-08-13 23:47:20 -07:00
2026-08-13 23:47:20 -07:00
2026-08-13 23:47:20 -07:00
2026-08-13 22:48:24 -07:00
2026-07-04 21:31:51 -07:00
2026-07-04 21:31:51 -07:00
2026-08-14 22:18:36 -07:00
2026-08-14 22:18:36 -07:00
2026-06-03 12:25:54 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-08-14 22:18:36 -07:00
2026-08-14 22:18:36 -07:00
2026-07-23 18:35:31 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-08-15 18:25:37 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-08-07 20:35:22 -07:00
2026-08-07 21:59:24 -07:00
2026-07-19 17:31:34 -07:00
2026-08-07 20:35:22 -07:00
2026-07-30 17:49:32 -07:00
2026-07-30 17:49:32 -07:00
2026-07-30 17:49:32 -07:00
2026-07-14 15:23:06 -07:00
2026-08-07 20:35:22 -07:00
2026-08-07 20:35:22 -07:00
2026-08-07 20:35:22 -07:00
2026-08-07 20:35:22 -07:00
2026-08-09 19:52:16 -07:00
2026-08-14 22:18:36 -07:00