Teknium
e7172ab1ba
feat(mcp): fnmatch glob support in tools.include/exclude filters
...
The include/exclude filter matched exact names only — glob-style entries
('*_radar_*') silently matched nothing, so a Cloudflare flat-mode config
meant to trim 3,320 tools to ~1,900 actually registered 3,319. Unmatched
patterns produced no warning.
- matches_name_filter(): exact membership first (O(1) for literal lists),
then fnmatch.fnmatchcase for entries containing * ? [ — same pattern
semantics as approvals.deny. Entries without metacharacters stay
strictly literal ('docs' never matches 'docs_search').
- _should_register() uses it for both include and exclude (symmetric)
- hermes mcp tools picker (mcp_config.py) pre-selection uses the same
matcher so the UI agrees with runtime registration
E2E against the live Cloudflare capture with the real exclude list:
3,320 -> 1,905 surviving (1,415 excluded); radar/DLP gone,
purge_cache/dns_records kept. 220/220 mcp_tool tests (4 new).
2026-07-26 08:26:09 -07:00
..
2026-07-26 03:38:23 -05:00
2026-07-24 23:09:02 -07:00
2026-03-17 02:33:12 -07:00
2026-03-31 08:48:54 +09:00
2026-07-17 04:53:38 -07:00
2026-07-21 12:04:47 -07:00
2026-07-24 15:55:08 -07:00
2026-04-08 02:24:32 -07:00
2026-07-17 04:52:02 -07:00
2026-04-01 04:18:50 -07:00
2026-07-03 03:27:47 -07:00
2026-07-03 03:27:47 -07:00
2026-05-19 22:34:05 -07:00
2026-07-01 05:04:41 -07:00
2026-07-24 11:45:57 -07:00
2026-06-21 17:46:38 +05:30
2026-07-24 19:10:34 -07:00
2026-07-22 23:25:13 -05:00
2026-06-19 07:34:02 -07:00
2026-07-02 03:00:59 -07:00
2026-07-23 07:33:36 -07:00
2026-06-22 06:42:30 -07:00
2026-07-20 09:21:08 -07:00
2026-07-24 13:37:04 +10:00
2026-07-02 04:20:43 -07:00
2026-06-25 13:52:06 -07:00
2026-07-23 11:55:17 -07:00
2026-07-20 06:50:31 -07:00
2026-07-22 12:13:01 -05:00
2026-07-07 02:40:04 -07:00
2026-07-01 14:37:22 +05:30
2026-07-23 18:20:24 -07:00
2026-05-22 04:10:45 -07:00
2026-05-08 16:39:32 -07:00
2026-05-08 16:39:32 -07:00
2026-07-14 17:09:40 +05:30
2026-04-21 16:41:26 -07:00
2026-07-16 00:18:38 -07:00
2026-07-22 12:13:01 -05:00
2026-07-01 17:48:32 +05:30
2026-04-13 04:45:07 -07:00
2026-07-05 13:51:26 -07:00
2026-07-14 02:59:39 +05:30
2026-07-05 00:47:54 -07:00
2026-07-06 04:58:42 -07:00
2026-07-23 11:55:17 -07:00
2026-07-24 11:45:57 -07:00
2026-07-24 17:10:39 -07:00
2026-07-17 04:50:47 -07:00
2026-07-17 04:50:47 -07:00
2026-07-17 04:50:47 -07:00
2026-07-18 04:15:13 -07:00
2026-07-26 08:26:09 -07:00
2026-07-24 15:58:01 -07:00
2026-05-08 09:27:26 -07:00
2026-05-08 09:27:26 -07:00
2026-03-18 02:55:30 -07:00
2026-07-22 12:13:01 -05:00
2026-03-11 20:02:36 -07:00
2026-06-06 18:30:39 -07:00
2026-07-13 02:42:18 -07:00
2026-04-11 13:59:52 -07:00
2026-07-24 15:59:02 -07:00
2026-06-25 16:40:27 -05:00
2026-06-13 14:42:51 -07:00
2026-07-02 03:00:59 -07:00
2026-07-13 18:14:15 -04:00
2026-07-26 08:26:09 -07:00
2026-07-23 12:01:24 -07:00
2026-07-25 12:09:36 -05:00
2026-07-25 20:15:37 -07:00
2026-05-04 02:42:16 -07:00
2026-07-25 19:27:17 -07:00
2026-05-23 17:47:26 -07:00
2026-07-12 02:59:27 -07:00
2026-07-24 17:10:39 -07:00
2026-07-25 18:10:24 -07:00
2026-07-24 07:54:21 -07:00
2026-05-15 14:00:01 -07:00
2026-07-23 08:33:55 -07:00
2026-05-29 03:44:49 -07:00
2026-07-01 01:05:28 -07:00
2026-07-24 11:45:57 -07:00
2026-07-22 06:56:53 -07:00
2026-06-01 06:32:48 +05:30
2026-05-31 00:50:19 -07:00
2026-06-30 16:39:41 -07:00
2026-07-26 08:26:09 -07:00
2026-07-24 15:47:12 -07:00
2026-07-22 17:53:06 -05:00
2026-07-24 15:47:12 -07:00
2026-07-24 10:37:29 -07:00
2026-07-14 02:59:39 +05:30
2026-07-23 11:44:43 -07:00
2026-07-24 11:45:57 -07:00
2026-07-24 17:10:39 -07:00
2026-07-04 15:08:49 -07:00
2026-06-10 02:57:15 -07:00
2026-07-23 21:06:47 -07:00
2026-07-24 17:10:39 -07:00
2026-06-29 21:11:58 -07:00
2026-05-23 01:40:35 -07:00