Beta 0.7.3 NAT Mapping Execution Plan¶
Historical release plan only. Current beta
0.7.3execution is controlled by RELEASE-0.7.3-EXECUTION-PLAN.
This is the active execution plan for NAT mapping modernization. It does not own gate status; use RELEASE-0.7.3 for release decisions and FEAT-032 for item state and evidence.
Current status: NAT mapping is a Release 1 candidate, not a blocker. The code/build slice can be accepted for Release 1 if current validation passes, but the tag must not be blocked solely because the available network cannot prove a PCP/NAT-PMP-capable path.
Decisions¶
- Keep MiniUPnP as the
UPnP IGDbackend. - Remove the legacy Windows-service/COM UPnP backend from active runtime behavior.
- Add
libpcpnatpmpas the PCP/NAT-PMP backend. - Keep the top-level mapping controls:
EnableUPnP,WebUseUPnP, andCloseUPnPOnExit. - Keep mapping scope to main TCP, main UDP, and WebServer TCP when
WebUseUPnPis enabled. - In
Automatic, tryUPnP IGD (MiniUPnP)first, thenPCP/NAT-PMP.
Runtime Shape¶
The Release 1 candidate shape is:
Automatic: MiniUPnP first, PCP/NAT-PMP fallbackUPnP IGD only: MiniUPnP onlyPCP/NAT-PMP only: PCP/NAT-PMP only
WinServ-only preferences and remembered implementation state must not control current runtime behavior.
Validation Path¶
Required local proof:
python -m emule_workspace validate
python -m emule_workspace build app --config Debug --platform x64
python -m emule_workspace build app --config Release --platform x64
Required targeted proof:
- native or seam coverage locks
Automaticordering - app build links
libpcpnatpmpthrough the supported workspace path - Tweaks exposes the three backend modes
- removed WinServ-only active preferences do not affect runtime mapping
Live-network proof, when available:
- MiniUPnP success path
- PCP/NAT-PMP fallback path
- explicit
PCP/NAT-PMP onlymode - WebServer TCP mapping when
WebUseUPnPis enabled
Release 1 Decision Rule¶
Mark FEAT-032 complete only after the code/build slice is landed and live-network validation is recorded. If the local network cannot provide PCP/NAT-PMP proof, keep the item deferred for Release 1 and record the external condition instead of delaying the release tag.