AllAccessPoints is not exposed by this NetworkManager ('No such property'),
so getAccessPoints() hit the error path and returned an empty scan list
with no log output. AccessPoints is the current scan results and is
universally supported. Also log the property-read failure instead of
failing silently.
Root flake is canonical, assets resolve relative to the working
directory, and the CI live-test secrets were renamed RW_LIVE_* to
RWT_LIVE_* (plus the new RWT_LIVE_ACCOUNT_EMAIL/LICENSE_* keys).
Fresh cmake configures pick up APP_VERSION/API_KEY from environment
variables (as nix develop and CI provide them); -D still wins on
reconfigure. Also normalizes indentation in the sd-bus blocks.
parseAccessPoint() is extracted from an anonymous namespace so the pure
property->AccessPointInfo mapping is testable. getAccessPoints() now reads
the Flags/WpaFlags/RsnFlags properties (they were never read, so every
network was reported Open and connections lacked a security section) and
fixes the double container-enter on the SSID 'ay' read that silently
emptied the scan list.
The WiFi page only re-read the access-point list every 3s, so a scan
that was slow, denied, or interrupted left the network list permanently
empty until a manual F5. Re-request the scan on each timer tick (skipped
while a connection attempt is in flight) so results appear automatically
once NetworkManager completes a scan.
The RequestScan result and the underlying sd_bus error were silently
dropped, so a denied or failed scan looked identical to an empty scan
list on the WiFi setup page. Surface both so the deployed-machine
diagnosis (e.g. user not in the networkmanager group) is visible in
~/.local/radiantwave/log.txt.
Replace actions/checkout@v4 with a manual token-based clone — its files
were being copied into the act_runner workspace instead of the repo,
leaving nix to evaluate the wrong flake. Add a workspace inspection
step before the build to aid diagnosis.