peter
751e1ae5ed
test: a size and complexity ratchet; coverage reported on both sides
...
The "class size" item from the quality checklist, measured:
- A shipped file over 800 lines may not grow past its line count today
(13 frontend, 11 backend). No other file may cross 800.
- A function over the complexity limit may not rise, and no new one may
appear. The limit is eslint `complexity` 20 on the frontend (64 functions
over it today) and ruff C901 10 on the backend (32).
- Each is a per-file ceiling. Shrinking is free; an entry back under the
limit must be deleted, so the lists only shrink.
C901 is measured in a test rather than switched on in ruff.toml: ruff has no
per-function baseline, and a noqa would let a function grow without limit.
Coverage (owner decision D4) is printed with no threshold:
`vitest --coverage` (v8) gives 80% of lines, and the pytest lane ends with
the total for app/, 78%. The bar stays "every regression test seen red".
.coverage is ignored by git and kept out of the image's build context.
2026-10-03 17:18:53 +02:00
..
2026-09-17 01:44:29 +02:00
2026-10-03 16:04:06 +02:00
2026-09-27 19:42:53 +02:00
2026-09-16 04:29:13 +02:00
2026-09-19 19:19:29 +02:00
2026-09-19 03:42:26 +02:00
2026-09-04 22:42:15 +02:00
2026-10-01 08:31:03 +02:00
2026-09-19 18:21:06 +02:00
2026-09-29 21:21:19 +02:00
2026-10-03 16:04:06 +02:00
2026-09-19 19:19:30 +02:00
2026-09-27 13:58:23 +02:00
2026-10-02 03:16:37 +02:00
2026-09-18 03:16:15 +02:00
2026-09-19 19:19:30 +02:00
2026-09-30 03:26:57 +02:00
2026-08-23 07:43:06 +02:00
2026-08-23 07:43:06 +02:00
2026-09-20 07:51:08 +02:00
2026-09-17 02:42:12 +02:00
2026-09-19 22:08:10 +02:00
2026-09-29 02:12:32 +02:00
2026-09-16 04:29:13 +02:00
2026-08-28 02:37:56 +02:00
2026-09-16 03:43:29 +02:00
2026-09-18 23:44:42 +02:00
2026-09-14 01:42:57 +02:00
2026-09-05 04:18:33 +02:00
2026-08-30 03:32:14 +02:00
2026-08-23 07:43:06 +02:00
2026-09-29 21:21:19 +02:00
2026-08-23 07:43:06 +02:00
2026-08-23 07:43:06 +02:00
2026-09-04 20:29:33 +02:00
2026-09-05 01:35:09 +02:00
2026-09-04 20:29:33 +02:00
2026-09-14 00:50:05 +02:00
2026-09-18 23:44:42 +02:00
2026-09-19 19:19:30 +02:00
2026-09-19 05:54:19 +02:00
2026-08-23 07:43:06 +02:00
2026-10-03 02:25:14 +02:00
2026-10-02 21:17:41 +02:00
2026-08-26 05:25:47 +02:00
2026-08-23 07:43:06 +02:00
2026-09-19 04:51:31 +02:00
2026-09-15 00:53:15 +02:00
2026-08-28 02:37:56 +02:00
2026-09-19 19:19:30 +02:00
2026-09-19 07:34:17 +02:00
2026-09-19 18:21:06 +02:00
2026-09-19 01:33:32 +02:00
2026-08-29 08:02:11 +02:00
2026-09-19 06:55:40 +02:00
2026-09-18 03:16:15 +02:00
2026-09-04 01:56:55 +02:00
2026-09-19 05:03:31 +02:00
2026-10-03 16:04:06 +02:00
2026-09-04 22:42:15 +02:00
2026-09-01 23:31:49 +02:00
2026-10-01 21:17:09 +02:00
2026-10-02 23:42:32 +02:00
2026-08-23 07:43:06 +02:00
2026-09-29 22:46:04 +02:00
2026-08-23 07:43:06 +02:00
2026-09-12 05:50:31 +02:00
2026-08-23 07:43:06 +02:00
2026-08-23 07:43:06 +02:00
2026-08-23 07:43:06 +02:00
2026-09-19 22:48:20 +02:00
2026-09-26 04:05:39 +02:00
2026-08-29 03:52:13 +02:00
2026-09-27 21:56:23 +02:00
2026-09-27 21:56:23 +02:00
2026-09-27 22:34:14 +02:00
2026-09-27 22:34:14 +02:00
2026-09-29 02:12:32 +02:00
2026-09-19 19:19:30 +02:00
2026-09-19 19:19:30 +02:00
2026-09-19 19:19:30 +02:00
2026-09-29 21:21:19 +02:00
2026-09-19 19:19:30 +02:00
2026-10-02 21:32:49 +02:00
2026-09-19 19:19:30 +02:00
2026-09-19 19:19:30 +02:00
2026-09-19 18:21:06 +02:00
2026-09-19 17:26:07 +02:00
2026-10-02 21:27:13 +02:00
2026-08-23 07:43:06 +02:00
2026-09-19 19:19:30 +02:00
2026-09-30 03:26:57 +02:00
2026-09-19 19:19:30 +02:00
2026-10-01 08:31:03 +02:00
2026-10-01 10:43:59 +02:00
2026-09-30 02:19:54 +02:00
2026-09-30 02:19:54 +02:00
2026-09-19 19:19:30 +02:00
2026-09-19 19:19:30 +02:00
2026-09-26 05:56:07 +02:00
2026-09-19 19:19:30 +02:00
2026-10-03 16:04:06 +02:00
2026-09-19 19:19:30 +02:00
2026-09-27 13:58:23 +02:00
2026-09-25 15:20:31 +02:00
2026-08-23 07:43:06 +02:00
2026-08-23 07:43:06 +02:00
2026-09-29 21:21:19 +02:00
2026-08-28 01:34:02 +02:00
2026-09-11 18:05:30 +02:00
2026-09-22 01:59:03 +02:00
2026-09-20 23:02:11 +02:00
2026-08-23 07:43:06 +02:00
2026-09-15 02:25:00 +02:00
2026-08-23 07:43:06 +02:00
2026-09-04 02:38:01 +02:00
2026-09-04 23:04:09 +02:00
2026-09-20 00:51:12 +02:00
2026-08-23 07:43:06 +02:00
2026-09-19 19:19:30 +02:00
2026-10-01 22:51:37 +02:00
2026-09-19 19:19:30 +02:00
2026-08-23 07:43:06 +02:00
2026-09-05 01:46:58 +02:00
2026-08-23 07:43:06 +02:00
2026-10-03 17:18:53 +02:00
2026-08-23 07:43:06 +02:00
2026-09-18 01:20:42 +02:00
2026-10-01 22:51:37 +02:00
2026-10-02 03:16:37 +02:00
2026-10-02 03:16:37 +02:00
2026-08-26 05:25:47 +02:00
2026-08-23 07:43:06 +02:00
2026-08-23 07:43:06 +02:00
2026-09-23 01:20:22 +02:00
2026-09-05 04:02:57 +02:00
2026-08-23 07:43:06 +02:00
2026-10-02 21:52:47 +02:00
2026-09-19 18:21:06 +02:00
2026-09-18 22:50:37 +02:00
2026-09-19 04:51:31 +02:00
2026-09-27 19:42:53 +02:00
2026-09-18 23:44:42 +02:00