From 91ea195068bc66661180ddc17211884a302d63f8 Mon Sep 17 00:00:00 2001 From: John Vandenberg Date: Tue, 7 Apr 2026 19:37:12 +0800 Subject: [PATCH] Add favicon and improve title --- services/ws-server/static/favicon.png | Bin 0 -> 10683 bytes services/ws-server/static/index.html | 5 +++-- 2 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 services/ws-server/static/favicon.png diff --git a/services/ws-server/static/favicon.png b/services/ws-server/static/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..545ecb00bb3dba9068e6822a60f36ad67c718513 GIT binary patch literal 10683 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 - ws-wasm-agent demo + WASM web agent +