Skip to content

feat(network): bound Wi-Fi credential input (NET-05) - #550

Merged
boburning merged 2 commits into
mainfrom
feature/net05-wifi-credential-form
Aug 30, 2026
Merged

boburning merged 2 commits into
mainfrom
feature/net05-wifi-credential-form

Conversation

@boburning

@boburning boburning commented Aug 30, 2026 •

Copy link
Copy Markdown
Owner

Program and dependency

Summary

  • Adds a host-only open/WPA2 Wi-Fi profile form model using the shared bounded keyboard.
  • Validates exact profile-ID, printable SSID, security, hidden-network, and WPA2 passphrase rules before creating a child.
  • Masks every entered password byte in display copy.
  • Invokes only fixed bloomctl network profile upsert ID arguments without a shell and sends one escaped profile document on stdin.
  • Redirects child output away from the UI boundary, bounds execution to five seconds, and kills the exact process group on timeout.
  • Explicitly clears both the password buffer and temporary JSON document on every validation, pipe, fork, setup, execution, and timeout path.
  • Tightens the existing credential-free profile parser to match the schema's alphanumeric first-character rule.

Validation

Local focused gates on bb8bf71a:

  • clang-format-21 --dry-run --Werror: pass.
  • strict Linux C syntax with -Wall -Wextra -Werror: pass.
  • native BloomShellWifiUi*: 11/11 pass, 386 ms focused runtime.
  • AddressSanitizer BloomShellWifiUi*: 11/11 pass, 547 ms focused runtime.
  • exact shell selector: 58/58 pass (25 network tests plus 33 platform/core/critical-surface tests); canonical manifest, provenance, transfer-policy, and 314,683,965-byte dependency preflight passed.
  • exhaustive warning/style/performance/portability cppcheck on the changed Wi-Fi module: pass in 7.8 s.
  • v3 ledger JSON parse and git diff --check: pass.

CI on 003bc467 passed every required gate:

  • format: 23 s
  • complete affected shell selector: 46 s
  • native tests: 1 min 11 s
  • AddressSanitizer: 1 min 17 s
  • affected ARM Bloom Shell build: 1 min 23 s
  • scoped static analysis: 2 min 22 s

Device evidence and limitations

  • No device deployment or mutation was performed. The Mini Plus remains on its known-good signed baseline, online and associated.
  • The form has no rendered/runtime consumer in this slice; its submit helper cannot be reached from Bloom Shell.
  • No real credential was used. Tests use temporary synthetic fixture strings and remove their files.
  • This slice does not scan, associate, project a profile, restart Wi-Fi, change Wi-Fi power, forget a profile, alter a listener/key, reboot, or install an update.
  • The tested submit helper is synchronous by design while unreachable; a separate nonblocking controller is required before UI integration.
  • Host tests do not certify physical controls, LCD presentation, real credential entry, association, roaming, or recovery on Mini/Plus/Flip hardware.

Closes no issue; contributes to #544.

@boburning
boburning merged commit 0ef8e11 into main Aug 30, 2026
6 checks passed
@boburning
boburning deleted the feature/net05-wifi-credential-form branch August 30, 2026 05:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant