openhands
61107848f8
CI / check (push) Successful in 39s
CI / tests-integration (push) Successful in 2m2s
CI / tests-unit (push) Successful in 2m7s
CI / tests-ui (push) Successful in 2m46s
CI / preflight (push) Skipped
CI / tests-imaging-browsers (push) Successful in 3m9s
CI / tests-quality (push) Successful in 1m24s
CI / deploy (push) Successful in 4m9s
fix(imaging): normalise avatar figures before building URLs
...
Legacy accounts can carry a malformed stored look — the old register default
`hr-100-.hd-180-1...` has an empty colour slot — which the imager rejects with
400 "Invalid figure format", so the avatar renders broken everywhere the look
appears. Normalise the figure in the shared URL builder (`getAvatarUrl`, used by
every avatar on the site): an unrenderable look becomes `DEFAULT_AVATAR_FIGURE`
while the proxy route keeps rejecting malformed input with 400.
The rule set and default now live in one client-safe module
(`src/lib/avatar-figure.ts`), shared by the URL builder and the server parser.
2026-10-15 18:00:05 +02:00
..
2026-09-17 21:02:57 +02:00
2026-09-17 21:02:57 +02:00
2026-09-17 21:02:57 +02:00
2026-10-12 17:42:19 +02:00
2026-10-12 17:42:19 +02:00
2026-09-21 18:37:39 +02:00
2026-09-04 13:04:08 +02:00
2026-09-21 18:37:39 +02:00
2026-09-17 21:02:57 +02:00
2026-09-21 18:37:39 +02:00
2026-09-21 18:11:15 +02:00
2026-10-12 17:42:19 +02:00
2026-10-12 17:42:19 +02:00
2026-10-12 17:42:19 +02:00
2026-10-12 17:42:19 +02:00
2026-09-21 18:37:39 +02:00
2026-09-20 12:29:01 +02:00
2026-09-21 18:37:39 +02:00
2026-08-30 21:31:34 +02:00
2026-09-21 18:37:39 +02:00
2026-08-30 21:31:34 +02:00
2026-09-17 21:02:57 +02:00
2026-09-28 21:55:18 +02:00
2026-09-21 18:37:39 +02:00
2026-10-12 17:42:19 +02:00
2026-09-21 18:37:39 +02:00
2026-09-17 21:02:57 +02:00
2026-09-21 18:37:39 +02:00
2026-08-30 21:31:34 +02:00
2026-09-17 21:02:57 +02:00
2026-08-30 21:31:34 +02:00
2026-09-21 18:37:39 +02:00
2026-08-30 21:31:34 +02:00
2026-09-21 18:37:39 +02:00
2026-08-30 21:31:34 +02:00
2026-08-30 21:31:34 +02:00
2026-10-09 16:19:48 +02:00
2026-09-17 21:02:57 +02:00
2026-09-28 21:55:18 +02:00
2026-09-21 18:37:39 +02:00
2026-09-21 18:11:15 +02:00
2026-09-21 18:37:39 +02:00
2026-08-30 21:31:34 +02:00
2026-09-21 18:37:39 +02:00
2026-08-30 21:31:34 +02:00
2026-09-21 18:37:39 +02:00
2026-08-30 21:31:34 +02:00
2026-09-21 18:37:39 +02:00
2026-08-30 21:31:34 +02:00
2026-09-21 18:37:39 +02:00
2026-10-12 17:42:19 +02:00
2026-09-21 18:37:39 +02:00
2026-09-20 12:29:01 +02:00
2026-09-21 18:37:39 +02:00
2026-10-09 16:19:48 +02:00
2026-09-21 18:37:39 +02:00
2026-09-28 21:55:18 +02:00
2026-09-21 18:37:39 +02:00
2026-09-17 21:02:57 +02:00
2026-09-17 21:02:57 +02:00
2026-09-17 21:02:57 +02:00
2026-09-17 21:02:57 +02:00
2026-09-28 21:55:18 +02:00
2026-10-12 17:42:19 +02:00
2026-10-12 17:42:19 +02:00
2026-09-21 18:37:39 +02:00
2026-09-17 21:02:57 +02:00
2026-09-21 18:37:39 +02:00
2026-08-30 21:31:34 +02:00
2026-09-21 18:37:39 +02:00
2026-09-17 21:02:57 +02:00
2026-09-21 18:37:39 +02:00
2026-10-12 17:42:19 +02:00
2026-09-17 21:02:57 +02:00
2026-07-31 21:35:05 +02:00
2026-09-13 20:14:32 +02:00
2026-09-21 18:37:39 +02:00
2026-07-31 21:35:05 +02:00
2026-09-21 18:37:39 +02:00
2026-09-09 19:36:15 +02:00
2026-10-09 17:12:50 +02:00
2026-10-09 17:12:50 +02:00
2026-09-21 18:37:39 +02:00
2026-08-30 21:31:34 +02:00
2026-09-21 18:37:39 +02:00
2026-09-17 21:02:57 +02:00
2026-10-09 16:19:48 +02:00
2026-10-09 16:19:48 +02:00
2026-09-30 19:17:20 +02:00
2026-09-30 19:17:20 +02:00
2026-09-30 18:19:36 +02:00
2026-09-06 20:25:19 +02:00
2026-09-21 18:37:39 +02:00
2026-09-09 21:57:56 +02:00
2026-10-15 16:00:00 +02:00
2026-09-21 18:37:39 +02:00
2026-09-09 21:57:56 +02:00
2026-09-21 18:37:39 +02:00
2026-09-09 20:04:10 +02:00
2026-09-29 15:34:36 +02:00
2026-10-09 17:57:28 +02:00
2026-10-09 17:57:28 +02:00
2026-09-21 18:37:39 +02:00
2026-09-20 12:29:01 +02:00
2026-09-21 20:25:58 +02:00
2026-09-03 16:00:32 +02:00
2026-09-21 18:37:39 +02:00
2026-08-30 21:31:34 +02:00
2026-08-30 21:31:34 +02:00
2026-09-21 18:37:39 +02:00
2026-09-11 00:36:55 +02:00
2026-09-10 11:29:28 +02:00
2026-09-21 18:37:39 +02:00
2026-07-31 21:35:05 +02:00
2026-09-21 18:37:39 +02:00
2026-09-03 16:00:32 +02:00
2026-09-21 18:37:39 +02:00
2026-09-09 21:57:56 +02:00
2026-09-21 18:37:39 +02:00
2026-09-30 14:45:26 +02:00
2026-09-21 18:37:39 +02:00
2026-08-30 21:31:34 +02:00
2026-10-09 16:19:48 +02:00
2026-10-09 16:19:48 +02:00
2026-09-21 18:37:39 +02:00
2026-08-30 21:31:34 +02:00
2026-09-21 18:37:39 +02:00
2026-08-30 21:31:34 +02:00
2026-10-09 16:19:48 +02:00
2026-10-09 16:19:48 +02:00
2026-09-21 18:37:39 +02:00
2026-10-09 16:19:48 +02:00
2026-09-21 18:37:39 +02:00
2026-09-03 16:00:32 +02:00
2026-09-21 18:37:39 +02:00
2026-08-30 21:31:34 +02:00
2026-09-21 18:37:39 +02:00
2026-09-11 00:31:29 +02:00
2026-09-21 18:37:39 +02:00
2026-08-01 13:27:59 +02:00
2026-09-21 18:37:39 +02:00
2026-08-01 13:27:59 +02:00
2026-09-21 18:37:39 +02:00
2026-08-01 13:27:59 +02:00
2026-09-21 18:37:39 +02:00
2026-08-01 13:27:59 +02:00
2026-10-15 16:26:31 +02:00
2026-10-15 18:00:05 +02:00
2026-10-09 16:19:48 +02:00
2026-10-09 16:19:48 +02:00
2026-09-13 19:24:43 +02:00
2026-09-13 19:24:43 +02:00
2026-09-21 18:37:39 +02:00
2026-08-29 20:54:06 +02:00
2026-09-21 18:37:39 +02:00
2026-09-13 19:24:43 +02:00
2026-09-21 18:37:39 +02:00
2026-09-21 18:37:39 +02:00
2026-09-03 16:00:32 +02:00
2026-10-09 16:19:48 +02:00
2026-10-09 16:19:48 +02:00
2026-09-21 18:37:39 +02:00
2026-08-30 21:31:34 +02:00
2026-09-21 18:37:39 +02:00
2026-09-13 17:55:01 +02:00
2026-08-31 17:44:29 +02:00
2026-09-18 12:44:39 +02:00
2026-09-21 18:37:39 +02:00
2026-08-30 21:31:34 +02:00
2026-09-21 18:37:39 +02:00
2026-08-30 21:31:34 +02:00
2026-09-21 18:37:39 +02:00
2026-09-06 17:55:11 +02:00
2026-09-21 18:37:39 +02:00
2026-10-09 16:19:48 +02:00
2026-09-21 18:37:39 +02:00
2026-10-09 16:19:48 +02:00
2026-10-09 16:19:48 +02:00
2026-10-09 16:19:48 +02:00
2026-10-12 17:42:19 +02:00
2026-10-09 17:12:50 +02:00
2026-10-09 17:12:50 +02:00
2026-09-21 18:37:39 +02:00
2026-09-05 23:27:02 +02:00
2026-09-21 18:37:39 +02:00
2026-08-30 21:31:34 +02:00