By Limited Underground
Windows-first portable network diagnostics application, with a reusable core intended for a future Linux application. Phase 1 provides the desktop foundation: dashboard shell, read-only Ethernet inventory, capability reporting, configuration, local sessions, and logging. Protocol transmissions and packet capture are not implemented in this phase.
The dashboard follows the approved information-dense reference. Any demonstration data is synthetic and must be identified as such. Missing live measurements appear unavailable; a backend's presence is not proof of capture capability. Visual styling is provisional pending official brand assets and a theme decision.
Requires Windows, PowerShell 7, and the .NET 10 SDK for development and package verification. From the project directory:
.\scripts\Build.ps1
.\scripts\Test.ps1
dotnet run --project .\src\ProtocolLatencyAnalyzer.Desktop
.\scripts\Publish.ps1
.\scripts\Verify-Package.ps1The test project is a console-based foundation test runner. Publish artifacts are written beneath .artifacts. Publishing and verification preserve existing outputs; use matching -OutputName win-x64-review2 arguments for a fresh candidate. The verification script checks the ZIP checksum, extracts it into a new project-local directory, then runs synthetic layout, storage, and render checks, followed by a real-window startup/dispatcher check that initiates read-only local adapter inventory. No network acquisition occurs. Verification has a 60-second timeout per process.
The intended distribution is a self-contained Windows x64 portable package using .NET/WPF 10.0.13; it should not require a separately installed .NET runtime. Normal-build and Windows-runtime package locks are separate. Actual package and operating-system validation is recorded in Phase 1 acceptance. An SDK build or offscreen render does not establish interactive workflow or all-OS acceptance.
On the current host, a concurrent copy to the USB application drive caused startup checks to exceed 60 seconds. The same USB smoke check passed during an owner-approved brief pause and timed out again after the copy resumed. Once no copy process was running, a fresh extraction of the unchanged package passed all four USB checks, including real-window startup in 2.334 seconds. The local-folder checks, USB data storage and native workflows also passed. See the startup investigation. No timeout increase, security exclusion or application workaround was adopted. Clean-machine, other-OS and owner acceptance remain pending; Phase 2 has not started.
The adapter list shows connection state and places suggested choices first. Suggestions use local link status, a usable IP address and a configured gateway. Virtual-adapter labels are name/description hints, not hardware verification. Multiple matching adapters remain visible as ambiguous choices. A suggestion does not prove Internet access, active traffic, or the route to a particular destination; select the network you intend to inspect.
Session commands are under File: New (Ctrl+N), Open (Ctrl+O), Save (Ctrl+S), Export metadata (Ctrl+E), and Exit. Configuration is under Tools > Settings. Selecting an adapter or changing a session does not start testing or capture.
Choose a writable data location explicitly when saving a session. Configuration files are explicitly saved/loaded; no configuration is silently loaded on startup. Diagnostics are fixed-message, bounded, memory-only operation records. Session metadata may contain interface identifiers; protect saved files and deliberate exports appropriately. Storage failures produce a clear error rather than a silent relocation. No capture, protocol traffic, automatic telemetry, or cloud upload is part of Phase 1. Do not save credentials or private captures into this source tree.
src/ProtocolLatencyAnalyzer.Core: platform-neutral contracts and models.src/ProtocolLatencyAnalyzer.Infrastructure: JSON configuration, SQLite sessions, and read-only Ethernet inventory.src/ProtocolLatencyAnalyzer.Desktop: WPF dashboard, interaction, and platform presentation.tests/ProtocolLatencyAnalyzer.Tests: foundation verification.docs: assessment, decisions, roadmap, and acceptance evidence.
Windows 11 and Server 2019/2022/2025 are target platforms, not a completed validation claim. Linux is future work; WPF itself is Windows-only. macOS has no current commitment. Phase 1 source and documentation are published in the public repository, with progress in the private Project. Source publication does not constitute a release or website publication. See GitHub setup.
Application license: Apache-2.0, selected by the owner. Third-party components retain their own licenses; review the resolved dependency graph and notices before distribution.
Start with architecture, decisions, and roadmap. Historical intake files are retained locally and excluded from publication. The decision log records the current owner-approved direction.
The preview was rendered by the packaged WPF application. No protocol traffic or capture produced these readings. See the sanitized host evidence and acceptance checklist for passed checks and outstanding testing. Local ZIPs and caches are not included in the source repository; reproduce them with the scripts above.
The local-folder and USB portable package each passed four executable checks on the current host, including real-window rendering, dispatcher responsiveness and clean closure. The USB checks passed after the concurrent copy process ended. The 41 foundation/storage checks also pass with an explicit USB data root; see current host evidence.
To verify a package from a deliberately selected new local execution folder while retaining project-local evidence:
$reviewFolder = Join-Path $env:TEMP ("PLA-review-" + [guid]::NewGuid().ToString("N"))
.\scripts\Verify-Package.ps1 -OutputName win-x64-review -ExecutionDirectory $reviewFolderUse the same OutputName passed to Publish. Existing execution and validation destinations are preserved. Running a portable folder locally and using USB for session data are distinct from direct USB executable qualification.
