Dragan Spiridonov and Ruflo & AQE
31c288db71
fix(console): bound CLI numbers at the reader, keep unreadable counts visible, and a resume by Claude keeps hand-out counts
...
Leftovers of #3817/#3822 and #3818/#3823.
Numbers from CLI JSON (#3822 ). JSON.parse('1e999') is Infinity; a count can
also be negative, fractional or absurd. Bounded where read with data/safe.ts
countOf / ratioOf and a new measureOf (finite, within +-1e12):
- secure.ts scanReader: every severity count and the total are at least
the listed findings, so a summary never reads CLEAN beside a listed
finding. A count or total the tool printed but no reader can trust stays
UNKNOWN (SecFindings.unreadable / isTotalUnknown), with the listed
findings only as its lower bound: "critical ?" / "high ≥2 ?",
"? findings (total unreadable)", COUNTS UNREADABLE. securityBand() is the
one rule for the band (views/bar.ts) and the menu badge (menu-style.ts):
it warns on high/critical ("N+" when anything is unknown) and on any
unknown count or total. Threat confidence via ratioOf, composition score via measureOf.
The verdict-exit judgement (#3934 , SCAN_FOUND/countsWith) is unchanged.
- Same class swept in perf.ts, mh-lab.ts (labLines cells, gepa chars,
genome ids, receipts), neural.ts, memory-lines.ts,
data/evolve.ts, data/research.ts and data/cli.ts.
Mission resume (#3823 ). setPaused takes who resumed. The mission-resume
palette entry built inside Claude's console_run (state.control.viaModel)
resumes as 'model': hand-out counts are kept and an advisor stop-the-line
is not re-opened, so an exhausted task gets no new billed hand-out. The
person's resume (page buttons, palette, a typed /ruflo run) still gives
every task its hand-outs back.
Co-Authored-By: Ruflo & AQE
Claude-Session: https://claude.ai/code/session_01CGoza3gyxBjpaiMPhGHcHs
2026-10-10 10:57:58 -04:00
..
2026-10-10 10:35:47 -04:00
2026-10-02 16:43:12 -04:00
2026-10-07 17:08:41 -04:00
2026-10-09 12:48:34 -04:00
2026-10-09 16:27:56 +02:00
2026-10-09 16:27:56 +02:00
2026-10-07 17:08:41 -04:00
2026-10-09 16:23:20 +02:00
2026-10-09 16:27:56 +02:00
2026-10-07 17:16:11 -04:00
2026-10-03 02:29:58 -04:00
2026-10-04 14:42:39 -04:00
2026-10-06 19:16:55 -04:00
2026-10-06 00:36:19 -04:00
2026-10-06 19:14:02 -04:00
2026-10-09 16:23:20 +02:00
2026-10-07 02:19:20 -04:00
2026-10-06 19:14:02 -04:00
2026-10-06 19:17:27 -04:00
2026-10-08 22:54:19 -04:00
2026-10-03 00:22:08 -04:00
2026-10-04 13:25:23 -07:00
2026-10-04 13:25:23 -07:00
2026-10-09 15:54:18 +02:00
2026-10-05 16:54:51 -04:00
2026-10-06 19:16:55 -04:00
2026-10-06 01:29:25 -04:00
2026-10-06 19:16:55 -04:00
2026-10-07 16:54:03 -04:00
2026-10-03 19:13:20 -04:00
2026-10-02 00:01:08 -04:00
2026-10-05 14:36:33 -04:00
2026-10-02 20:46:14 -04:00
2026-10-07 00:57:27 -04:00
2026-10-07 01:06:51 -04:00
2026-10-05 11:51:32 -04:00
2026-10-04 01:23:53 -04:00
2026-10-02 18:00:29 -04:00
2026-10-08 17:38:02 -04:00
2026-10-03 20:31:15 -04:00
2026-10-04 00:54:13 -04:00
2026-10-04 13:25:23 -07:00
2026-10-03 19:25:20 -04:00
2026-10-09 12:14:54 -04:00
2026-10-08 17:38:02 -04:00
2026-10-07 02:19:20 -04:00
2026-10-07 02:19:20 -04:00
2026-10-07 02:19:20 -04:00
2026-10-07 02:19:20 -04:00
2026-10-07 02:19:20 -04:00
2026-10-07 18:02:19 -04:00
2026-10-07 02:19:20 -04:00
2026-10-07 18:02:19 -04:00
2026-10-09 16:23:20 +02:00
2026-10-07 02:19:20 -04:00
2026-10-07 02:19:20 -04:00
2026-10-07 02:19:20 -04:00
2026-10-07 02:19:20 -04:00
2026-10-07 02:19:20 -04:00
2026-10-02 18:09:18 -04:00
2026-10-02 21:38:52 -04:00
2026-10-04 00:56:58 -04:00
2026-10-03 18:01:11 -04:00
2026-10-07 18:10:29 -04:00
2026-10-07 18:14:01 -04:00
2026-10-07 18:02:19 -04:00
2026-10-09 18:02:44 -04:00
2026-10-07 18:02:19 -04:00
2026-10-02 18:04:18 -04:00
2026-10-07 00:57:27 -04:00
2026-10-07 00:57:27 -04:00
2026-10-03 14:42:14 -04:00
2026-10-08 15:25:08 -04:00
2026-10-05 16:14:20 -04:00
2026-10-05 16:23:02 -04:00
2026-10-03 02:07:52 -04:00
2026-10-03 14:42:14 -04:00
2026-10-03 18:14:11 -04:00
2026-10-06 00:36:19 -04:00
2026-10-07 18:02:19 -04:00
2026-10-03 01:06:19 -04:00
2026-10-03 00:22:08 -04:00
2026-10-06 18:34:43 -04:00
2026-10-06 19:17:27 -04:00
2026-10-06 18:34:43 -04:00
2026-10-06 18:34:43 -04:00
2026-10-07 18:02:19 -04:00
2026-10-03 18:41:25 -04:00
2026-10-03 18:18:42 -04:00
2026-10-03 19:18:35 -04:00
2026-10-02 16:38:36 -04:00
2026-10-08 12:20:26 -04:00
2026-10-08 12:20:26 -04:00
2026-10-08 12:20:26 -04:00
2026-10-07 00:57:27 -04:00
2026-10-04 13:10:44 -04:00
2026-10-04 11:55:39 -04:00
2026-10-09 15:54:18 +02:00
2026-10-06 19:16:55 -04:00
2026-10-10 10:35:47 -04:00
2026-10-10 10:35:47 -04:00
2026-10-06 19:16:55 -04:00
2026-10-06 19:16:55 -04:00
2026-10-07 18:02:19 -04:00
2026-10-04 01:23:53 -04:00
2026-10-10 10:57:58 -04:00
2026-10-02 23:35:54 -04:00
2026-10-03 18:01:11 -04:00
2026-10-07 18:02:19 -04:00
2026-10-04 13:25:23 -07:00
2026-10-08 17:38:02 -04:00
2026-10-08 17:38:02 -04:00
2026-10-07 18:02:19 -04:00
2026-10-05 06:22:39 -04:00
2026-10-08 17:38:02 -04:00
2026-10-03 17:54:01 -04:00
2026-10-07 16:54:03 -04:00
2026-10-03 14:42:14 -04:00
2026-10-05 20:01:52 -04:00
2026-10-03 01:36:29 -04:00
2026-10-03 01:36:29 -04:00
2026-10-03 20:10:03 -04:00
2026-10-04 13:25:23 -07:00
2026-10-04 13:25:23 -07:00
2026-10-03 19:23:32 -04:00
2026-10-05 05:49:50 -04:00
2026-10-05 21:57:36 -04:00
2026-10-02 20:46:14 -04:00
2026-10-02 20:46:14 -04:00
2026-10-05 15:44:56 -04:00
2026-10-03 18:51:29 -04:00
2026-10-03 18:51:29 -04:00
2026-10-06 18:28:31 -04:00
2026-10-08 17:38:02 -04:00
2026-10-06 01:00:24 -04:00
2026-10-06 18:34:43 -04:00
2026-10-06 18:34:43 -04:00
2026-10-03 19:13:20 -04:00
2026-10-04 00:25:32 -04:00
2026-10-04 00:18:39 -04:00
2026-10-06 19:16:55 -04:00
2026-10-05 15:14:26 -04:00
2026-10-04 21:17:55 -04:00
2026-10-07 18:02:19 -04:00
2026-10-05 05:30:11 -04:00
2026-10-04 21:25:11 -04:00
2026-10-04 00:54:13 -04:00
2026-10-03 19:52:22 -04:00
2026-10-07 18:02:19 -04:00
2026-10-06 01:23:02 -04:00
2026-10-06 01:00:24 -04:00
2026-10-06 19:16:55 -04:00
2026-10-03 17:43:48 -04:00
2026-10-09 17:18:27 -04:00
2026-10-09 17:24:09 -04:00
2026-10-09 17:24:09 -04:00
2026-10-05 03:43:51 -04:00
2026-10-05 03:43:51 -04:00
2026-10-04 20:03:03 -04:00
2026-10-04 13:25:23 -07:00
2026-10-02 18:05:23 -04:00
2026-10-04 13:25:23 -07:00
2026-10-07 18:02:19 -04:00
2026-10-05 15:09:02 -04:00
2026-10-03 11:42:25 -04:00
2026-10-03 11:42:25 -04:00
2026-10-04 17:58:37 -04:00
2026-10-02 22:18:56 -04:00
2026-10-04 23:44:44 -04:00
2026-10-07 02:19:20 -04:00
2026-10-07 02:19:20 -04:00
2026-10-07 13:08:53 -04:00
2026-10-07 12:40:10 -04:00
2026-10-07 12:40:10 -04:00
2026-10-03 03:07:27 -04:00
2026-10-10 10:57:58 -04:00
2026-10-04 09:39:42 -04:00
2026-10-04 09:39:42 -04:00
2026-10-07 18:02:19 -04:00
2026-10-03 14:42:14 -04:00
2026-10-01 21:34:10 -04:00
2026-10-09 12:11:58 -04:00
2026-10-06 19:16:55 -04:00
2026-10-09 16:14:47 +02:00
2026-10-03 02:02:56 -04:00
2026-10-07 02:19:20 -04:00
2026-10-05 22:36:45 -04:00
2026-10-05 22:32:05 -04:00
2026-10-06 19:02:33 -04:00
2026-10-06 19:02:33 -04:00
2026-10-07 18:02:19 -04:00
2026-10-05 23:09:50 -04:00
2026-10-05 22:46:09 -04:00
2026-10-05 22:46:09 -04:00
2026-10-05 22:46:09 -04:00
2026-10-06 18:28:31 -04:00
2026-10-09 16:23:20 +02:00
2026-10-06 00:21:52 -04:00
2026-10-07 18:02:19 -04:00
2026-10-06 19:16:55 -04:00
2026-10-06 18:28:31 -04:00
2026-10-09 11:43:41 -04:00
2026-10-06 19:14:02 -04:00
2026-10-05 22:30:22 -04:00
2026-10-06 18:28:31 -04:00
2026-10-09 16:14:47 +02:00
2026-10-09 16:14:47 +02:00
2026-10-06 19:16:55 -04:00
2026-10-09 16:23:20 +02:00
2026-10-09 16:23:20 +02:00
2026-10-06 19:02:33 -04:00
2026-10-09 16:14:47 +02:00
2026-10-05 22:36:45 -04:00
2026-10-06 19:02:33 -04:00
2026-10-06 19:16:55 -04:00
2026-10-05 22:36:45 -04:00
2026-10-05 23:09:50 -04:00
2026-10-09 16:27:56 +02:00
2026-10-07 14:37:28 -04:00
2026-10-07 17:16:11 -04:00
2026-10-09 16:14:47 +02:00
2026-10-09 16:23:20 +02:00
2026-10-07 18:02:19 -04:00
2026-10-04 13:25:23 -07:00