diff --git a/copyparty/__version__.py b/copyparty/__version__.py
index ed9aa715..d46107a6 100644
--- a/copyparty/__version__.py
+++ b/copyparty/__version__.py
@@ -1,8 +1,8 @@
# coding: utf-8
-VERSION = (1, 16, 5)
+VERSION = (1, 16, 6)
CODENAME = "COPYparty"
-BUILD_DT = (2024, 12, 11)
+BUILD_DT = (2024, 12, 19)
S_VERSION = ".".join(map(str, VERSION))
S_BUILD_DT = "{0:04d}-{1:02d}-{2:02d}".format(*BUILD_DT)
diff --git a/copyparty/httpcli.py b/copyparty/httpcli.py
index ba1b7284..89523154 100644
--- a/copyparty/httpcli.py
+++ b/copyparty/httpcli.py
@@ -5069,7 +5069,7 @@ class HttpCli(object):
adm = "*" in vol.axs.uadmin or self.uname in vol.axs.uadmin
dots = "*" in vol.axs.udot or self.uname in vol.axs.udot
- n = 2000
+ n = 1000
q = "select sz, rd, fn, ip, at from up where at>0 order by at desc"
for sz, rd, fn, ip, at in cur.execute(q):
vp = "/" + "/".join(x for x in [vol.vpath, rd, fn] if x)
@@ -5096,12 +5096,12 @@ class HttpCli(object):
rv["fk_alg"] = fk_alg
ret.append(rv)
- if len(ret) > 3000:
+ if len(ret) > 2000:
ret.sort(key=lambda x: x["at"], reverse=True) # type: ignore
- ret = ret[:2000]
+ ret = ret[:1000]
- if len(ret) > 2000:
- ret = ret[:2000]
+ if len(ret) > 1000:
+ ret = ret[:1000]
ret.sort(key=lambda x: x["at"], reverse=True) # type: ignore
diff --git a/copyparty/web/rups.css b/copyparty/web/rups.css
index da0fb37e..b5885999 100644
--- a/copyparty/web/rups.css
+++ b/copyparty/web/rups.css
@@ -53,7 +53,8 @@ a {
}
#wrap td {
font-family: var(--font-mono), monospace, monospace;
- white-space: pre;
+ white-space: pre; /*date*/
+ overflow: hidden; /*ipv6*/
}
#wrap th:first-child,
#wrap td:first-child {
diff --git a/copyparty/web/rups.html b/copyparty/web/rups.html
index 8e556d58..96c3dfcc 100644
--- a/copyparty/web/rups.html
+++ b/copyparty/web/rups.html
@@ -31,14 +31,14 @@
file |
{% for vp, evp, sz, ip, at in rows %}
-
- {{ sz }} |
- {{ ip }} |
- {{ at }} |
- {{ (now-at) }} |
- |
- {{ vp|e }} |
-
+
+{{ sz }} |
+{{ ip }} |
+{{ at }} |
+{{ (now-at) }} |
+ |
+{{ vp|e }} |
+
{% endfor %}
{% if not rows %}
diff --git a/docs/changelog.md b/docs/changelog.md
index d3363b86..d56fa5a3 100644
--- a/docs/changelog.md
+++ b/docs/changelog.md
@@ -1,3 +1,35 @@
+▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
+# 2024-1211-2236 `v1.16.5` 4chrome
+
+## 🧪 new features
+
+* #124 add workaround for a chrome bug (crash during upload) 24ce46b3
+ * chrome and chromium-based browsers could OOM
+ * https://issues.chromium.org/issues/383568268
+
+* #122 "hybrid IdP", regular users can still auth while [IdP](https://github.com/9001/copyparty#identity-providers) is enabled 64501fd7
+ * previously, enabling IdP would entirely disable password-based login
+ * now, password-auth is attempted for requests without a valid IdP header
+
+## 🩹 bugfixes
+
+* the terminal window title would only change if `--no-ansi` was specified, which is exactly the opposite of what it should be (and now is) doing db3c0b09
+
+## 🔧 other changes
+
+* mDNS: better log messages when several IPs are added/removed a49bf81f
+* webdeps: update dompurify 06868606
+
+----
+
+this release includes a build of [copyparty-winpe64.exe](https://github.com/9001/copyparty/releases/download/v1.16.5/copyparty-winpe64.exe) since the last one was [almost a year ago](https://github.com/9001/copyparty/releases/tag/v1.10.1)
+
+* winpe64.exe is only for *very* specific usecases, you almost definitely *do not* want to download it, please just grab the regular [copyparty.exe](https://github.com/9001/copyparty/releases/latest/download/copyparty.exe) instead (works on all 64bit machines running win8 or newer)
+
+* the only difference between winpe64.exe and [copyparty32.exe](https://github.com/9001/copyparty/releases/latest/download/copyparty32.exe) is that winpe64.exe works in the win7x64 PE (rescue-env), which makes it *almost* entirely useless, and every bit as dangerous to use as copyparty32.exe
+
+
+
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
# 2024-1207-0024 `v1.16.4` ux is hard