Ayaan Zaidi
746a188c90
refactor(media): collapse attachment byte classification into media-core ( #122168 )
...
Attachment MIME gating and extraction dispatch used nine separate byte policies across five files; the allowlist could approve one MIME while dispatch observed another after a second sniff. @openclaw/media-core/attachment-classify now owns byte sniffing, text heuristics, extension mapping, and the seven attachment classes; the cache stores one classification that gates and dispatch share. Channel-declared MIME leads with the transport Content-Type as a byte-arbitrated hint, normalizeMimeType folds YAML/XML synonyms so existing configured allowlists keep matching, and input_file API callers keep declared-MIME precedence over cosmetic filenames. Net -135 production LOC.
Proof: 2,153 focused tests across media-core/media-understanding/media plus boundary-contract and deadcode-mirror suites; ClawSweeper local review clean (round 5, zero findings); live Telegram default-turn probe green.
Co-authored-by: Ayaan Zaidi <hi@obviy.us >
2026-08-11 19:10:49 +00:00
..
2026-06-22 07:59:00 +08:00
2026-06-22 07:59:00 +08:00
2026-07-28 14:07:02 -04:00
2026-07-28 14:07:02 -04:00
2026-08-02 17:08:08 -07:00
2026-07-28 14:07:02 -04:00
2026-07-28 14:07:02 -04:00
2026-07-28 14:07:02 -04:00
2026-07-28 14:07:02 -04:00
2026-08-11 05:00:17 -05:00
2026-07-28 14:07:02 -04:00
2026-07-28 14:07:02 -04:00
2026-07-28 14:07:02 -04:00
2026-07-22 19:33:45 -04:00
2026-07-11 06:15:41 -07:00
2026-07-15 22:40:00 -07:00
2026-07-11 06:15:41 -07:00
2026-07-15 22:40:00 -07:00
2026-07-28 00:41:49 -04:00
2026-07-28 00:41:49 -04:00
2026-08-10 09:35:51 -07:00
2026-07-28 00:41:49 -04:00
2026-07-11 06:15:41 -07:00
2026-07-10 19:18:47 -07:00
2026-07-10 12:00:14 -04:00
2026-08-09 19:44:44 -07:00
2026-07-31 16:40:46 -07:00
2026-07-31 16:40:46 -07:00
2026-07-31 16:40:46 -07:00
2026-08-08 09:21:50 -07:00
2026-08-09 07:21:35 -07:00
2026-07-11 06:15:41 -07:00
2026-08-02 19:55:36 -07:00
2026-07-11 06:15:41 -07:00
2026-08-02 19:55:36 -07:00
2026-07-11 06:15:41 -07:00
2026-08-02 19:55:36 -07:00
2026-07-15 22:40:00 -07:00
2026-07-11 03:04:11 -07:00
2026-08-08 19:25:39 -05:00
2026-07-27 23:56:44 -04:00
2026-07-07 13:45:26 -07:00
2026-07-07 13:45:26 -07:00
2026-07-07 13:45:26 -07:00
2026-07-07 13:45:26 -07:00
2026-07-07 13:45:26 -07:00
2026-07-11 06:15:41 -07:00
2026-07-07 13:45:26 -07:00
2026-08-02 19:55:36 -07:00
2026-08-10 09:35:51 -07:00
2026-07-11 06:15:41 -07:00
2026-08-02 19:55:36 -07:00
2026-08-02 19:55:36 -07:00
2026-07-11 06:15:41 -07:00
2026-07-15 22:40:00 -07:00
2026-08-02 19:55:36 -07:00
2026-08-02 19:55:36 -07:00
2026-07-11 06:15:41 -07:00
2026-08-02 19:55:36 -07:00
2026-08-02 19:55:36 -07:00
2026-07-11 06:15:41 -07:00
2026-07-15 22:40:00 -07:00
2026-07-11 06:15:41 -07:00
2026-07-15 22:40:00 -07:00
2026-08-02 19:55:36 -07:00
2026-07-11 06:15:41 -07:00
2026-08-02 19:55:36 -07:00
2026-07-11 06:15:41 -07:00
2026-08-02 19:55:36 -07:00
2026-07-11 06:15:41 -07:00
2026-07-15 22:40:00 -07:00
2026-08-02 19:55:36 -07:00
2026-07-11 06:15:41 -07:00
2026-08-09 19:43:49 -07:00
2026-08-02 19:55:36 -07:00
2026-07-11 06:15:41 -07:00
2026-07-15 22:40:00 -07:00
2026-08-10 09:35:51 -07:00
2026-07-11 06:15:41 -07:00
2026-07-15 22:40:00 -07:00
2026-08-02 19:55:36 -07:00
2026-07-11 06:15:41 -07:00
2026-08-02 19:55:36 -07:00
2026-08-02 19:55:36 -07:00
2026-07-11 06:15:41 -07:00
2026-08-02 19:55:36 -07:00
2026-07-11 06:15:41 -07:00
2026-07-15 22:40:00 -07:00
2026-08-02 19:55:36 -07:00
2026-07-11 06:15:41 -07:00
2026-07-15 22:40:00 -07:00
2026-08-02 19:55:36 -07:00
2026-07-11 06:15:41 -07:00
2026-08-02 19:55:36 -07:00
2026-07-11 00:58:14 -07:00
2026-07-15 07:14:35 -07:00
2026-07-19 01:06:49 -07:00
2026-07-13 04:38:05 -07:00
2026-07-13 04:38:05 -07:00
2026-08-04 03:38:39 -07:00
2026-08-04 03:38:39 -07:00
2026-08-04 03:38:39 -07:00
2026-07-07 13:45:26 -07:00
2026-07-16 23:15:35 -07:00
2026-07-09 19:32:12 -04:00
2026-08-10 20:21:20 -07:00
2026-07-13 04:38:05 -07:00
2026-07-10 12:00:14 -04:00
2026-07-11 06:15:41 -07:00
2026-06-18 16:51:19 +08:00
2026-08-10 09:35:51 -07:00
2026-08-10 09:35:51 -07:00
2026-08-10 09:35:51 -07:00
2026-07-10 12:00:14 -04:00
2026-08-11 19:10:49 +00:00
2026-08-09 07:21:35 -07:00
2026-07-11 06:15:41 -07:00
2026-07-28 14:07:02 -04:00
2026-08-02 10:12:30 -07:00
2026-07-14 00:16:49 -07:00
2026-07-14 15:00:58 -07:00
2026-07-14 00:16:49 -07:00
2026-07-14 00:16:49 -07:00
2026-08-04 16:35:41 +08:00
2026-08-09 14:50:07 -07:00
2026-08-03 09:55:37 -07:00
2026-08-03 08:01:44 -07:00
2026-07-27 16:02:28 -04:00
2026-08-10 16:17:25 -07:00
2026-08-10 09:35:51 -07:00
2026-07-04 23:19:38 +01:00
2026-08-10 09:35:51 -07:00
2026-07-11 06:15:41 -07:00
2026-07-15 07:14:35 -07:00
2026-07-15 07:14:35 -07:00
2026-08-12 02:07:51 +08:00
2026-08-09 19:44:44 -07:00
2026-08-09 19:44:44 -07:00
2026-07-11 06:15:41 -07:00
2026-07-11 00:58:14 -07:00
2026-07-10 12:00:14 -04:00
2026-07-27 06:54:45 -04:00