The OAuth client ceremony paths fail to compile on the zig 0.16.0 release:
sendParRequestbinds thefetchWithDpopNonceRetryresult asconst, butDpopResponse.deinittakes*DpopResponse.dpopHtuandoriginFromUrlformatstd.Uri.Componentwith{s}; on the 0.16.0 releaseComponentisunion(enum){ raw, percent_encoded }and{s}is rejected for it.
These paths are client-only, so server-side consumers (e.g. zds) never analyze them; any downstream client trips both. Hit while building a Zig atproto CLI client against zds.
Fix: var result, and a small uriComponentText helper that unwraps the
union. Compiles on both the 0.16.0 release and current dev toolchains.
Verified: zig build test -Dtarget=x86_64-linux-gnu.2.36 passes on the
0.16.0 release (the target flag works around an unrelated local
GCC-16 crt1.o .sframe linker issue).