Conversation
… and hotspot setup that reports back Page URLs carry the firmware's build (?v=), so a tab visited once is served from the browser's cache with no request; a new build is a new address, and an open console moves itself to it. Bare URLs revalidate (weak ETag from the gzip trailer, 304), a stale v gets a 302, the header script is addressed by its own checksum (?h=, stamped by console_pages.py), and only panel-only Hosts ever get a cache lifetime. /api/status gains build, viaHotspot and busy, and escapes free-form names. The shared header lives in a shadow root with a fixed height and a single scrolling tab strip (Knobs is a tab), shows the connection state, and gives pages window.PF: one background lane, polls that wait, back off, pause when hidden and stop on a tab tap. A small fallback is stamped into every page. /wifi on the hotspot: Add first, the scanned networks to tap, an inline did-you-mean, and the join outcome on the page and the LEDs. Pages gone over for phones. console_serve.py can emulate the hotspot link (--slow). Bench fixes: one slow reply no longer reads as offline (12 s floor, two failures in a row), and `always` gives the station one attempt the moment the hotspot is up instead of five minutes later. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Console UX upgrade: switching tabs no longer downloads the page again, one stable header on every page, and first-time setup from the panel's own hotspot that reports what happened.
What changed
/path?v=<build>(build = the image's ELF hash,src/core_build.h) and areimmutableunder the running build; bare URLs revalidate (ETagfrom the gzip trailer,304); a stalevgets a302. The header script is/pf-console.js?h=<crc>, stamped into every page byconsole_pages.py build. Only panel-only Hosts (IP, bare name,.local) get a cache lifetime — the hotspot answers every DNS name./api/statusgainsbuild,viaHotspot,busy; SSID, pattern and error strings are escaped (a quote in an SSID broke the JSON).window.PFfor pages: one background lane, chained polls that back off, pause when hidden and stop on a tab tap;PF.holdguards uploads. A small fallback is stamped into every page./wifion the hotspot: Add first, tappable scanned networks, inline did-you-mean, join outcome on the page and the LEDs; network added on the hotspot is tried at once.alwaysgives the station an attempt as soon as the hotspot is up (was: off the network for 5 minutes after every boot).console_serve.py --slowemulates the hotspot link;check_sendcovers the 304/302/Host table;check_sourcessyntax-checks the header script.Verified
build.sh all: five compositions build, marker scan ok, static RAM within pins;check_send,check_network,check_sources,check_boundaries,console_pages checkpass./patterns15.5 KB / 335 ms first visit → 0 bytes / 16 ms second; OTA → open tab moved to the new?v=by itself; raw 304 carries the 200's Content-Length and no body, no header leaks into the next response.alwaysreboot rejoined the LAN in 8.3 s.Not verified: iOS Safari; the first visit to each tab on the hotspot still takes 1–14 s (link-bound).
🤖 Generated with Claude Code