A user asking how to try jumbo packets found nothing in the docs — and the gap turned out to be the entire v0.25.0 environment-variable wave, not one row. This audits docs-site/content/docs/configuration.md against every PUNKTFUNK_* read site in the code, both directions, and brings it current.
Added
Network & discovery — jumbo frames (the trigger)
PUNKTFUNK_JUMBO=1 and PUNKTFUNK_WIRE_MTU, plus a note covering what users actually trip over: sessions still start at standard packet size and only grow mid-session after an ack-gated path proof; NIC/switch/client MTU must be raised to 9000 outside Punktfunk first; both ends need 0.25+; Moonlight sessions are excluded; and WIRE_MTU below 1500 is the shrink escape hatch for VPN/tunnel paths.
Audio / microphone
PUNKTFUNK_AUDIO_QUALITY (low/standard/high tiers), PUNKTFUNK_AUDIO_REDUNDANCY (automatic by default), PUNKTFUNK_AUDIO_OUTPUT_MODE — the legacy PUNKTFUNK_HOST_AUDIO/PUNKTFUNK_KEEP_DEFAULT rows are folded into the new row as the aliases they now are (follow_default wins when both are set)
PUNKTFUNK_NVENC_SPLIT_ARBITRATE (opt-in live split-encode arbitration)
Auth, API & paths
PUNKTFUNK_UI_PLUGIN_PORT (the plugin-UI origin), PUNKTFUNK_LIBRARY_ART_ROOTS (;-separated art roots)
Client-side table
PUNKTFUNK_VAAPI_DEVICE (pin the render node the native-vaapi decoder opens)
Verification
Row wording comes from the actual read sites (pf-host-config, wire_mtu.rs, config.rs::jumbo_wire_mtu, pad_audio.rs, minted.rs, art.rs, web/nitro-entry/bun-https.mjs), not the CHANGELOG one-liners — including the shard_payload_for_udp_budget clamp that makes WIRE_MTU=9000 still start sessions at standard size.
Reverse direction checked: nothing on the page documents a variable the code no longer reads (the one dead var, PUNKTFUNK_SECURE_DDA, the page already flags as dead deliberately).
The edited page compiles clean through MDX with GFM tables using the site's own dependencies.
A user asking how to try jumbo packets found nothing in the docs — and the gap turned out to be the entire v0.25.0 environment-variable wave, not one row. This audits `docs-site/content/docs/configuration.md` against every `PUNKTFUNK_*` read site in the code, both directions, and brings it current.
## Added
**Network & discovery — jumbo frames** (the trigger)
- `PUNKTFUNK_JUMBO=1` and `PUNKTFUNK_WIRE_MTU`, plus a note covering what users actually trip over: sessions still *start* at standard packet size and only grow mid-session after an ack-gated path proof; NIC/switch/client MTU must be raised to 9000 outside Punktfunk first; both ends need 0.25+; Moonlight sessions are excluded; and `WIRE_MTU` below 1500 is the *shrink* escape hatch for VPN/tunnel paths.
**Audio / microphone**
- `PUNKTFUNK_AUDIO_QUALITY` (`low`/`standard`/`high` tiers), `PUNKTFUNK_AUDIO_REDUNDANCY` (automatic by default), `PUNKTFUNK_AUDIO_OUTPUT_MODE` — the legacy `PUNKTFUNK_HOST_AUDIO`/`PUNKTFUNK_KEEP_DEFAULT` rows are folded into the new row as the aliases they now are (`follow_default` wins when both are set)
- `PUNKTFUNK_NO_AUDIO_MINT` (Windows minted-endpoint opt-out)
**Gamepads**
- `PUNKTFUNK_PAD_AUDIO` / `PUNKTFUNK_PAD_AUDIO_SLOTS` (DualSense speaker + voice-coil haptics)
**Advanced performance tuning**
- `PUNKTFUNK_NVENC_SPLIT_ARBITRATE` (opt-in live split-encode arbitration)
**Auth, API & paths**
- `PUNKTFUNK_UI_PLUGIN_PORT` (the plugin-UI origin), `PUNKTFUNK_LIBRARY_ART_ROOTS` (`;`-separated art roots)
**Client-side table**
- `PUNKTFUNK_VAAPI_DEVICE` (pin the render node the `native-vaapi` decoder opens)
## Verification
- Row wording comes from the actual read sites (`pf-host-config`, `wire_mtu.rs`, `config.rs::jumbo_wire_mtu`, `pad_audio.rs`, `minted.rs`, `art.rs`, `web/nitro-entry/bun-https.mjs`), not the CHANGELOG one-liners — including the `shard_payload_for_udp_budget` clamp that makes `WIRE_MTU=9000` still start sessions at standard size.
- Reverse direction checked: nothing on the page documents a variable the code no longer reads (the one dead var, `PUNKTFUNK_SECURE_DDA`, the page already flags as dead deliberately).
- The edited page compiles clean through MDX with GFM tables using the site's own dependencies.
The env-var reference had fallen behind the v0.25.0 CHANGELOG table. Added, with
the semantics taken from the code rather than the changelog one-liners:
- PUNKTFUNK_JUMBO / PUNKTFUNK_WIRE_MTU (Network & discovery), with a note
explaining the ack-gated mid-session grow, the start-at-1500 behavior, the
NIC/switch prerequisites, and the sub-1500 shrink direction of WIRE_MTU
- PUNKTFUNK_AUDIO_QUALITY / AUDIO_REDUNDANCY / AUDIO_OUTPUT_MODE — the legacy
HOST_AUDIO / KEEP_DEFAULT rows are folded into the OUTPUT_MODE row as the
aliases they now are (follow_default wins when both are set)
- PUNKTFUNK_NO_AUDIO_MINT (Windows minted-endpoint opt-out)
- PUNKTFUNK_PAD_AUDIO / PAD_AUDIO_SLOTS (Gamepads — DualSense speaker+haptics)
- PUNKTFUNK_NVENC_SPLIT_ARBITRATE (Advanced performance tuning)
- PUNKTFUNK_UI_PLUGIN_PORT / PUNKTFUNK_LIBRARY_ART_ROOTS (Auth, API & paths)
- PUNKTFUNK_VAAPI_DEVICE (client-side table)
Verified against the actual read sites (pf-host-config, wire_mtu.rs,
config.rs jumbo_wire_mtu, pad_audio.rs, minted.rs, art.rs, bun-https.mjs);
the page's remaining vars all still exist in code. MDX-compiles clean with GFM.
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.
A user asking how to try jumbo packets found nothing in the docs — and the gap turned out to be the entire v0.25.0 environment-variable wave, not one row. This audits
docs-site/content/docs/configuration.mdagainst everyPUNKTFUNK_*read site in the code, both directions, and brings it current.Added
Network & discovery — jumbo frames (the trigger)
PUNKTFUNK_JUMBO=1andPUNKTFUNK_WIRE_MTU, plus a note covering what users actually trip over: sessions still start at standard packet size and only grow mid-session after an ack-gated path proof; NIC/switch/client MTU must be raised to 9000 outside Punktfunk first; both ends need 0.25+; Moonlight sessions are excluded; andWIRE_MTUbelow 1500 is the shrink escape hatch for VPN/tunnel paths.Audio / microphone
PUNKTFUNK_AUDIO_QUALITY(low/standard/hightiers),PUNKTFUNK_AUDIO_REDUNDANCY(automatic by default),PUNKTFUNK_AUDIO_OUTPUT_MODE— the legacyPUNKTFUNK_HOST_AUDIO/PUNKTFUNK_KEEP_DEFAULTrows are folded into the new row as the aliases they now are (follow_defaultwins when both are set)PUNKTFUNK_NO_AUDIO_MINT(Windows minted-endpoint opt-out)Gamepads
PUNKTFUNK_PAD_AUDIO/PUNKTFUNK_PAD_AUDIO_SLOTS(DualSense speaker + voice-coil haptics)Advanced performance tuning
PUNKTFUNK_NVENC_SPLIT_ARBITRATE(opt-in live split-encode arbitration)Auth, API & paths
PUNKTFUNK_UI_PLUGIN_PORT(the plugin-UI origin),PUNKTFUNK_LIBRARY_ART_ROOTS(;-separated art roots)Client-side table
PUNKTFUNK_VAAPI_DEVICE(pin the render node thenative-vaapidecoder opens)Verification
pf-host-config,wire_mtu.rs,config.rs::jumbo_wire_mtu,pad_audio.rs,minted.rs,art.rs,web/nitro-entry/bun-https.mjs), not the CHANGELOG one-liners — including theshard_payload_for_udp_budgetclamp that makesWIRE_MTU=9000still start sessions at standard size.PUNKTFUNK_SECURE_DDA, the page already flags as dead deliberately).