Stock web image serves build-time metadata for mounted static overrides, breaking favicon and OG images #180
Closed
opened 2026-11-02 15:43:06 +00:00 by eleith-gitea-agent
·
1 comment
No Branch/Tag Specified
main
fix/vite-config-discovery
feat/template-preparation
@luzzle/web.lsp@0.0.249
@luzzle/web.proxy@0.0.249
@luzzle/web.worker@0.0.249
@luzzle/web@0.0.249
@luzzle/lsp@0.0.249
@luzzle/core@0.0.249
@luzzle/cli@0.0.249
@luzzle/web.lsp@0.0.248
@luzzle/web.proxy@0.0.248
@luzzle/web.worker@0.0.248
@luzzle/web@0.0.248
@luzzle/lsp@0.0.248
@luzzle/cli@0.0.248
@luzzle/core@0.0.248
@luzzle/web.lsp@0.0.247
@luzzle/web.proxy@0.0.247
@luzzle/web.worker@0.0.247
@luzzle/web@0.0.247
@luzzle/lsp@0.0.247
@luzzle/cli@0.0.247
@luzzle/core@0.0.247
@luzzle/web.lsp@0.0.246
@luzzle/web.proxy@0.0.246
@luzzle/web.worker@0.0.246
@luzzle/web@0.0.246
@luzzle/lsp@0.0.246
@luzzle/cli@0.0.246
@luzzle/core@0.0.246
@luzzle/web.lsp@0.0.245
@luzzle/web.proxy@0.0.245
@luzzle/web.worker@0.0.245
@luzzle/web@0.0.245
@luzzle/lsp@0.0.245
@luzzle/cli@0.0.245
@luzzle/core@0.0.245
@luzzle/web.worker@0.0.244
@luzzle/web.proxy@0.0.244
@luzzle/web.lsp@0.0.244
@luzzle/web@0.0.244
@luzzle/lsp@0.0.244
@luzzle/core@0.0.244
@luzzle/cli@0.0.244
@luzzle/web.lsp@0.0.243
@luzzle/web.proxy@0.0.243
@luzzle/web.worker@0.0.243
@luzzle/web@0.0.243
@luzzle/lsp@0.0.243
@luzzle/cli@0.0.243
@luzzle/core@0.0.243
@luzzle/web.worker@0.0.242
@luzzle/web.proxy@0.0.242
@luzzle/web.lsp@0.0.242
@luzzle/web@0.0.242
@luzzle/lsp@0.0.242
@luzzle/core@0.0.242
@luzzle/cli@0.0.242
@luzzle/web@0.0.241
@luzzle/web.worker@0.0.241
@luzzle/web.proxy@0.0.241
@luzzle/web.lsp@0.0.241
@luzzle/lsp@0.0.241
@luzzle/core@0.0.241
@luzzle/cli@0.0.241
@luzzle/web@0.0.240
@luzzle/web.worker@0.0.240
@luzzle/web.proxy@0.0.240
@luzzle/web.lsp@0.0.240
@luzzle/lsp@0.0.240
@luzzle/core@0.0.240
@luzzle/cli@0.0.240
@luzzle/web@0.0.239
@luzzle/web.worker@0.0.239
@luzzle/web.proxy@0.0.239
@luzzle/web.lsp@0.0.239
@luzzle/lsp@0.0.239
@luzzle/core@0.0.239
@luzzle/cli@0.0.239
@luzzle/web@0.0.238
@luzzle/web.worker@0.0.238
@luzzle/web.proxy@0.0.238
@luzzle/web.lsp@0.0.238
@luzzle/lsp@0.0.238
@luzzle/core@0.0.238
@luzzle/cli@0.0.238
@luzzle/web@0.0.237
@luzzle/web.worker@0.0.237
@luzzle/lsp@0.0.237
@luzzle/core@0.0.237
@luzzle/cli@0.0.237
@luzzle/web@0.0.236
@luzzle/web.worker@0.0.236
@luzzle/lsp@0.0.236
@luzzle/core@0.0.236
@luzzle/cli@0.0.236
web.lsp/v0.0.9
web/v0.0.235
cli/v0.0.146
lsp/v0.0.2
web.worker/v0.0.21
core/v0.0.67
web/v0.0.234
web.worker/v0.0.20
web/v0.0.233
web.worker/v0.0.19
cli/v0.0.145
core/v0.0.66
web/v0.0.232
core/v0.0.65
web/v0.0.231
web/v0.0.230
web/v0.0.229
web.worker/v0.0.18
web/v0.0.228
web.worker/v0.0.17
web/v0.0.227
web.worker/v0.0.16
web/v0.0.226
cli/v0.0.144
core/v0.0.64
cli/v0.0.143
core/v0.0.63
web/v0.0.225
web/v0.0.224
web.worker/v0.0.15
web.proxy/v0.0.24
web.worker/v0.0.14
web/v0.0.223
web.lsp/v0.0.8
web.proxy/v0.0.23
web/v0.0.222
web.worker/v0.0.13
web.worker/v0.0.12
web.worker/v0.0.11
web/v0.0.221
web/v0.0.220
web.worker/v0.0.10
web.lsp/v0.0.7
web.worker/v0.0.8
web/v0.0.219
web/v0.0.218
web.worker/v0.0.7
web/v0.0.217
web/v0.0.216
web/v0.0.215
web/v0.0.214
web/v0.0.213
web.worker/v0.0.6
web.lsp/v0.0.6
web.proxy/v0.0.22
web/v0.0.212
web/v0.0.211
web.worker/v0.0.5
cli/v0.0.142
core/v0.0.62
web.worker/v0.0.4
cli/v0.0.141
core/v0.0.61
core/v0.0.60
web/v0.0.210
web.proxy/v0.0.21
web.tools/v0.0.129
web.config/v0.0.3
web.config/v0.0.2
web.proxy/v0.0.20
web/v0.0.209
web/v0.0.208
web.builder/v0.0.55
web.tools/v0.0.128
web.utils/v0.0.33
web/v0.0.207
web.builder/v0.0.54
web.tools/v0.0.127
cli/v0.0.139
cli/v0.0.140
core/v0.0.59
web.proxy/v0.0.19
web.builder/v0.0.53
web/v0.0.206
web.builder/v0.0.52
web.proxy/v0.0.18
web.lsp/v0.0.5
web/v0.0.205
web/v0.0.204
web.lsp/v0.0.4
web/v0.0.203
web.builder/v0.0.51
cli/v0.0.138
web.tools/v0.0.126
core/v0.0.58
web/v0.0.201
web/v0.0.200
web/v0.0.199
web.proxy/v0.0.17
web/v0.0.198
web/v0.0.197
web.builder/v0.0.49
web.tools/v0.0.125
cli/v0.0.137
core/v0.0.57
web/v0.0.196
web/v0.0.195
web.builder/v0.0.48
web.tools/v0.0.124
web/v0.0.194
web/v0.0.193
web/v0.0.192
web/v0.0.191
web.builder/v0.0.47
web.tools/v0.0.123
web/v0.0.190
web/v0.0.189
web/v0.0.188
web/v0.0.187
web/v0.0.186
web.proxy/v0.0.16
web/v0.0.185
web.proxy/v0.0.15
web.proxy/v0.0.14
web/v0.0.184
web/v0.0.183
web.builder/v0.0.46
web.tools/v0.0.122
core/v0.0.56
web/v0.0.182
web.builder/v0.0.45
web.tools/v0.0.121
core/v0.0.55
web.utils/v0.0.32
web/v0.0.181
web/v0.0.180
web.lsp/v0.0.3
web/v0.0.179
web.builder/v0.0.44
web.tools/v0.0.120
cli/v0.0.136
core/v0.0.54
web/v0.0.178
web.lsp/v0.0.2
web.proxy/v0.0.13
web/v0.0.177
web.builder/v0.0.43
web.tools/v0.0.119
web.tools/v0.0.118
core/v0.0.53
web/v0.0.176
web/v0.0.175
web/v0.0.174
web.builder/v0.0.42
web.tools/v0.0.117
core/v0.0.52
web/v0.0.173
web/v0.0.172
web/v0.0.171
lsp/v0.0.1
cli/v0.0.135
web.builder/v0.0.41
web/v0.0.170
web.tools/v0.0.116
web/v0.0.169
web.builder/v0.0.40
web.tools/v0.0.115
core/v0.0.51
web/v0.0.168
web.builder/v0.0.39
web.tools/v0.0.114
core/v0.0.50
web.tools/v0.0.113
web.utils/v0.0.31
web/v0.0.167
web.builder/v0.0.38
web.tools/v0.0.112
core/v0.0.49
web/v0.0.166
web.builder/v0.0.37
web.tools/v0.0.111
core/v0.0.48
web/v0.0.165
web.builder/v0.0.36
web.tools/v0.0.110
core/v0.0.47
web.builder/v0.0.35
web/v0.0.164
web.builder/v0.0.34
web.tools/v0.0.109
core/v0.0.46
web/v0.0.163
web.builder/v0.0.33
web.tools/v0.0.108
web/v0.0.162
web.builder/v0.0.32
web.tools/v0.0.107
web.utils/v0.0.30
core/v0.0.45
web/v0.0.161
web.builder/v0.0.31
web.tools/v0.0.106
web/v0.0.160
web/v0.0.159
web.builder/v0.0.30
web.tools/v0.0.105
web.utils/v0.0.29
web/v0.0.158
web.builder/v0.0.29
web.tools/v0.0.104
web.utils/v0.0.28
web.utils/v0.0.27
web/v0.0.157
web/v0.0.156
web.builder/v0.0.28
web.tools/v0.0.102
web/v0.0.155
web/v0.0.154
web.builder/v0.0.27
web.tools/v0.0.101
web.utils/v0.0.26
web/v0.0.153
web.builder/v0.0.26
web.tools/v0.0.100
web/v0.0.152
web/v0.0.151
web.builder/v0.0.25
web.tools/v0.0.99
web.tools/v0.0.98
web.utils/v0.0.25
web/v0.0.150
web.builder/v0.0.24
web.tools/v0.0.97
core/v0.0.44
cli/v0.0.133
core/v0.0.43
core/v0.0.42
web.proxy/v0.0.12
web.builder/v0.0.23
web.tools/v0.0.96
cli/v0.0.132
core/v0.0.41
cli/v0.0.131
web.builder/v0.0.22
web.tools/v0.0.95
core/v0.0.40
web.builder/v0.0.21
web.tools/v0.0.94
core/v0.0.39
web.tools/v0.0.93
core/v0.0.38
web/v0.0.149
web.builder/v0.0.19
web/v0.0.148
web.proxy/v0.0.11
web.proxy/v0.0.10
web/v0.0.147
web.builder/v0.0.18
web.tools/v0.0.92
web.utils/v0.0.24
web.tools/v0.0.91
web.utils/v0.0.23
web.builder/v0.0.16
web.proxy/v0.0.9
web/v0.0.146
web.proxy/v0.0.8
web.builder/v0.0.15
web.tools/v0.0.90
web.utils/v0.0.22
web.tools/v0.0.89
web.utils/v0.0.21
web.tools/v0.0.88
web.builder/v0.0.14
web.tools/v0.0.87
web.builder/v0.0.13
web.builder/v0.0.12
web.tools/v0.0.86
web.utils/v0.0.20
web/v0.0.145
web/v0.0.144
web/v0.0.143
web.cache/v0.0.5
web/v0.0.142
web/v0.0.141
web/v0.0.140
web/v0.0.139
web.builder/v0.0.11
web.tools/v0.0.85
web/v0.0.138
web.builder/v0.0.10
web.tools/v0.0.84
web/v0.0.137
web.builder/v0.0.9
web.builder/v0.0.8
web.builder/v0.0.7
web.cache/v0.0.4
web.builder/v0.0.6
web.cache/v0.0.3
web.builder/v0.0.5
web.cache/v0.0.2
web.builder/v0.0.4
web.cache/v0.0.1
web.builder/v0.0.3
web/v0.0.136
web.builder/v0.0.2
web/v0.0.135
web.tools/v0.0.83
web.utils/v0.0.19
web/v0.0.134
web.builder/v0.0.1
web.tools/v0.0.82
web.tools/v0.0.81
web/v0.0.133
web/v0.0.132
web/v0.0.131
web/v0.0.130
web/v0.0.129
web.tools/v0.0.80
web.utils/v0.0.18
web.tools/v0.0.79
web.utils/v0.0.17
web/v0.0.128
web.tools/v0.0.78
web.utils/v0.0.16
web/v0.0.127
web.tools/v0.0.77
cli/v0.0.130
core/v0.0.37
web/v0.0.126
web.tools/v0.0.76
web.utils/v0.0.15
web/v0.0.125
web/v0.0.124
web.tools/v0.0.75
web/v0.0.123
web/v0.0.122
web.tools/v0.0.74
cli/v0.0.129
core/v0.0.36
web/v0.0.121
web.tools/v0.0.73
cli/v0.0.128
core/v0.0.35
web/v0.0.120
web/v0.0.119
web.tools/v0.0.72
web.utils/v0.0.14
web/v0.0.118
web.tools/v0.0.71
web.utils/v0.0.13
core/v0.0.34
web.tools/v0.0.70
web.utils/v0.0.12
cli/v0.0.126
core/v0.0.33
web/v0.0.117
web.tools/v0.0.69
cli/v0.0.125
core/v0.0.32
web/v0.0.115
web.tools/v0.0.68
cli/v0.0.124
core/v0.0.31
core/v0.0.30
core/v0.0.29
web/v0.0.114
web.tools/v0.0.67
web/v0.0.113
web.tools/v0.0.66
cli/v0.0.123
core/v0.0.28
core/v0.0.27
web/v0.0.111
web.tools/v0.0.64
web.tools/v0.0.63
web/v0.0.110
web/v0.0.109
web/v0.0.108
web/v0.0.107
web/v0.0.105
web.tools/v0.0.62
web.tools/v0.0.61
web.utils/v0.0.11
core/v0.0.25
core/v0.0.24
web/v0.0.104
web.utils/v0.0.10
web/v0.0.103
web.tools/v0.0.59
web.utils/v0.0.9
web.utils/v0.0.8
web.tools/v0.0.58
web/v0.0.102
web.utils/v0.0.7
web.utils/v0.0.6
web.utils/v0.0.5
web.utils/v0.0.4
web.utils/v0.0.3
web.utils/v0.0.2
web.utils/v0.0.1
web/v0.0.101
tools/v0.0.57
web/v0.0.100
web/v0.0.99
tools/v0.0.56
tools/v0.0.55
web/v0.0.98
tools/v0.0.54
tools/v0.0.53
tools/v0.0.52
web/v0.0.96
tools/v0.0.51
cli/v0.0.121
core/v0.0.23
web/v0.0.94
tools/v0.0.50
web/v0.0.93
web/v0.0.92
tools/v0.0.49
web/v0.0.91
0.0.32
web/v0.0.89
0.0.31
0.0.30
0.0.29
0.0.28
0.0.27
0.0.26
0.0.25
0.0.24
0.0.23
0.0.22
0.0.21
0.0.20
0.0.19
0.0.18
0.0.17
0.0.16
0.0.15
0.0.14
No labels
Milestone
No items
No Milestone
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: eleith/luzzle#180
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
After migrating hi.eleith.com to the stock Luzzle 0.0.245 images, custom static images mounted into the web container produce incomplete HTTP responses. The response body is the mounted image, but
Content-Lengthstill describes the stock image shipped in the build. This prevents the favicon from loading and also affects the default Open Graph image.This should be fixed in Luzzle's runtime static-asset handling, rather than requiring instances to maintain proxy workarounds or custom application builds.
Environment
@sveltejs/adapter-node6.0.1 /@sveltejs/kit3.1.1, per the release'sapps/web/package.jsonRelevant Compose mounts (present in both local and production configurations):
Reproduction
/images/favicon.pngthrough the stock proxy, or open a page referencing that icon.Content-Lengthwith the actual response bytes.For the affected deployment:
The transfer fails because the body is shorter than the advertised length. An HTTP/2 curl request likewise fails with an incomplete-stream error.
Observed evidence
/images/favicon.png/images/opengraph.png/fonts/noto-sans.woff2<link rel="icon" href="/images/favicon.png"/>.0eb535cbe3b14a0b3b916016bbd14b9a2274f8a55c5fea977e0c1a0617a6673d). The mount itself works.@luzzle/web@0.0.245.Root cause
Adapter-node 6.0.1 measures static files during the build and emits their sizes and ETags into
build/adapter-node.js. Runtime bind mounts replace the file contents without updating this compiled asset table. The server therefore streams the replacement bytes using metadata for the original files.Source: https://unpkg.com/@sveltejs/adapter-node@6.0.1/index.js (
measure_files,create_asset_table, and generation ofadapter-node.js).Expected behavior / requested fix
Provide a supported runtime mechanism for custom static assets in stock images. When files are overridden, serve metadata matching the actual runtime content, including correct Content-Length and ETag, and ensure any precompressed variants are consistent with the override.
Please add regression coverage with differently sized favicon and Open Graph overrides; validate complete downloads, content hashes, conditional requests, and compressed responses where applicable. Existing framework JS/CSS should remain unaffected.
Fixed in commit 64524a71, landed via #181. Site favicon and default Open Graph images now support runtime configuration without replacing build output.