fix(wg): peer QR is now scannable on a phone (v0.9.42)
The show-once peer config QR rendered at 176px (~2.7px per module) with anti-aliasing on. A WireGuard config QR is dense (~57 modules), so a phone camera misread it and the WireGuard app rejected the result as "keine gültige WireGuard-Konfiguration". Render it large (up to ~300px) on a white framed quiet zone with shape-rendering:crispEdges, so modules stay sharp and ~4.6px each. The Download button (.conf import on a PC) remains as the alternative. Verified: old-vs-new render comparison (2.7 → 4.6 px/module, crisp modules); Tailwind compiles the arbitrary shape-rendering property; /wireguard loads 200 with no console errors. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>feat/v1-foundation v0.9.42
parent
7794e98997
commit
9bb9f2561b
10
CHANGELOG.md
10
CHANGELOG.md
|
|
@ -13,7 +13,15 @@ getaggte Releases (Kanal `stable`, optional `beta`) — niemals Entwicklungs-Bui
|
|||
|
||||
_Keine offenen Änderungen — der nächste Stand wird hier gesammelt und als `vX.Y.Z` getaggt._
|
||||
|
||||
## [0.9.41] - 2026-06-21
|
||||
## [0.9.42] - 2026-06-21
|
||||
|
||||
### Behoben
|
||||
- **Peer-QR-Code ließ sich am Handy nicht scannen („keine gültige WireGuard-Konfiguration").** Der
|
||||
QR einer WireGuard-Client-Config ist dicht (~57 Module); er wurde im Einmal-Dialog mit nur 176 px
|
||||
angezeigt (~2,7 px pro Modul) und kantengeglättet — zu klein/unscharf, sodass die Handy-Kamera ihn
|
||||
fehlerhaft las. Der QR wird jetzt deutlich größer (bis ~300 px) auf weißem Rahmen mit Ruhezone und
|
||||
pixelgenau (`shape-rendering: crispEdges`) gerendert. Alternativ bleibt der **Herunterladen**-Knopf
|
||||
(Config als `.conf` am PC importieren).
|
||||
|
||||
### Behoben
|
||||
- **WireGuard-Aktionen aus dem Dashboard liefen auf dem Host ins Leere („Keine Antwort vom Host").**
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
return [
|
||||
// First tagged release is v0.1.0 (semantic, not -dev).
|
||||
'version' => '0.9.41',
|
||||
'version' => '0.9.42',
|
||||
|
||||
// Deployed commit + branch. install.sh bakes these into .env from the host's .git (the prod
|
||||
// image ships no .git); the Versions page prefers them and falls back to a live .git read in
|
||||
|
|
|
|||
|
|
@ -273,7 +273,11 @@
|
|||
<p class="mt-1 text-sm text-warning">{{ __('wireguard.new_peer_once') }}</p>
|
||||
<p class="mt-1 font-mono text-[11px] text-ink-4">{{ __('wireguard.import_hint') }}</p>
|
||||
@if ($resultQr)
|
||||
<div class="mx-auto mt-4 h-44 w-44 [&>svg]:h-full [&>svg]:w-full">{!! $resultQr !!}</div>
|
||||
{{-- White frame + generous size + crispEdges: a WireGuard config QR is dense (~57
|
||||
modules); too small or anti-aliased and a phone camera misreads it. --}}
|
||||
<div class="mx-auto mt-4 w-full max-w-[20rem] rounded-lg bg-white p-3">
|
||||
<div class="aspect-square w-full [&>svg]:h-full [&>svg]:w-full [&>svg]:[shape-rendering:crispEdges]">{!! $resultQr !!}</div>
|
||||
</div>
|
||||
@endif
|
||||
<pre class="mt-4 max-h-48 overflow-auto rounded-md border border-line bg-void px-3 py-2.5 font-mono text-[11px] leading-relaxed text-ink-2">{{ $resultConfig }}</pre>
|
||||
<div class="mt-4 flex items-center justify-end gap-2">
|
||||
|
|
|
|||
Loading…
Reference in New Issue