Skip to content

Add RCC6 Wi-Fi AP companion WebUI - #2

Merged
n30nex merged 9 commits into
mainfrom
codex/rcc6-web-ap
Aug 9, 2026
Merged

Add RCC6 Wi-Fi AP companion WebUI#2
n30nex merged 9 commits into
mainfrom
codex/rcc6-web-ap

Conversation

@n30nex

@n30nex n30nex commented Aug 9, 2026

Copy link
Copy Markdown
Owner

What changed

  • hardens the RCC6 BLE/TFT companion image, one-button controls, local inbox, notifications, and flood adverts
  • adds a separate RCC6 Wi-Fi Web/AP image with a responsive iPhone-dark WebUI for phones and desktops
  • adds WPA setup AP, local 2.4 GHz Wi-Fi wizard, DHCP address on the TFT, authenticated station HTTP, and setup-AP fallback
  • supports one exclusive browser or raw TCP/5000 companion controller and retained HTTP frame acknowledgement
  • builds exact BLE and Web/AP artifacts in one GitHub Actions matrix

Exact validation

Candidate: 2fd6c8bfd1b6a2cf05a3f991eddfa8e188ae87bd

  • Unit tests: Actions run 31296181181 — success
  • WebUI + BLE/Web builds: Actions run 31296181177 — success
  • Embedded WebUI: 43,910-byte gzip; SHA-256 26378715a14eccafbde5ebfb5bca42d33e7384c0f6ef605f738658223ed4b7e8
  • BLE firmware SHA-256: B957A8C50C054C8C1AFE39C009362D06CE873EDD5223BF5975712E668DE9E2FB
  • Web/AP firmware SHA-256: D1EA3C3BE6106AC2BE7B86B3435055D72C1D71A5F9A5245C962F783AB16DC9BA
  • Exact Web/AP image: clean boot, station join at 192.168.0.39, authenticated WebUI load, valid TCP/5000 DEVICE_INFO, and direct Public LoRa receipt RCC6-WEB-86C23289 at SNR 12.0 dB
  • Exact BLE image: clean boot, phone companion connection/node load, and direct Public LoRa receipt RCC6-BLE-2FD6C8BF at SNR 11.75 dB
  • Both app-only flashes verified by esptool; NVS/SPIFFS settings were preserved

BLE and Web/AP are intentionally separate firmware modes. Raw TCP/5000 is the full unauthenticated companion/admin protocol and is documented for trusted private LANs only.

@n30nex
n30nex marked this pull request as ready for review August 9, 2026 05:17
@qodo-code-review

Copy link
Copy Markdown

Qodo reviews are paused for this user.

Troubleshooting steps vary by plan Learn more →

On a Teams plan?
Reviews resume once this user has a paid seat and their Git account is linked in Qodo.
Link Git account →

Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center?
These require an Enterprise plan - Contact us
Contact us →

@n30nex
n30nex merged commit 9fef1e3 into main Aug 9, 2026
4 checks passed

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 2fd6c8bfd1

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +421 to +423
if (_session == Session::HTTP &&
static_cast<uint32_t>(millis() - _http_last_activity) >= HTTP_SESSION_TIMEOUT_MS &&
_recv_queue.empty() && _send_queue.empty() && _http_inflight_seq == 0) {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Release stale HTTP sessions before accepting TCP

When a browser disappears with an unacknowledged response, _send_queue or _http_inflight_seq remains nonzero, so this condition prevents the HTTP session from ever expiring. serviceTcp() accepts a client only when _session == Session::NONE, meaning every subsequent raw TCP/5000 connection is rejected indefinitely even after the 10-second timeout; the user must reopen the WebUI to drain the response or reboot the device. A timed-out HTTP session should be discardable when a TCP client attempts to take over.

Useful? React with 👍 / 👎.

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