diff --git a/CHANGELOG.md b/CHANGELOG.md
index b0217467..17fc8905 100755
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,10 @@
+# v3.1.1
+
+## What's Changed
+
+* Fixed crash caused by concurrent writes under high load ([#684](https://github.com/selfhst/icons/issues/684))
+* Suppress favicon error log message when viewing icons directly from a browser
+
# v3.1.0
## What's Changed
diff --git a/avif/harbor-scale-dark.avif b/avif/harbor-scale-dark.avif
new file mode 100644
index 00000000..356c6f93
Binary files /dev/null and b/avif/harbor-scale-dark.avif differ
diff --git a/avif/harbor-scale-light.avif b/avif/harbor-scale-light.avif
new file mode 100644
index 00000000..10378bf9
Binary files /dev/null and b/avif/harbor-scale-light.avif differ
diff --git a/avif/harbor-scale.avif b/avif/harbor-scale.avif
new file mode 100644
index 00000000..d0e18305
Binary files /dev/null and b/avif/harbor-scale.avif differ
diff --git a/avif/lastsignal-dark.avif b/avif/lastsignal-dark.avif
new file mode 100644
index 00000000..2f400933
Binary files /dev/null and b/avif/lastsignal-dark.avif differ
diff --git a/avif/lastsignal-light.avif b/avif/lastsignal-light.avif
new file mode 100644
index 00000000..6f876275
Binary files /dev/null and b/avif/lastsignal-light.avif differ
diff --git a/avif/lastsignal.avif b/avif/lastsignal.avif
new file mode 100644
index 00000000..45ee16c9
Binary files /dev/null and b/avif/lastsignal.avif differ
diff --git a/avif/moltbot-dark.avif b/avif/openclaw-dark.avif
similarity index 100%
rename from avif/moltbot-dark.avif
rename to avif/openclaw-dark.avif
diff --git a/avif/moltbot-light.avif b/avif/openclaw-light.avif
similarity index 100%
rename from avif/moltbot-light.avif
rename to avif/openclaw-light.avif
diff --git a/avif/moltbot.avif b/avif/openclaw.avif
similarity index 100%
rename from avif/moltbot.avif
rename to avif/openclaw.avif
diff --git a/build/VERSION b/build/VERSION
index a0cd9f0c..50e47c89 100755
--- a/build/VERSION
+++ b/build/VERSION
@@ -1 +1 @@
-3.1.0
\ No newline at end of file
+3.1.1
\ No newline at end of file
diff --git a/build/main.go b/build/main.go
index e0d59e3d..5c913a01 100755
--- a/build/main.go
+++ b/build/main.go
@@ -54,7 +54,6 @@ func (c *Cache) Get(key string) (string, bool) {
}
if time.Since(item.Timestamp) > c.ttl {
- delete(c.items, key)
return "", false
}
@@ -430,6 +429,11 @@ func main() {
mux.HandleFunc("GET /custom/{filename}", handleCustomIcon)
+ // Suppress favicon load error message in logs when viewing via browser
+ mux.HandleFunc("GET /favicon.ico", func(w http.ResponseWriter, r *http.Request) {
+ w.WriteHeader(http.StatusNoContent)
+ })
+
mux.HandleFunc("GET /{iconname}/{colorcode}", handleIcon)
mux.HandleFunc("GET /{iconname}", handleIcon)
diff --git a/ico/harbor-scale-dark.ico b/ico/harbor-scale-dark.ico
new file mode 100644
index 00000000..3cf42afb
Binary files /dev/null and b/ico/harbor-scale-dark.ico differ
diff --git a/ico/harbor-scale-light.ico b/ico/harbor-scale-light.ico
new file mode 100644
index 00000000..5af9d31f
Binary files /dev/null and b/ico/harbor-scale-light.ico differ
diff --git a/ico/harbor-scale.ico b/ico/harbor-scale.ico
new file mode 100644
index 00000000..0eba8dd1
Binary files /dev/null and b/ico/harbor-scale.ico differ
diff --git a/ico/lastsignal-dark.ico b/ico/lastsignal-dark.ico
new file mode 100644
index 00000000..f5821589
Binary files /dev/null and b/ico/lastsignal-dark.ico differ
diff --git a/ico/lastsignal-light.ico b/ico/lastsignal-light.ico
new file mode 100644
index 00000000..f66bcb37
Binary files /dev/null and b/ico/lastsignal-light.ico differ
diff --git a/ico/lastsignal.ico b/ico/lastsignal.ico
new file mode 100644
index 00000000..6fa02a50
Binary files /dev/null and b/ico/lastsignal.ico differ
diff --git a/ico/moltbot-dark.ico b/ico/openclaw-dark.ico
similarity index 100%
rename from ico/moltbot-dark.ico
rename to ico/openclaw-dark.ico
diff --git a/ico/moltbot-light.ico b/ico/openclaw-light.ico
similarity index 100%
rename from ico/moltbot-light.ico
rename to ico/openclaw-light.ico
diff --git a/ico/moltbot.ico b/ico/openclaw.ico
similarity index 100%
rename from ico/moltbot.ico
rename to ico/openclaw.ico
diff --git a/png/harbor-scale-dark.png b/png/harbor-scale-dark.png
new file mode 100755
index 00000000..0f43a3d7
Binary files /dev/null and b/png/harbor-scale-dark.png differ
diff --git a/png/harbor-scale-light.png b/png/harbor-scale-light.png
new file mode 100755
index 00000000..401e0dc3
Binary files /dev/null and b/png/harbor-scale-light.png differ
diff --git a/png/harbor-scale.png b/png/harbor-scale.png
new file mode 100755
index 00000000..85924ff1
Binary files /dev/null and b/png/harbor-scale.png differ
diff --git a/png/lastsignal-dark.png b/png/lastsignal-dark.png
new file mode 100755
index 00000000..5f573029
Binary files /dev/null and b/png/lastsignal-dark.png differ
diff --git a/png/lastsignal-light.png b/png/lastsignal-light.png
new file mode 100755
index 00000000..394ce0e6
Binary files /dev/null and b/png/lastsignal-light.png differ
diff --git a/png/lastsignal.png b/png/lastsignal.png
new file mode 100755
index 00000000..1b0123b1
Binary files /dev/null and b/png/lastsignal.png differ
diff --git a/png/moltbot-dark.png b/png/openclaw-dark.png
similarity index 100%
rename from png/moltbot-dark.png
rename to png/openclaw-dark.png
diff --git a/png/moltbot-light.png b/png/openclaw-light.png
similarity index 100%
rename from png/moltbot-light.png
rename to png/openclaw-light.png
diff --git a/png/moltbot.png b/png/openclaw.png
similarity index 100%
rename from png/moltbot.png
rename to png/openclaw.png
diff --git a/svg/harbor-scale-dark.svg b/svg/harbor-scale-dark.svg
new file mode 100755
index 00000000..1100d362
--- /dev/null
+++ b/svg/harbor-scale-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/svg/harbor-scale-light.svg b/svg/harbor-scale-light.svg
new file mode 100755
index 00000000..1e898f39
--- /dev/null
+++ b/svg/harbor-scale-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/svg/harbor-scale.svg b/svg/harbor-scale.svg
new file mode 100755
index 00000000..fffc4a58
--- /dev/null
+++ b/svg/harbor-scale.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/svg/lastsignal-dark.svg b/svg/lastsignal-dark.svg
new file mode 100755
index 00000000..f0a6c92d
--- /dev/null
+++ b/svg/lastsignal-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/svg/lastsignal-light.svg b/svg/lastsignal-light.svg
new file mode 100755
index 00000000..95a53461
--- /dev/null
+++ b/svg/lastsignal-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/svg/lastsignal.svg b/svg/lastsignal.svg
new file mode 100755
index 00000000..a2b408ec
--- /dev/null
+++ b/svg/lastsignal.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/svg/moltbot-dark.svg b/svg/openclaw-dark.svg
similarity index 100%
rename from svg/moltbot-dark.svg
rename to svg/openclaw-dark.svg
diff --git a/svg/moltbot-light.svg b/svg/openclaw-light.svg
similarity index 100%
rename from svg/moltbot-light.svg
rename to svg/openclaw-light.svg
diff --git a/svg/moltbot.svg b/svg/openclaw.svg
similarity index 100%
rename from svg/moltbot.svg
rename to svg/openclaw.svg
diff --git a/webp/harbor-scale-dark.webp b/webp/harbor-scale-dark.webp
new file mode 100755
index 00000000..13e2f0b7
Binary files /dev/null and b/webp/harbor-scale-dark.webp differ
diff --git a/webp/harbor-scale-light.webp b/webp/harbor-scale-light.webp
new file mode 100755
index 00000000..53f07528
Binary files /dev/null and b/webp/harbor-scale-light.webp differ
diff --git a/webp/harbor-scale.webp b/webp/harbor-scale.webp
new file mode 100755
index 00000000..1d2ebb45
Binary files /dev/null and b/webp/harbor-scale.webp differ
diff --git a/webp/lastsignal-dark.webp b/webp/lastsignal-dark.webp
new file mode 100755
index 00000000..196ba4f0
Binary files /dev/null and b/webp/lastsignal-dark.webp differ
diff --git a/webp/lastsignal-light.webp b/webp/lastsignal-light.webp
new file mode 100755
index 00000000..c55e0120
Binary files /dev/null and b/webp/lastsignal-light.webp differ
diff --git a/webp/lastsignal.webp b/webp/lastsignal.webp
new file mode 100755
index 00000000..d6ecfb1c
Binary files /dev/null and b/webp/lastsignal.webp differ
diff --git a/webp/moltbot-dark.webp b/webp/openclaw-dark.webp
similarity index 100%
rename from webp/moltbot-dark.webp
rename to webp/openclaw-dark.webp
diff --git a/webp/moltbot-light.webp b/webp/openclaw-light.webp
similarity index 100%
rename from webp/moltbot-light.webp
rename to webp/openclaw-light.webp
diff --git a/webp/moltbot.webp b/webp/openclaw.webp
similarity index 100%
rename from webp/moltbot.webp
rename to webp/openclaw.webp