feat: add fuzz testing infrastructure and fix nostrEventSchemas crash

- Added `scripts/agent/fuzz-schemas.mjs`, `fuzz-dm.mjs`, `fuzz-magnet.mjs` and `fuzz-setup.mjs`.
- Fixed crash in `js/nostrEventSchemas.js` (buildAdminListEvent log and getNostrEventSchema type check).
- Added crash reproducers in `examples/reproducers/`.
- Fuzzers output reports to `artifacts/`.
- Updated fuzzers to deduplicate crashes and safely stringify inputs.
This commit is contained in:
google-labs-jules[bot] committed 2026-01-24 16:46:46 +00:00
1 parent 8b1358a619
commit 241ad32dc4
8 files changed
+567 -1

No files matched your search

@@ -0,0 +1,6 @@
{
"function": "buildAdminListEvent",
"input": "{\"listKey\":{},\"address\":\"Ꟁ뤷世㙭硇ఴ冸\\uddc2\\ud9ac謢௼\\udd5f஝逎맗\\ud97dᢈ哏⟃\\udb4d佢\",\"pubkey\":\"__undefined__\",\"rootKind\":\":c+p/*=7^=GB_j>Hhh]56YW&ZF$28%u/J5d0_\",\"eventId\":63930,\"includeSessionTag\":76813,\"pointerValue\":\"\"}",
"error": "Error: toString throw",
"stack": "Error: toString throw\n at Object.toString (file:///app/scripts/agent/fuzz-schemas.mjs:83:31)\n at Module.buildAdminListEvent (file:///app/js/nostrEventSchemas.js:2296:54)\n at fn (file:///app/scripts/agent/fuzz-schemas.mjs:152:64)\n at run (file:///app/scripts/agent/fuzz-schemas.mjs:167:32)\n at file:///app/scripts/agent/fuzz-schemas.mjs:216:1"
}
@@ -0,0 +1,6 @@
{
"function": "buildAdminListEvent",
"input": "{\"repostKind\":true,\"listKey\":{},\"content\":false,\"q?F#3\":true}",
"error": "Error: toString throw",
"stack": "Error: toString throw\n at Object.toString (file:///app/scripts/agent/fuzz-schemas.mjs:83:31)\n at Module.buildAdminListEvent (file:///app/js/nostrEventSchemas.js:2296:54)\n at fn (file:///app/scripts/agent/fuzz-schemas.mjs:152:64)\n at run (file:///app/scripts/agent/fuzz-schemas.mjs:167:32)\n at file:///app/scripts/agent/fuzz-schemas.mjs:216:1"
}
@@ -0,0 +1,6 @@
{
"function": "buildAdminListEvent",
"input": "{\"threadParticipantPubkey\":\"=\\\"-ge5\",\"includeSessionTag\":\"C2@IUQ8DFi3\",\"address\":\"\\udab6ꇷ뻼웖\\ude2d\\udf2c䙹轂岀ꊀ魯㣝»ヒ趃㩎떡\\ude0d얭⿴灎쳽幔箆⋙Ё⥩덙\",\"ciphertext\":{\"bQyO]\":null,\"6<w,>\":false},\"listKey\":{},\"Xx)&~\":\"䍖ᔩ㒪暸╝鋶簇ᯢ⽷\\udd40察畂캌\\udc5d൒\\uda52魾웁尢󳰘穁鶽ߒ\\uda6c諉┯쭈蟡㿏ࢬ\\udcdf\\udea9㺖\"}",
"error": "Error: toString throw",
"stack": "Error: toString throw\n at Object.toString (file:///app/scripts/agent/fuzz-schemas.mjs:83:31)\n at Module.buildAdminListEvent (file:///app/js/nostrEventSchemas.js:2296:54)\n at fn (file:///app/scripts/agent/fuzz-schemas.mjs:152:64)\n at run (file:///app/scripts/agent/fuzz-schemas.mjs:167:32)\n at file:///app/scripts/agent/fuzz-schemas.mjs:216:1"
}