✔ REQ-PLUG-1 REQ-LIMIT-4 the registry: usage-source and limit-check at interface version 1, each a list (1.039479ms) ✔ REQ-PLUG-1 checkPlugins accepts one key per kind, each a list of names, empty included (0.228957ms) ✔ REQ-PLUG-1 checkPlugins refuses bad shapes, unknown kinds, bad names and duplicates (3.806893ms) ✔ REQ-PLUG-1 a kind that switches on one module takes one name, not a list (0.15291ms) ✔ REQ-PLUG-1 checkPlugins reports through the caller's fail callback (0.131014ms) ✔ REQ-PLUG-1 fixture modules of each kind switch on from a test organization file, no core file changed (7.549185ms) ✔ REQ-PLUG-1 a name not matching ^[a-z][a-z0-9-]*$ refuses and keeps the old setting (3.568287ms) ✔ REQ-PLUG-1 a missing module directory or index.mjs refuses and keeps the old setting (3.504392ms) ✔ REQ-PLUG-1 a symlinked module directory or index.mjs refuses and keeps the old setting (2.450415ms) ✔ REQ-PLUG-1 a symlinked kind directory refuses and keeps the old setting (2.28989ms) ✔ REQ-PLUG-1 a symlinked packages/plugins refuses (run with --preserve-symlinks so the path keeps it) (25.876673ms) ✔ REQ-PLUG-1 index.mjs swapped for a symlink after the lstat checks refuses at the realpath check (2.830247ms) ✔ REQ-PLUG-1 a path that can't be read refuses as unreadable, is logged and keeps the old setting (2.885347ms) ✔ REQ-PLUG-1 a path that becomes unreadable after the lstat checks refuses at either realpath (3.0921ms) ✔ REQ-PLUG-1 a module that fails to load refuses and keeps the old setting (2.828572ms) ✔ REQ-PLUG-1 a missing export refuses and keeps the old setting (3.433522ms) ✔ REQ-PLUG-1 a different interface version refuses and keeps the old setting (2.494249ms) ✔ REQ-PLUG-1 a kind refused on its first load has nothing switched on, and the log names kind and name (1.796854ms) ✔ REQ-PLUG-1 the setting's shape: unknown kinds refuse alone, a bad whole setting keeps everything (3.032013ms) ✔ REQ-PLUG-1 loads run one at a time, so the last requested setting wins (102.197842ms) ✔ REQ-PLUG-1 the loader needs a log callback (1.077117ms) ✔ REQ-PLUG-2 the real tree's searxng-url module switches on as the search-source and answers (2.892787ms) ✔ REQ-PLUG-2 a SearXNG that refuses JSON (403) is search-down, a bad settings url throws (0.773076ms) ✔ REQ-PLUG-2 search-source takes one name, not a list (0.717452ms) ✔ REQ-PLUG-2 searxng-bundled queries the fixed loopback address and ignores web.searxng (0.798018ms) ✔ REQ-PLUG-2 harness-builtin switches on, serves no broker search, and refuses if called (0.626985ms) ✔ the searxng modules end the request when the broker's AbortSignal fires (40.927073ms) ✔ hasModule: true for a shipped module, false for a missing one, an unknown kind or a bad name (0.467555ms) ✔ REQ-LIMIT-4 pi: reports all token kinds and deduplicates assistant ids (2.72603ms) ✔ REQ-LIMIT-4 claude-code: reports all token kinds and deduplicates assistant ids (0.647544ms) ✔ REQ-LIMIT-4 pi cut line is unknown, never zero or content (0.993534ms) ✔ REQ-LIMIT-4 pi invalid UTF-8 is unknown, never zero or content (0.554484ms) ✔ REQ-LIMIT-4 pi missing input is unknown, never zero or content (0.528911ms) ✔ REQ-LIMIT-4 pi negative count is unknown, never zero or content (0.434161ms) ✔ REQ-LIMIT-4 pi fractional count is unknown, never zero or content (0.428787ms) ✔ REQ-LIMIT-4 pi unsafe integer is unknown, never zero or content (0.426514ms) ✔ REQ-LIMIT-4 pi file size is unknown, never zero or content (6.985042ms) ✔ REQ-LIMIT-4 pi line size is unknown, never zero or content (3.724909ms) ✔ REQ-LIMIT-4 pi symlink file is unknown, never zero or content (0.441767ms) ✔ REQ-LIMIT-4 pi hardlink file is unknown, never zero or content (0.311318ms) ✔ REQ-LIMIT-4 claude-code cut line is unknown, never zero or content (0.358387ms) ✔ REQ-LIMIT-4 claude-code invalid UTF-8 is unknown, never zero or content (0.360244ms) ✔ REQ-LIMIT-4 claude-code missing input is unknown, never zero or content (0.36601ms) ✔ REQ-LIMIT-4 claude-code negative count is unknown, never zero or content (0.348031ms) ✔ REQ-LIMIT-4 claude-code fractional count is unknown, never zero or content (0.371385ms) ✔ REQ-LIMIT-4 claude-code unsafe integer is unknown, never zero or content (0.367178ms) ✔ REQ-LIMIT-4 claude-code file size is unknown, never zero or content (5.935843ms) ✔ REQ-LIMIT-4 claude-code line size is unknown, never zero or content (1.881033ms) ✔ REQ-LIMIT-4 claude-code symlink file is unknown, never zero or content (0.375554ms) ✔ REQ-LIMIT-4 claude-code hardlink file is unknown, never zero or content (0.318363ms) ✔ REQ-LIMIT-4 pi a symlink directory anywhere in the root refuses (0.30578ms) ✔ REQ-LIMIT-4 claude-code a symlink directory anywhere in the root refuses (0.253563ms) ✔ REQ-LIMIT-4 bounded directory entries refuse before scanning an arbitrary tree (7.748462ms) ✔ REQ-LIMIT-4 conflicting repeated usage refuses rather than double counting (0.481045ms) ✔ REQ-LIMIT-4 oversized metadata refuses before reading any transcript bytes (6.915888ms) ✔ REQ-LIMIT-4 a file growing after fstat cannot exceed the streaming byte budget (5.811593ms) ✔ REQ-LIMIT-4 a same-size edit during a read is unknown rather than a stable snapshot (0.747855ms) ✔ REQ-LIMIT-4 record count is bounded even when each record is tiny (7.422765ms) ✔ REQ-LIMIT-4 missing assistant usage, malformed JSON and conflicting identities are unknown (0.748114ms) ✔ REQ-LIMIT-4 caller roots, unsupported harnesses and non-object JSON never become zero usage (0.643679ms) ✔ REQ-LIMIT-4 even a complete JSON record with no final newline is an unknown cut line (0.295283ms) ✔ REQ-LIMIT-4 final file opens are nonblocking before hostile file type is known (0.467604ms) ✔ REQ-LIMIT-4 invalid transcript entry names refuse before file lookup (0.281012ms) ✔ REQ-LIMIT-4 claude-code refuses a symlinked project directory (0.447111ms) ℹ tests 64 ℹ suites 0 ℹ pass 64 ℹ fail 0 ℹ cancelled 0 ℹ skipped 0 ℹ todo 0 ℹ duration_ms 480.670768