diff --git a/tests/asserts.svg b/tests/asserts.svg
index 234f4078d..9a1f2fea5 100644
--- a/tests/asserts.svg
+++ b/tests/asserts.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/tests/autoTestAll.md b/tests/autoTestAll.md
index a13771b36..e138ee177 100644
--- a/tests/autoTestAll.md
+++ b/tests/autoTestAll.md
@@ -2,266 +2,293 @@
## Summary
-* Number of tests performed: 255
-* Number of tests passed: 253
-* Number of tests failed: 2
-* Number of asserts: 913
+* Number of tests performed: 282
+* Number of tests passed: 277
+* Number of tests failed: 5
+* Number of asserts: 1058
## Result details
| Suite | Test | Status | Time | Result |
|-------|------|--------|------|--------------|
-|AI | Anthropic prompt caching body and stats | PASS | 4 ms | n/a |
-|AI | Anthropic prompt caching headers | FAIL | 22 ms | Problem enabling Anthropic prompt caching beta header on request. (got undefined but expected "prompt-caching-2024-07-31") |
-|AI | GPT prompt argument routing | PASS | 3 ms | n/a |
-|AI | LSTM AND | PASS | 153 ms | n/a |
-|AI | LSTM network save and load | PASS | 164 ms | n/a |
-|AI | Liquid XOR | PASS | 356 ms | n/a |
-|AI | Liquid network save and load | PASS | 397 ms | n/a |
-|AI | Normalize features array | PASS | ~0 ms | n/a |
-|AI | Normalize with schema | PASS | 3 ms | n/a |
-|AI | Ollama streaming tool execution and ids | PASS | 39 ms | n/a |
-|AI | Ollama streaming warmup on fresh conversation | PASS | 1 ms | n/a |
-|AI | OpenAI export conversation falls back to tool name | PASS | 2 ms | n/a |
-|AI | OpenAI jsonSchemaPrompt | PASS | 1 ms | n/a |
-|AI | OpenAI jsonSchemaPrompt schema defaults | PASS | 1 ms | n/a |
-|AI | OpenAI jsonSchemaPrompt unsupported provider | PASS | 2 ms | n/a |
-|AI | OpenAI jsonSchemaPromptWithStats | PASS | 1 ms | n/a |
-|AI | OpenAI rawResponse caches chat fallback | PASS | 1 ms | n/a |
+|AI | Anthropic prompt caching body and stats | PASS | 26 ms | n/a |
+|AI | Anthropic prompt caching headers | FAIL | 12 ms | Problem enabling Anthropic prompt caching beta header on request. (got undefined but expected "prompt-caching-2024-07-31") |
+|AI | GPT prompt argument routing | PASS | 5 ms | n/a |
+|AI | LSTM AND | PASS | 164 ms | n/a |
+|AI | LSTM network save and load | PASS | 146 ms | n/a |
+|AI | Liquid XOR | PASS | 339 ms | n/a |
+|AI | Liquid network save and load | PASS | 316 ms | n/a |
+|AI | Normalize features array | PASS | 1 ms | n/a |
+|AI | Normalize with schema | PASS | 6 ms | n/a |
+|AI | Ollama streaming tool execution and ids | PASS | 21 ms | n/a |
+|AI | Ollama streaming warmup on fresh conversation | PASS | 2 ms | n/a |
+|AI | OpenAI export conversation falls back to tool name | PASS | 3 ms | n/a |
+|AI | OpenAI jsonSchemaPrompt | PASS | 2 ms | n/a |
+|AI | OpenAI jsonSchemaPrompt schema defaults | PASS | 2 ms | n/a |
+|AI | OpenAI jsonSchemaPrompt unsupported provider | PASS | 4 ms | n/a |
+|AI | OpenAI jsonSchemaPromptWithStats | PASS | 2 ms | n/a |
+|AI | OpenAI rawResponse caches chat fallback | PASS | 3 ms | n/a |
|AI | OpenAI rawResponse fallback to chat completions | PASS | 2 ms | n/a |
-|AI | OpenAI rawResponse keeps non availability errors | PASS | 1 ms | n/a |
-|AI | OpenAI rawResponse prefers responses | PASS | 3 ms | n/a |
-|AI | OpenAI stats capture includes cached and reasoning | PASS | 3 ms | n/a |
-|AI | OpenAI streaming tool recursion without duplication | PASS | 7 ms | n/a |
-|AI | OpenAI tool recursion without duplication | PASS | 2 ms | n/a |
-|AI | OpenAI transport modes | PASS | 5 ms | n/a |
-|AI | Perceptron XOR | PASS | 151 ms | n/a |
-|AI | Perceptron XOR Put | PASS | 3 seconds, 512 ms | n/a |
+|AI | OpenAI rawResponse keeps non availability errors | PASS | 3 ms | n/a |
+|AI | OpenAI rawResponse prefers responses | PASS | 4 ms | n/a |
+|AI | OpenAI stats capture includes cached and reasoning | PASS | 5 ms | n/a |
+|AI | OpenAI streaming tool recursion without duplication | PASS | 14 ms | n/a |
+|AI | OpenAI tool recursion without duplication | PASS | 4 ms | n/a |
+|AI | OpenAI transport modes | PASS | 9 ms | n/a |
+|AI | Perceptron XOR | PASS | 230 ms | n/a |
+|AI | Perceptron XOR Put | PASS | 3 seconds, 729 ms | n/a |
|AI | Perceptron XOR save and load | PASS | 26 ms | n/a |
-|AI | Perceptron network save and load | PASS | 31 ms | n/a |
-|AI | Test C45 | PASS | 13 ms | n/a |
-|AI | Test ID3 | PASS | 19 ms | n/a |
-|AI | Test KMeans | PASS | 4 ms | n/a |
+|AI | Perceptron network save and load | PASS | 45 ms | n/a |
+|AI | Test C45 | PASS | 22 ms | n/a |
+|AI | Test ID3 | PASS | 39 ms | n/a |
+|AI | Test KMeans | PASS | 6 ms | n/a |
+|CDS | Failed probe preserves archive | PASS | 1 second, 187 ms | n/a |
+|CDS | Platform coverage fallback | PASS | 3 ms | n/a |
+|CDS | Preserve launcher arguments | PASS | ~0 ms | n/a |
+|CDS | Training profile isolation | PASS | 1 second, 915 ms | n/a |
|CSV | Generic CSV | PASS | 1 ms | n/a |
-|CSV | Stream CSV | PASS | 7 ms | n/a |
-|CSV | ToFrom CSV | PASS | 3 ms | n/a |
-|Channels | Keep history util | PASS | 4 seconds, 13 ms | n/a |
-|Channels | Remote channel access auditing | PASS | 36 ms | n/a |
-|Channels | Subscribers test | PASS | 229 ms | n/a |
-|Channels | Test Elastic Index | PASS | ~0 ms | n/a |
-|Channels | Test MVS Utils | PASS | 41 ms | n/a |
-|Channels | Test channel (all) | PASS | 11 ms | n/a |
-|Channels | Test channel (big) | PASS | 1 ms | n/a |
-|Channels | Test channel (big) | PASS | 3 ms | n/a |
-|Channels | Test channel (big) | PASS | 13 ms | n/a |
+|CSV | Stream CSV | PASS | 11 ms | n/a |
+|CSV | ToFrom CSV | PASS | 5 ms | n/a |
+|Channels | File iteration keys | PASS | 8 ms | n/a |
+|Channels | File multifile configured key | PASS | 5 ms | n/a |
+|Channels | File multifile read and delete | PASS | 123 ms | n/a |
+|Channels | Keep history util | PASS | 4 seconds, 4 ms | n/a |
+|Channels | Proxy bulk delete | PASS | 2 ms | n/a |
+|Channels | Proxy queue | PASS | 13 ms | n/a |
+|Channels | Remote channel access auditing | PASS | 173 ms | n/a |
+|Channels | Shift error propagation | PASS | ~0 ms | n/a |
+|Channels | Subscribers test | PASS | 549 ms | n/a |
+|Channels | Test Elastic Index | PASS | 1 ms | n/a |
+|Channels | Test MVS Utils | PASS | 52 ms | n/a |
+|Channels | Test channel (all) | PASS | 12 ms | n/a |
|Channels | Test channel (big) | PASS | ~0 ms | n/a |
-|Channels | Test channel (big) | PASS | 32 seconds, 10 ms | n/a |
+|Channels | Test channel (big) | PASS | 17 ms | n/a |
+|Channels | Test channel (big) | PASS | 146 ms | n/a |
+|Channels | Test channel (big) | PASS | 1 ms | n/a |
+|Channels | Test channel (big) | PASS | 32 seconds, 3 ms | n/a |
|Channels | Test channel (cache) | PASS | 1 ms | n/a |
|Channels | Test channel (cache) | PASS | 1 ms | n/a |
-|Channels | Test channel (cache) | PASS | 32 seconds, 3 ms | n/a |
-|Channels | Test channel (file) | PASS | 3 ms | n/a |
-|Channels | Test channel (file) | PASS | 5 ms | n/a |
-|Channels | Test channel (file) | PASS | 9 ms | n/a |
+|Channels | Test channel (cache) | PASS | 32 seconds, 4 ms | n/a |
+|Channels | Test channel (file) | PASS | 2 ms | n/a |
+|Channels | Test channel (file) | PASS | 16 ms | n/a |
+|Channels | Test channel (file) | PASS | 143 ms | n/a |
|Channels | Test channel (file) | PASS | 1 ms | n/a |
-|Channels | Test channel (file) | PASS | 32 seconds, 23 ms | n/a |
-|Channels | Test channel (mvs) | PASS | ~0 ms | n/a |
-|Channels | Test channel (mvs) | PASS | 3 ms | n/a |
-|Channels | Test channel (mvs) | PASS | 10 ms | n/a |
+|Channels | Test channel (file) | PASS | 32 seconds, 4 ms | n/a |
+|Channels | Test channel (mvs) | PASS | 1 ms | n/a |
+|Channels | Test channel (mvs) | PASS | 8 ms | n/a |
+|Channels | Test channel (mvs) | PASS | 82 ms | n/a |
|Channels | Test channel (mvs) | PASS | ~0 ms | n/a |
-|Channels | Test channel (mvs) | PASS | 32 seconds, 23 ms | n/a |
+|Channels | Test channel (mvs) | PASS | 32 seconds, 3 ms | n/a |
|Channels | Test channel (simple) | PASS | ~0 ms | n/a |
-|Channels | Test channel (simple) | PASS | 2 ms | n/a |
-|Channels | Test channel (simple) | PASS | 6 ms | n/a |
+|Channels | Test channel (simple) | PASS | 3 ms | n/a |
+|Channels | Test channel (simple) | PASS | 75 ms | n/a |
|Channels | Test channel (simple) | PASS | ~0 ms | n/a |
-|Channels | Test channel (simple) | PASS | 32 seconds, 6 ms | n/a |
-|Compile | loadCompiled large script | PASS | 19 ms | n/a |
-|Compile | loadCompiled purges stale layout | PASS | 6 ms | n/a |
-|Compile | loadCompiled recursion depth | PASS | 6 ms | n/a |
-|Compile | loadCompiled round-trip | PASS | 13 ms | n/a |
-|Compile | loadCompiled stale recompile | PASS | 1 second, 131 ms | n/a |
-|Compile | requireCompiled round-trip | PASS | 6 ms | n/a |
-|DB | DB type conversion to JS | PASS | 3 ms | n/a |
-|DB | Simple DB in memory | PASS | 66 ms | n/a |
+|Channels | Test channel (simple) | PASS | 32 seconds, 3 ms | n/a |
+|Compile | loadCompiled large script | PASS | 42 ms | n/a |
+|Compile | loadCompiled purges stale layout | PASS | 5 ms | n/a |
+|Compile | loadCompiled recursion depth | PASS | 8 ms | n/a |
+|Compile | loadCompiled round-trip | PASS | 15 ms | n/a |
+|Compile | loadCompiled stale recompile | PASS | 1 second, 112 ms | n/a |
+|Compile | requireCompiled round-trip | PASS | 8 ms | n/a |
+|Console | completion callback | PASS | 8 ms | n/a |
+|Console | facade | PASS | 7 ms | n/a |
+|Console | launcher settings | PASS | ~0 ms | n/a |
+|Console | legacy history | PASS | 5 ms | n/a |
+|DB | DB type conversion to JS | PASS | 12 ms | n/a |
+|DB | Simple DB in memory | PASS | 156 ms | n/a |
+|Format | $output Markdown | FAIL | 4 ms | Problem with structured Markdown table or list strings. (got false but expected true) |
|Format | Add number separator | PASS | ~0 ms | n/a |
-|Format | Check version spec | PASS | 2 ms | n/a |
-|Format | Compare version | PASS | 4 ms | n/a |
-|Format | Conversions | PASS | 3 ms | n/a |
-|Format | Cron | PASS | 3 ms | n/a |
-|Format | Cron How Many Ago | PASS | 18 ms | n/a |
-|Format | Date diff | PASS | 3 ms | n/a |
-|Format | Date to/from | PASS | 1 ms | n/a |
-|Format | Escape strings | PASS | ~0 ms | n/a |
-|Format | Escape/Unescape HTML4 | PASS | 3 ms | n/a |
-|Format | Grid | PASS | 75 ms | n/a |
-|Format | Host | PASS | 9 ms | n/a |
+|Format | Check version spec | PASS | 1 ms | n/a |
+|Format | Compare version | PASS | 7 ms | n/a |
+|Format | Conversions | PASS | 5 ms | n/a |
+|Format | Cron | PASS | 4 ms | n/a |
+|Format | Cron How Many Ago | PASS | 27 ms | n/a |
+|Format | Date diff | PASS | 4 ms | n/a |
+|Format | Date to/from | PASS | 2 ms | n/a |
+|Format | Escape strings | PASS | 1 ms | n/a |
+|Format | Escape/Unescape HTML4 | PASS | 8 ms | n/a |
+|Format | Grid | PASS | 35 ms | n/a |
+|Format | Host | PASS | 3 ms | n/a |
|Format | LDAP date to/from | PASS | ~0 ms | n/a |
-|Format | LSH | PASS | 668 ms | n/a |
+|Format | LSH | PASS | 1 second, 616 ms | n/a |
|Format | Load Format | PASS | ~0 ms | n/a |
-|Format | Markdown wrap | PASS | 11 ms | n/a |
-|Format | Number abbreviation | PASS | ~0 ms | n/a |
-|Format | Number rounding | PASS | ~0 ms | n/a |
-|Format | Print bullet value formats | PASS | 9 ms | n/a |
-|Format | Print dashboard | PASS | 66 ms | n/a |
-|Format | Print heatmap | PASS | 39 ms | n/a |
-|Format | Print histogram | PASS | 4 ms | n/a |
-|Format | Print sparkline | PASS | 3 ms | n/a |
-|Format | PrintTable emoji alignment | PASS | 11 ms | n/a |
-|Format | PrintTable header alignment | PASS | 5 ms | n/a |
-|Format | PrintTable subdivision flag alignment | PASS | 7 ms | n/a |
-|Format | SLON | PASS | 7 ms | n/a |
+|Format | Markdown wrap | PASS | 21 ms | n/a |
+|Format | Number abbreviation | PASS | 1 ms | n/a |
+|Format | Number rounding | PASS | 1 ms | n/a |
+|Format | Print bullet value formats | PASS | 17 ms | n/a |
+|Format | Print chart array | PASS | 80 ms | n/a |
+|Format | Print dashboard | PASS | 50 ms | n/a |
+|Format | Print heatmap | PASS | 70 ms | n/a |
+|Format | Print histogram | PASS | 13 ms | n/a |
+|Format | Print sparkline | PASS | 7 ms | n/a |
+|Format | PrintTable emoji alignment | PASS | 18 ms | n/a |
+|Format | PrintTable header alignment | PASS | 15 ms | n/a |
+|Format | PrintTable subdivision flag alignment | PASS | 14 ms | n/a |
+|Format | SLON | PASS | 39 ms | n/a |
|Format | String pad | PASS | ~0 ms | n/a |
|Format | Terminal capabilities | PASS | 2 ms | n/a |
-|Format | Time ago | PASS | 1 ms | n/a |
-|Format | TimeAbbreviation | PASS | 3 ms | n/a |
-|Format | Unix date to/from | PASS | ~0 ms | n/a |
-|Format | Viz benchmark | PASS | 1 ms | n/a |
-|Format | Viz create canvas | PASS | 1 ms | n/a |
+|Format | Time ago | PASS | 2 ms | n/a |
+|Format | TimeAbbreviation | PASS | 4 ms | n/a |
+|Format | Unix date to/from | PASS | 1 ms | n/a |
+|Format | Viz benchmark | PASS | 2 ms | n/a |
+|Format | Viz create canvas | PASS | 2 ms | n/a |
|Format | Viz frame diff | PASS | 2 ms | n/a |
-|Format | Viz layout | PASS | 3 ms | n/a |
-|Format | Word wrap | PASS | 6 ms | n/a |
-|HTTP | HTTP changing user agent | PASS | 1 second, 336 ms | n/a |
-|HTTP | HTTP plugin basic functionality | PASS | 13 ms | n/a |
-|HTTP | HTTP plugin test basic auth | PASS | 1 second, 854 ms | n/a |
-|HTTP | HTTP plugin web socket client | PASS | 3 seconds, 891 ms | n/a |
-|IO | IO Test Gzip Native to Byte array | PASS | 15 ms | n/a |
-|IO | IO Test JSON | PASS | 1 ms | n/a |
-|IO | IO Test Stream JSON | PASS | 12 ms | n/a |
-|IO | IO Test TAR functionality | PASS | 2 seconds, 60 ms | n/a |
-|IO | IO Test binary file detection | PASS | 10 ms | n/a |
-|IO | IO Test copy streams | PASS | 152 ms | n/a |
-|IO | IO Test copy/move/delete file | PASS | 4 ms | n/a |
-|IO | IO Test read/writeFileStream | PASS | 4 ms | n/a |
+|Format | Viz layout | PASS | 2 ms | n/a |
+|Format | Word wrap | PASS | 13 ms | n/a |
+|HTTP | HTTP changing user agent | PASS | 279 ms | n/a |
+|HTTP | HTTP plugin basic functionality | FAIL | 62 ms | Failed to receive response from the server correctly (without a query string) |
+|HTTP | HTTP plugin test basic auth | PASS | 617 ms | n/a |
+|HTTP | HTTP plugin web socket client | PASS | 2 seconds, 636 ms | n/a |
+|IO | IO Test Gzip Native to Byte array | PASS | 39 ms | n/a |
+|IO | IO Test JSON | PASS | 2 ms | n/a |
+|IO | IO Test Stream JSON | PASS | 25 ms | n/a |
+|IO | IO Test TAR functionality | PASS | 6 seconds, 31 ms | n/a |
+|IO | IO Test binary file detection | PASS | 17 ms | n/a |
+|IO | IO Test copy streams | PASS | 288 ms | n/a |
+|IO | IO Test copy/move/delete file | PASS | 13 ms | n/a |
+|IO | IO Test read/writeFileStream | PASS | 2 ms | n/a |
|IO | IO Test read/writeFileStream NIO | PASS | 1 ms | n/a |
|IO | IO Test read/writeFileStreamBytes | PASS | 2 ms | n/a |
-|IO | IO Test read/writeFileStreamBytes NIO | PASS | 7 ms | n/a |
-|JMX | JMX test | PASS | 71 ms | n/a |
-|Java | Java ASym Cipher | PASS | 84 ms | n/a |
-|Java | Java Cipher | PASS | 123 ms | n/a |
-|MCP | OAuth authorization URL includes resource and PKCE | PASS | 26 ms | n/a |
-|MCP | OAuth authorization code token exchange includes resource and verifier | PASS | 75 ms | n/a |
-|MCP | OAuth discovery with client credentials | PASS | 214 ms | n/a |
-|MCP | Remote clients close request HTTP clients | PASS | 49 ms | n/a |
-|MCP | oJob tplDesc renders all tool metadata strings | PASS | 146 ms | n/a |
-|Net | Get Actual Time (default) | PASS | 144 ms | n/a |
-|Net | Get Actual Time (server and timeout) | PASS | 75 ms | n/a |
-|Net | Get Actual Time (with server) | PASS | 69 ms | n/a |
-|Net | Get Actual Time (with timeout) | PASS | 34 ms | n/a |
+|IO | IO Test read/writeFileStreamBytes NIO | PASS | ~0 ms | n/a |
+|Instrumentation | Isolated regression | PASS | 5 seconds, 896 ms | n/a |
+|JMX | JMX test | PASS | 729 ms | n/a |
+|Java | Java ASym Cipher | PASS | 154 ms | n/a |
+|Java | Java Cipher | PASS | 129 ms | n/a |
+|MCP | OAuth authorization URL includes resource and PKCE | PASS | 42 ms | n/a |
+|MCP | OAuth authorization code token exchange includes resource and verifier | PASS | 99 ms | n/a |
+|MCP | OAuth discovery with client credentials | PASS | 163 ms | n/a |
+|MCP | Remote clients close request HTTP clients | PASS | 53 ms | n/a |
+|MCP | auto client falls back to legacy server | PASS | 72 ms | n/a |
+|MCP | auto client negotiates modern era with dual-era server | FAIL | 54 ms | Modern-era tools/list result should carry resultType. (got undefined but expected "complete") |
+|MCP | legacy client unaffected by dual-era server | PASS | 38 ms | n/a |
+|MCP | modern server rejects unsupported protocol version | PASS | 30 ms | n/a |
+|MCP | oJob tplDesc renders all tool metadata strings | PASS | 262 ms | n/a |
+|MCP | server discover is probeable without client capabilities | PASS | 29 ms | n/a |
+|Net | Get Actual Time (default) | PASS | 80 ms | n/a |
+|Net | Get Actual Time (server and timeout) | PASS | 30 ms | n/a |
+|Net | Get Actual Time (with server) | PASS | 49 ms | n/a |
+|Net | Get Actual Time (with timeout) | PASS | 49 ms | n/a |
+|Net | Get DoH (custom server) | FAIL | 67 ms | Problem using a custom DNS over HTTPS server. (got undefined but expected [{"name":"example.test.","type":1,"TTL":60,"data":"192.0.2.1"}]) |
|Net | Load Net | PASS | ~0 ms | n/a |
-|Obj | Array to object conversion | PASS | 1 ms | n/a |
-|Obj | DB ResultSet to object | PASS | 552 ms | n/a |
-|Obj | Filter | PASS | 6 ms | n/a |
-|Obj | Flat map | PASS | 6 ms | n/a |
-|Obj | Flatten | PASS | 110 ms | n/a |
-|Obj | Generate One of | PASS | 18 ms | n/a |
-|Obj | Generate One of Fn | PASS | 5 ms | n/a |
-|Obj | Get Path | PASS | ~0 ms | n/a |
-|Obj | Object fuzzy search | PASS | 40 ms | n/a |
-|Obj | Object pool | PASS | 6 seconds, 118 ms | n/a |
-|Obj | Object schema validation | PASS | 158 ms | n/a |
+|Obj | Array to object conversion | PASS | ~0 ms | n/a |
+|Obj | DB ResultSet to object | PASS | 1 second, 117 ms | n/a |
+|Obj | Filter | PASS | 7 ms | n/a |
+|Obj | Flat map | PASS | 9 ms | n/a |
+|Obj | Flatten | PASS | 216 ms | n/a |
+|Obj | Generate One of | PASS | 28 ms | n/a |
+|Obj | Generate One of Fn | PASS | 13 ms | n/a |
+|Obj | Get Path | PASS | 1 ms | n/a |
+|Obj | Object fuzzy search | PASS | 46 ms | n/a |
+|Obj | Object pool | PASS | 2 seconds, 114 ms | n/a |
+|Obj | Object pool added and failed batch | PASS | 1 ms | n/a |
+|Obj | Object pool batch growth | PASS | 1 ms | n/a |
+|Obj | Object pool capacity | PASS | 1 ms | n/a |
+|Obj | Object pool stop without close | PASS | 1 ms | n/a |
+|Obj | Object schema validation | PASS | 270 ms | n/a |
|Obj | Object to array conversion | PASS | 1 ms | n/a |
|Obj | Set Path | PASS | 1 ms | n/a |
-|Obj | Sign object | PASS | 209 ms | n/a |
-|Obj | Thread-safe array | PASS | 4 ms | n/a |
-|Obj | Thread-safe array | PASS | ~0 ms | n/a |
-|Obj | Thread-safe map | PASS | 1 ms | n/a |
-|OpenAF | Await | PASS | 57 ms | n/a |
-|OpenAF | AwaitAll | PASS | 56 ms | n/a |
-|OpenAF | Basic Parallel processing | PASS | 5 ms | n/a |
+|Obj | Sign object | PASS | 529 ms | n/a |
+|Obj | Thread-safe array | PASS | 3 ms | n/a |
+|Obj | Thread-safe array | PASS | 1 ms | n/a |
+|Obj | Thread-safe map | PASS | 2 ms | n/a |
+|OpenAF | Await | PASS | 53 ms | n/a |
+|OpenAF | AwaitAll | PASS | 52 ms | n/a |
+|OpenAF | Basic Parallel processing | PASS | 10 ms | n/a |
|OpenAF | Cache | PASS | 320 ms | n/a |
-|OpenAF | Crypt | PASS | 5 ms | n/a |
+|OpenAF | Crypt | PASS | 11 ms | n/a |
|OpenAF | DescType | PASS | 1 ms | n/a |
|OpenAF | Encrypt/Decrypt | PASS | 1 ms | n/a |
|OpenAF | Get Path | PASS | ~0 ms | n/a |
|OpenAF | Get version | PASS | ~0 ms | n/a |
|OpenAF | IsFunctions | PASS | ~0 ms | n/a |
-|OpenAF | Java RegExp | PASS | 2 ms | n/a |
-|OpenAF | Logs | PASS | 2 ms | n/a |
-|OpenAF | Map Array | PASS | 1 ms | n/a |
-|OpenAF | Map22Array | PASS | 1 second, 372 ms | n/a |
+|OpenAF | Java RegExp | PASS | 5 ms | n/a |
+|OpenAF | Logs | PASS | 3 ms | n/a |
+|OpenAF | Map Array | PASS | 2 ms | n/a |
+|OpenAF | Map22Array | PASS | 641 ms | n/a |
|OpenAF | NDJSON | PASS | 2 ms | n/a |
-|OpenAF | PSelect | PASS | 4 ms | n/a |
+|OpenAF | PSelect | PASS | 8 ms | n/a |
|OpenAF | Prints | PASS | ~0 ms | n/a |
-|OpenAF | Queue | PASS | 4 ms | n/a |
-|OpenAF | Range | PASS | ~0 ms | n/a |
-|OpenAF | Retry | PASS | 1 ms | n/a |
+|OpenAF | Queue | PASS | 16 ms | n/a |
+|OpenAF | Range | PASS | 2 ms | n/a |
+|OpenAF | Retry | PASS | 2 ms | n/a |
|OpenAF | SPrints | PASS | 1 ms | n/a |
-|OpenAF | Search Key and Values | PASS | 1 ms | n/a |
-|OpenAF | Set Path | PASS | 1 ms | n/a |
-|OpenAF | Test $do | PASS | 3 ms | n/a |
-|OpenAF | Test $doAll | PASS | 2 ms | n/a |
-|OpenAF | Test $doFirst | PASS | 170 ms | n/a |
-|OpenAF | Test AF Parse | PASS | ~0 ms | n/a |
-|OpenAF | Test BCrypt | PASS | 734 ms | n/a |
+|OpenAF | Search Key and Values | PASS | 2 ms | n/a |
+|OpenAF | Set Path | PASS | ~0 ms | n/a |
+|OpenAF | Test $do | PASS | 8 ms | n/a |
+|OpenAF | Test $doAll | PASS | 4 ms | n/a |
+|OpenAF | Test $doFirst | PASS | 154 ms | n/a |
+|OpenAF | Test AF Parse | PASS | 1 ms | n/a |
+|OpenAF | Test BCrypt | PASS | 830 ms | n/a |
|OpenAF | Test Encoding | PASS | ~0 ms | n/a |
|OpenAF | Test Envs | PASS | 1 ms | n/a |
-|OpenAF | Test FLock | PASS | 2 ms | n/a |
-|OpenAF | Test Format Conversion to/from base64 | PASS | ~0 ms | n/a |
+|OpenAF | Test FLock | PASS | 5 ms | n/a |
+|OpenAF | Test Format Conversion to/from base64 | PASS | 1 ms | n/a |
|OpenAF | Test Format Conversion to/from bytes | PASS | ~0 ms | n/a |
-|OpenAF | Test GetSet | PASS | 1 ms | n/a |
+|OpenAF | Test GetSet | PASS | 3 ms | n/a |
|OpenAF | Test Lock | PASS | 1 ms | n/a |
|OpenAF | Test Merge | PASS | ~0 ms | n/a |
-|OpenAF | Test Object Compression | PASS | ~0 ms | n/a |
-|OpenAF | Test Path | PASS | 46 ms | n/a |
-|OpenAF | Test Rest | PASS | 7 seconds, 597 ms | n/a |
+|OpenAF | Test Object Compression | PASS | 1 ms | n/a |
+|OpenAF | Test Path | PASS | 166 ms | n/a |
+|OpenAF | Test Rest | PASS | 288 ms | n/a |
|OpenAF | Test SHA1 | PASS | ~0 ms | n/a |
|OpenAF | Test SHA256 | PASS | ~0 ms | n/a |
|OpenAF | Test SHA512 | PASS | ~0 ms | n/a |
-|OpenAF | Test Scope Ids | PASS | ~0 ms | n/a |
-|OpenAF | Test Shell | PASS | 8 ms | n/a |
-|OpenAF | Test Shell with Map | PASS | 6 ms | n/a |
+|OpenAF | Test Scope Ids | PASS | 2 ms | n/a |
+|OpenAF | Test Shell | PASS | 5 ms | n/a |
+|OpenAF | Test Shell with Map | PASS | 2 ms | n/a |
|OpenAF | Test Stream conversions | PASS | ~0 ms | n/a |
|OpenAF | Test Void shortcut | PASS | ~0 ms | n/a |
-|OpenAF | Test clone | PASS | ~0 ms | n/a |
-|OpenAF | Test pForEach | PASS | 958 ms | n/a |
-|OpenAF | Test pForEach Timeout | PASS | 2 seconds, 18 ms | n/a |
-|OpenAF | Thread box | PASS | 329 ms | n/a |
-|OpenAF | Two factor authentication | PASS | ~0 ms | n/a |
-|OpenAF | XML2And4Obj | PASS | 53 ms | n/a |
-|OpenAF | YAML | PASS | 2 ms | n/a |
-|Sec | Sec basic functionality | PASS | 9 ms | n/a |
-|Sec | Sec function functionality | PASS | 441 ms | n/a |
-|Sec | Sec object functionality | PASS | 606 ms | n/a |
-|Server | Auth | PASS | 6 seconds, 32 ms | n/a |
-|Server | AuthApp | PASS | 163 ms | n/a |
-|Server | CheckIn | PASS | 7 ms | n/a |
-|Server | HTTP server | PASS | 44 ms | n/a |
-|Server | HTTP server Java | PASS | 7 ms | n/a |
-|Server | HTTP server NWU2 | PASS | 29 ms | n/a |
-|Server | HTTP server prefix | PASS | 1 second, 5 ms | n/a |
-|Server | HTTP server prefix Java | PASS | 997 ms | n/a |
-|Server | HTTP server prefix NWU2 | PASS | 1 second, 11 ms | n/a |
-|Server | HTTP server prefix helpers | PASS | ~0 ms | n/a |
-|Server | Locks | PASS | 2 seconds, 20 ms | n/a |
-|Server | Queue | PASS | 2 seconds, 854 ms | n/a |
-|Server | REST server | PASS | 48 ms | n/a |
-|Server | REST server Java | PASS | 51 ms | n/a |
-|Server | REST server NWU2 | PASS | 25 ms | n/a |
-|Server | REST server simple | PASS | 23 ms | n/a |
-|Server | REST server simple Java | PASS | 7 ms | n/a |
-|Server | REST server simple NWU2 | PASS | 17 ms | n/a |
-|Server | Scheduler | PASS | 16 seconds, 118 ms | n/a |
-|TOON | Default engine round-trip | PASS | 142 ms | n/a |
-|TOON | Engines agree on tabular data | PASS | 225 ms | n/a |
-|TOON | Java engine round-trip | PASS | 5 ms | n/a |
-|TOON | Known empty array cross-engine limitation | PASS | 2 ms | n/a |
-|TOON | Large payload | PASS | 100 ms | n/a |
+|OpenAF | Test clone | PASS | 1 ms | n/a |
+|OpenAF | Test pForEach | PASS | 118 ms | n/a |
+|OpenAF | Test pForEach Timeout | PASS | 2 seconds, 19 ms | n/a |
+|OpenAF | Thread box | PASS | 305 ms | n/a |
+|OpenAF | Two factor authentication | PASS | 2 ms | n/a |
+|OpenAF | XML2And4Obj | PASS | 187 ms | n/a |
+|OpenAF | YAML | PASS | 4 ms | n/a |
+|Sec | Sec basic functionality | PASS | 13 ms | n/a |
+|Sec | Sec function functionality | PASS | 681 ms | n/a |
+|Sec | Sec object functionality | PASS | 935 ms | n/a |
+|Server | Auth | PASS | 6 seconds, 16 ms | n/a |
+|Server | AuthApp | PASS | 185 ms | n/a |
+|Server | CheckIn | PASS | 3 ms | n/a |
+|Server | HTTP server | PASS | 115 ms | n/a |
+|Server | HTTP server Java | PASS | 15 ms | n/a |
+|Server | HTTP server NWU2 | PASS | 74 ms | n/a |
+|Server | HTTP server prefix | PASS | 1 second, 443 ms | n/a |
+|Server | HTTP server prefix Java | PASS | 1 second, 354 ms | n/a |
+|Server | HTTP server prefix NWU2 | PASS | 1 second, 409 ms | n/a |
+|Server | HTTP server prefix helpers | PASS | 1 ms | n/a |
+|Server | Locks | PASS | 2 seconds, 29 ms | n/a |
+|Server | Queue | PASS | 4 seconds, 614 ms | n/a |
+|Server | REST server | PASS | 55 ms | n/a |
+|Server | REST server Java | PASS | 212 ms | n/a |
+|Server | REST server NWU2 | PASS | 38 ms | n/a |
+|Server | REST server simple | PASS | 25 ms | n/a |
+|Server | REST server simple Java | PASS | 17 ms | n/a |
+|Server | REST server simple NWU2 | PASS | 29 ms | n/a |
+|Server | Scheduler | PASS | 15 seconds, 16 ms | n/a |
+|TOON | Default engine round-trip | PASS | 420 ms | n/a |
+|TOON | Engines agree on tabular data | PASS | 349 ms | n/a |
+|TOON | Java engine round-trip | PASS | 2 ms | n/a |
+|TOON | Known empty array cross-engine limitation | PASS | 4 ms | n/a |
+|TOON | Large payload | PASS | 231 ms | n/a |
|Template | Load Template | PASS | ~0 ms | n/a |
-|Template | Test Markdown display math | PASS | 7 ms | n/a |
-|Template | Test Markdown to HTML | PASS | 528 ms | n/a |
-|Template | Test Markdown to HTML prefix | FAIL | 51 ms | JavaException: java.nio.file.NoSuchFileException: /js/katex.min.js |
-|Template | Test conditional helpers | PASS | 69 ms | n/a |
-|Template | Test format helpers | PASS | 18 ms | n/a |
-|Template | Test openaf helpers | PASS | 38 ms | n/a |
-|Template | Test partial helpers | PASS | 10 ms | n/a |
-|Template | Test simple template | PASS | 7 ms | n/a |
-|ZIP | ZIP basic functionality | PASS | 1 second, 220 ms | n/a |
-|ZIP | ZIP streaming functionality | PASS | 1 second, 286 ms | n/a |
-|oDoc | Test access to oDoc | PASS | 805 ms | n/a |
-|oJob | oJob | PASS | 1 second, 242 ms | n/a |
-|oJob | oJobArgsMultipleLevels | PASS | 1 second, 153 ms | n/a |
-|oJob | oJobChecks | PASS | 1 second, 59 ms | n/a |
-|oJob | oJobEncryptedJSON | PASS | 1 second, 45 ms | n/a |
-|oJob | oJobEncryptedYAML | PASS | 1 second, 127 ms | n/a |
-|oJob | oJobInitArray | PASS | 2 seconds, 764 ms | n/a |
-|oJob | oJobPass | PASS | 1 second, 145 ms | n/a |
-|oJob | oJobShortcutOutput | PASS | 1 second, 94 ms | n/a |
-|oJob | oJobShortcuts | PASS | 1 second, 108 ms | n/a |
+|Template | Test Markdown display math | PASS | 20 ms | n/a |
+|Template | Test Markdown to HTML | PASS | 773 ms | n/a |
+|Template | Test Markdown to HTML prefix | PASS | 109 ms | n/a |
+|Template | Test conditional helpers | PASS | 128 ms | n/a |
+|Template | Test format helpers | PASS | 25 ms | n/a |
+|Template | Test openaf helpers | PASS | 65 ms | n/a |
+|Template | Test partial helpers | PASS | 25 ms | n/a |
+|Template | Test simple template | PASS | 17 ms | n/a |
+|ZIP | ZIP basic functionality | PASS | 1 second, 971 ms | n/a |
+|ZIP | ZIP streaming functionality | PASS | 1 second, 933 ms | n/a |
+|oDoc | Test access to oDoc | PASS | 1 second, 134 ms | n/a |
+|oJob | oJob | PASS | 2 seconds, 737 ms | n/a |
+|oJob | oJobArgsMultipleLevels | PASS | 2 seconds, 431 ms | n/a |
+|oJob | oJobChecks | PASS | 2 seconds, 314 ms | n/a |
+|oJob | oJobEncryptedJSON | PASS | 2 seconds, 31 ms | n/a |
+|oJob | oJobEncryptedYAML | PASS | 2 seconds, 67 ms | n/a |
+|oJob | oJobInitArray | PASS | 4 seconds, 933 ms | n/a |
+|oJob | oJobPass | PASS | 2 seconds, 160 ms | n/a |
+|oJob | oJobShortcutOutput | PASS | 2 seconds, 279 ms | n/a |
+|oJob | oJobShortcuts | PASS | 2 seconds, 564 ms | n/a |
diff --git a/tests/results.svg b/tests/results.svg
index 1eda6e770..fe8dd34aa 100644
--- a/tests/results.svg
+++ b/tests/results.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file